Abazov A. A. LabWork03_Hard #11
@ -108,7 +108,7 @@ namespace ConfectioneryDataBaseImplement.Implements
|
||||
{
|
||||
using ConfectioneryDatabase context = new ConfectioneryDatabase();
|
||||
var transaction = context.Database.BeginTransaction();
|
||||
foreach (Shop shop in context.Shops)
|
||||
foreach (Shop shop in context.Shops.Include(x => x.Pastries).ThenInclude(x => x.Pastry))
|
||||
{
|
||||
int freeShopSpace = shop.PastryCapacity - shop.ShopPastries.Select(y => y.Value.Item2).Sum();
|
||||
if (freeShopSpace > 0)
|
||||
@ -161,7 +161,7 @@ namespace ConfectioneryDataBaseImplement.Implements
|
||||
{
|
||||
using ConfectioneryDatabase context = new ConfectioneryDatabase();
|
||||
var transaction = context.Database.BeginTransaction();
|
||||
foreach (Shop shop in context.Shops)
|
||||
foreach (Shop shop in context.Shops.Include(x => x.Pastries).ThenInclude(x => x.Pastry))
|
||||
{
|
||||
int shopPastryCount = shop.ShopPastries.Select(x => x.Value).Where(x => x.Item1.Id == pastryId).Sum(x => x.Item2);
|
||||
if (count - shopPastryCount >= 0)
|
||||
@ -177,11 +177,11 @@ namespace ConfectioneryDataBaseImplement.Implements
|
||||
shop.ShopPastries[pastryId] = shopPastry;
|
||||
}
|
||||
shop.RemapPastries(context);
|
||||
if (count == 0)
|
||||
{
|
||||
transaction.Commit();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
if (count == 0)
|
||||
{
|
||||
transaction.Commit();
|
||||
return true;
|
||||
}
|
||||
transaction.Rollback();
|
||||
return false;
|
||||
|
@ -69,30 +69,33 @@ namespace ConfectioneryDataBaseImplement.Models
|
||||
{
|
||||
var list = context.ShopPastries.ToList();
|
||||
var shopPastries = context.ShopPastries.Where(rec => rec.ShopId == model.Id).ToList();
|
||||
if (shopPastries != null)
|
||||
if (shopPastries != null && shopPastries.Count > 0)
|
||||
{
|
||||
// удалили те, которых нет в модели
|
||||
context.ShopPastries.RemoveRange(shopPastries.Where(rec => !model.ShopPastries.ContainsKey(rec.PastryId)));
|
||||
context.ShopPastries.RemoveRange(shopPastries.Where((ShopPastry rec) => !model.ShopPastries.ContainsKey(rec.PastryId)));
|
||||
context.SaveChanges();
|
||||
|
||||
shopPastries = context.ShopPastries.Where((ShopPastry rec) => rec.ShopId == model.Id).ToList();
|
||||
// обновили количество у существующих записей
|
||||
foreach (var updateIngredient in shopPastries)
|
||||
{
|
||||
updateIngredient.Count = model.ShopPastries[updateIngredient.PastryId].Item2;
|
||||
model.ShopPastries.Remove(updateIngredient.PastryId);
|
||||
}
|
||||
var shop = context.Shops.First(x => x.Id == Id);
|
||||
foreach (var sp in model.ShopPastries)
|
||||
{
|
||||
context.ShopPastries.Add(new ShopPastry
|
||||
{
|
||||
Shop = shop,
|
||||
Pastry = context.Pastrys.First(x => x.Id == sp.Key),
|
||||
Count = sp.Value.Item2
|
||||
});
|
||||
context.SaveChanges();
|
||||
}
|
||||
_shopPastries = null;
|
||||
context.SaveChanges();
|
||||
}
|
||||
var shop = context.Shops.First(x => x.Id == Id);
|
||||
foreach (var sp in model.ShopPastries)
|
||||
{
|
||||
context.ShopPastries.Add(new ShopPastry
|
||||
{
|
||||
Shop = shop,
|
||||
Pastry = context.Pastrys.First(x => x.Id == sp.Key),
|
||||
Count = sp.Value.Item2
|
||||
});
|
||||
context.SaveChanges();
|
||||
}
|
||||
_shopPastries = null;
|
||||
}
|
||||
|
||||
public ShopViewModel GetViewModel => new()
|
||||
|
Loading…
Reference in New Issue
Block a user