/// <summary> /// После того как заказ выполнен, обновяем данные на складе /// </summary> /// <returns>возвращает ассоциативный массив Ид продукта - > массив вставленных в таблицу Stock значений</returns> public List <IGrouping <Product, Stock> > UpdateStock() { MarketBotDbContext db = new MarketBotDbContext(); List <Stock> list = new List <Stock>(); List <IGrouping <Product, Stock> > result = new List <IGrouping <Product, Stock> >(); if (OrderProduct == null || OrderProduct != null && OrderProduct.Count == 0) { OrderProduct = db.OrderProduct.Where(op => op.OrderId == Id).ToList(); } if (!StockUpdate && OrderProduct != null && OrderProduct.Count > 0) { foreach (OrderProduct op in OrderProduct) { var last = db.Stock.Where(s => s.ProductId == op.ProductId).LastOrDefault().Balance; if (op.Product == null) { op.Product = db.Product.Where(p => p.Id == op.ProductId).Include(o => o.Unit).FirstOrDefault(); } Stock stock = new Stock { Balance = last - op.Count, Quantity = -op.Count, DateAdd = DateTime.Now, Text = "Заказ " + Number.ToString(), ProductId = op.ProductId }; db.Stock.Add(stock); db.SaveChanges(); list.Add(stock); } this.StockUpdate = true; db.Update <Orders>(this); db.SaveChanges(); result = list.GroupBy(s => s.Product).ToList(); db.Dispose(); return(result); } else { return(null); } }
public static int Save() { try { if (dbContext == null) { getConnection(); } return(dbContext.SaveChanges()); } catch (Exception exp) { dbContext.Dispose(); return(-1); } }