Добавлены цельная транзакция при обновлении изделия
This commit is contained in:
parent
f2ca847c6b
commit
6ca67882ec
@ -47,6 +47,8 @@ namespace ConfectioneryDatabaseImplement.Implements
|
|||||||
}
|
}
|
||||||
using var context = new ConfectioneryDatabase();
|
using var context = new ConfectioneryDatabase();
|
||||||
return context.Pastries
|
return context.Pastries
|
||||||
|
.Include(x => x.Components)
|
||||||
|
.ThenInclude(x => x.Component)
|
||||||
.Select(x => x.GetViewModel)
|
.Select(x => x.GetViewModel)
|
||||||
.Where(x => x.PastryName.Contains(model.PastryName))
|
.Where(x => x.PastryName.Contains(model.PastryName))
|
||||||
.ToList();
|
.ToList();
|
||||||
@ -56,6 +58,8 @@ namespace ConfectioneryDatabaseImplement.Implements
|
|||||||
{
|
{
|
||||||
using var context = new ConfectioneryDatabase();
|
using var context = new ConfectioneryDatabase();
|
||||||
return context.Pastries
|
return context.Pastries
|
||||||
|
.Include(x => x.Components)
|
||||||
|
.ThenInclude(x => x.Component)
|
||||||
.Select(x => x.GetViewModel)
|
.Select(x => x.GetViewModel)
|
||||||
.ToList();
|
.ToList();
|
||||||
}
|
}
|
||||||
@ -78,16 +82,26 @@ namespace ConfectioneryDatabaseImplement.Implements
|
|||||||
public PastryViewModel? Update(PastryBindingModel model)
|
public PastryViewModel? Update(PastryBindingModel model)
|
||||||
{
|
{
|
||||||
using var context = new ConfectioneryDatabase();
|
using var context = new ConfectioneryDatabase();
|
||||||
var pastry = context.Pastries.FirstOrDefault(x => x.Id == model.Id);
|
using var transaction = context.Database.BeginTransaction();
|
||||||
if (pastry == null)
|
try
|
||||||
{
|
{
|
||||||
return null;
|
var pastry = context.Pastries.FirstOrDefault(x => x.Id == model.Id);
|
||||||
|
if (pastry == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
pastry.Update(model);
|
||||||
|
pastry.UpdateComponents(context, model);
|
||||||
|
context.Update(pastry);
|
||||||
|
context.SaveChanges();
|
||||||
|
transaction.Commit();
|
||||||
|
return pastry.GetViewModel;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
transaction.Rollback();
|
||||||
|
throw;
|
||||||
}
|
}
|
||||||
pastry.Update(model);
|
|
||||||
pastry.UpdateComponents(context, model);
|
|
||||||
context.Update(pastry);
|
|
||||||
context.SaveChanges();
|
|
||||||
return pastry.GetViewModel;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user