diff --git a/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/OrderLogic.cs b/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/OrderLogic.cs index dafbac3..967e959 100644 --- a/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/OrderLogic.cs +++ b/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/OrderLogic.cs @@ -86,23 +86,24 @@ namespace FlowerShopBusinessLogic.BusinessLogics { CheckModel(model, false); - if (_orderStorage.GetElement(new OrderSearchModel { Id = model.Id })?.Status != OrderStatus.Выполняется) + var order = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id }); + if (order?.Status != OrderStatus.Выполняется) { _logger.LogWarning("Invalid order status"); return false; } - var bouquet = _bouquetStorage.GetElement(new BouquetSearchModel() { Id = model.BouquetId }); + var bouquet = _bouquetStorage.GetElement(new BouquetSearchModel() { Id = order.BouquetId }); if (bouquet == null) { _logger.LogWarning("Status update to Готов operation failed. Bouquet not found"); return false; } - if (!CheckThenSupplyMany(bouquet, model.Count)) + if (!CheckThenSupplyMany(bouquet, order.Count)) { _logger.LogWarning("Status update to Готов operation failed. Shop supply error."); - return false; + throw new Exception("В магазинах не хватает места!"); } model.Status = OrderStatus.Готов; diff --git a/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/ShopLogic.cs b/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/ShopLogic.cs index 8fe8cb4..918a104 100644 --- a/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/ShopLogic.cs +++ b/FlowerShop/FlowerShopBusinessLogic/BusinessLogics/ShopLogic.cs @@ -89,7 +89,7 @@ namespace FlowerShopBusinessLogic.BusinessLogics countBouquets += bouq.Value.Item2; } - if (shopElement.MaxCountBouquets - countBouquets > count) + if (shopElement.MaxCountBouquets - countBouquets >= count) { if (shopElement.ShopBouquets.TryGetValue(bouquet.Id, out var sameBouquet)) { @@ -108,7 +108,8 @@ namespace FlowerShopBusinessLogic.BusinessLogics Name = shopElement.Name, Address = shopElement.Address, OpeningDate = shopElement.OpeningDate, - ShopBouquets = shopElement.ShopBouquets + ShopBouquets = shopElement.ShopBouquets, + MaxCountBouquets = shopElement.MaxCountBouquets }); } else diff --git a/FlowerShop/FlowerShopFileImplement/Implements/OrderStorage.cs b/FlowerShop/FlowerShopFileImplement/Implements/OrderStorage.cs index fba35bf..246e58b 100644 --- a/FlowerShop/FlowerShopFileImplement/Implements/OrderStorage.cs +++ b/FlowerShop/FlowerShopFileImplement/Implements/OrderStorage.cs @@ -37,7 +37,7 @@ namespace FlowerShopFileImplement.Implements public List GetFullList() { - return source.Orders.Select(x => x.GetViewModel).ToList(); + return source.Orders.Select(x => AttachBouquetName(x.GetViewModel)).ToList(); } public OrderViewModel? Update(OrderBindingModel model) @@ -67,7 +67,7 @@ namespace FlowerShopFileImplement.Implements source.Orders.Add(newOrder); source.SaveOrders(); - return newOrder.GetViewModel; + return AttachBouquetName(newOrder.GetViewModel); } public OrderViewModel? Delete(OrderBindingModel model) @@ -81,7 +81,7 @@ namespace FlowerShopFileImplement.Implements source.Orders.Remove(order); source.SaveOrders(); - return order.GetViewModel; + return AttachBouquetName(order.GetViewModel); } private OrderViewModel AttachBouquetName(OrderViewModel? model) diff --git a/FlowerShop/FlowerShopFileImplement/Implements/ShopStorage.cs b/FlowerShop/FlowerShopFileImplement/Implements/ShopStorage.cs index 69307fd..6b8311e 100644 --- a/FlowerShop/FlowerShopFileImplement/Implements/ShopStorage.cs +++ b/FlowerShop/FlowerShopFileImplement/Implements/ShopStorage.cs @@ -118,9 +118,8 @@ namespace FlowerShopFileImplement.Implements count = countStore; - for (int i = 0; i < source.Shops.Count; i++) + foreach(var shop in source.Shops) { - var shop = source.Shops[i]; var bouquets = shop.ShopBouquets; foreach (var bouq in bouquets.Where(x => x.Value.Item1.Id == bouquet.Id)) diff --git a/FlowerShop/FlowerShopFileImplement/Models/Bouquet.cs b/FlowerShop/FlowerShopFileImplement/Models/Bouquet.cs index 45f5ceb..4339e85 100644 --- a/FlowerShop/FlowerShopFileImplement/Models/Bouquet.cs +++ b/FlowerShop/FlowerShopFileImplement/Models/Bouquet.cs @@ -60,7 +60,7 @@ namespace FlowerShopFileImplement.Models return new Bouquet() { Id = Convert.ToInt32(element.Attribute("Id")!.Value), - BouquetName = element.Attribute("BouquetName")!.Value, + BouquetName = element.Element("BouquetName")!.Value, Price = Convert.ToDouble(element.Element("Price")!.Value), Components = element.Element("BouquetComponents")!.Elements("BouquetComponent").ToDictionary( x => Convert.ToInt32(x.Element("Key")?.Value), diff --git a/FlowerShop/FlowerShopFileImplement/Models/Order.cs b/FlowerShop/FlowerShopFileImplement/Models/Order.cs index 8b59378..b198e3e 100644 --- a/FlowerShop/FlowerShopFileImplement/Models/Order.cs +++ b/FlowerShop/FlowerShopFileImplement/Models/Order.cs @@ -67,13 +67,8 @@ namespace FlowerShopFileImplement.Models return; } - BouquetId = model.BouquetId; - Count = model.Count; - Sum = model.Sum; Status = model.Status; - DateCreate = model.DateCreate; DateImplement = model.DateImplement; - Id = model.Id; } public OrderViewModel GetViewModel => new()