public void CreateOrder(OrderBindModel model) { int maxId = 0; for (int i = 0; i < source.Orders.Count; ++i) { if (source.Orders[i].ID > maxId) { maxId = source.Customers[i].ID; } } source.Orders.Add(new Order { ID = maxId + 1, CustomerID = model.CustomerID, SushiID = model.SushiID, DateCreate = DateTime.Now, Count = model.Count, Sum = model.Sum, Status = OrderStatus.Принят }); }
public void TakeOrderInWork(OrderBindModel model) { int index = -1; for (int i = 0; i < source.Orders.Count; ++i) { if (source.Orders[i].ID == model.ID) { index = i; break; } } if (index == -1) { throw new Exception("Элемент не найден"); } for (int i = 0; i < source.ElementRequirements.Count; ++i) { if (source.ElementRequirements[i].SushiID == source.Orders[index].SushiID) { int countOnStorages = 0; for (int j = 0; j < source.ElementStorages.Count; ++j) { if (source.ElementStorages[j].ElementID == source.ElementRequirements[i].ElementID) { countOnStorages += source.ElementStorages[j].Count; } } if (countOnStorages < source.ElementRequirements[i].Count * source.Orders[index].Count) { for (int j = 0; j < source.Elements.Count; ++j) { if (source.Elements[j].ID == source.ElementRequirements[i].ElementID) { throw new Exception("Не достаточно компонента " + source.Elements[j].ElementName + " требуется " + source.ElementRequirements[i].Count * source.Orders.Count + ", в наличии " + countOnStorages); } } } } } for (int i = 0; i < source.ElementRequirements.Count; ++i) { if (source.ElementRequirements[i].SushiID == source.Orders[index].SushiID) { int countOnStorages = source.ElementRequirements[i].Count * source.Orders[index].Count; for (int j = 0; j < source.ElementStorages.Count; ++j) { if (source.ElementStorages[j].ElementID == source.ElementRequirements[i].ElementID) { if (source.ElementStorages[j].Count >= countOnStorages) { source.ElementStorages[j].Count -= countOnStorages; break; } else { countOnStorages -= source.ElementStorages[j].Count; source.ElementStorages[j].Count = 0; } } } } } source.Orders[index].ExecutorID = model.ExecutorID; source.Orders[index].DateImplement = DateTime.Now; source.Orders[index].Status = OrderStatus.Выполняется; }