Compare commits

..

3 Commits

7 changed files with 15 additions and 19 deletions

View File

@ -75,12 +75,12 @@
this.comboBoxShop.Size = new System.Drawing.Size(220, 23);
this.comboBoxShop.TabIndex = 3;
//
// comboBoxDocument
// comboBoxBouquet
//
this.comboBoxBouquet.FormattingEnabled = true;
this.comboBoxBouquet.Location = new System.Drawing.Point(130, 52);
this.comboBoxBouquet.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.comboBoxBouquet.Name = "comboBoxDocument";
this.comboBoxBouquet.Name = "comboBoxBouquet";
this.comboBoxBouquet.Size = new System.Drawing.Size(220, 23);
this.comboBoxBouquet.TabIndex = 4;
//

View File

@ -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.Готов;

View File

@ -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

View File

@ -37,7 +37,7 @@ namespace FlowerShopFileImplement.Implements
public List<OrderViewModel> 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)

View File

@ -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))

View File

@ -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),

View File

@ -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()