diff --git a/Pizzeria/PizzeriaBusinessLogic/OrderLogic.cs b/Pizzeria/PizzeriaBusinessLogic/OrderLogic.cs index ceecc04..cd40164 100644 --- a/Pizzeria/PizzeriaBusinessLogic/OrderLogic.cs +++ b/Pizzeria/PizzeriaBusinessLogic/OrderLogic.cs @@ -39,22 +39,21 @@ namespace PizzeriaBusinessLogic _logger.LogInformation("ReadList. Count:{Count}", list.Count); return list; } - public OrderViewModel? ReadElement(OrderSearchModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } - _logger.LogInformation("ReadElement. ClientId: {ClientId}. ImplementerId: {ImplementerId}. Status: {Status}. DateFrom: {DateFrom}. DateTo: {DateTo}. Id: {Id}", - model.ClientId, model.ImplementerId, model.Status, model.DateFrom, model.DateTo, model.Id); + _logger.LogInformation("ReadElement. ClientId:{ClientId}.Status:{Status}.ImplementerId:{ImplementerId}.DateFrom:{DateFrom}.DateTo:{DateTo}OrderId:{Id}", + model.ClientId, model.Status, model.ImplementerId, model.DateFrom, model.DateTo, model.Id); var element = _orderStorage.GetElement(model); if (element == null) { _logger.LogWarning("ReadElement element not found"); return null; } - _logger.LogInformation("ReadElement find. Id: {Id}", element.Id); + _logger.LogInformation("ReadElement find. Id:{Id}", element.Id); return element; } public bool CreateOrder(OrderBindingModel model) @@ -63,17 +62,17 @@ namespace PizzeriaBusinessLogic if (model.Status != OrderStatus.Неизвестен) return false; model.Status = OrderStatus.Принят; - var orderView = _orderStorage.Insert(model); - if (orderView == null) + var element = _orderStorage.Insert(model); + if (element == null) { _logger.LogWarning("Insert operation failed"); return false; } Task.Run(() => _mailWorker.MailSendAsync(new MailSendInfoBindingModel { - MailAddress = orderView.ClientEmail, - Subject = $"Новый заказ создан. Заказ №{orderView.Id}", - Text = $"Заказ №{orderView.Id} от {orderView.DateCreate} на сумму {orderView.Sum} принят." + MailAddress = element.ClientEmail, + Subject = $"Изменение статуса заказа номер {element.Id}", + Text = $"Ваш заказ номер {element.Id} на изделие {element.PizzaName} от {element.DateCreate} на сумму {element.Sum} принят." })); return true; } @@ -104,11 +103,11 @@ namespace PizzeriaBusinessLogic } if (model.Count <= 0) { - throw new ArgumentException("Количество пиццы в заказе не может быть меньше 1", nameof(model.Count)); + throw new ArgumentException("Количество изделий в заказе не может быть меньше 1", nameof(model.Count)); } - if (model.Sum < 1) + if (model.Sum <= 0) { - throw new ArgumentException("Стоимость заказа на может быть меньше 1", nameof(model.Sum)); + throw new ArgumentException("Стоимость заказа не может быть меньше 1", nameof(model.Sum)); } if (model.DateImplement.HasValue && model.DateImplement < model.DateCreate) { @@ -120,21 +119,20 @@ namespace PizzeriaBusinessLogic private bool ChangeStatus(OrderBindingModel model, OrderStatus requiredStatus) { CheckModel(model, false); - var orderView = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id }); var element = _orderStorage.GetElement(new OrderSearchModel() { Id = model.Id }); if (element == null) { - throw new ArgumentNullException(nameof(element)); + throw new InvalidOperationException(nameof(element)); } model.DateCreate = element.DateCreate; model.PizzaId = element.PizzaId; + model.DateImplement = element.DateImplement; model.ClientId = element.ClientId; if (!model.ImplementerId.HasValue) model.ImplementerId = element.ImplementerId; - model.DateImplement = element.DateImplement; model.Status = element.Status; model.Count = element.Count; model.Sum = element.Sum; @@ -148,17 +146,17 @@ namespace PizzeriaBusinessLogic _logger.LogWarning("Update operation failed"); return false; } + string DateInfo = model.DateImplement.HasValue ? $"Дата выполнения {model.DateImplement}" : ""; Task.Run(() => _mailWorker.MailSendAsync(new MailSendInfoBindingModel { - MailAddress = orderView.ClientEmail, - Subject = $"Заказ №{orderView.Id}", - Text = $"Заказ №{orderView.Id} изменен статус на {orderView.Status}." + MailAddress = element.ClientEmail, + Subject = $"Изменение статуса заказа номер {element.Id}", + Text = $"Ваш заказ номер {element.Id} на изделие {element.PizzaName} от {element.DateCreate} на сумму {element.Sum} {model.Status}. {DateInfo}" })); - return true; } _logger.LogWarning("Changing status operation faled: Current-{Status}:required-{requiredStatus}.", model.Status, requiredStatus); - throw new ArgumentException($"Невозможно присвоить статус {requiredStatus} заказу с текущим статусом {model.Status}"); + throw new InvalidOperationException($"Невозможно приствоить статус {requiredStatus} заказу с текущим статусом {model.Status}"); } } }