diff --git a/PlumbingRepair/PlumbingRepairBusinessLogic/BusinessLogic/OrderLogic.cs b/PlumbingRepair/PlumbingRepairBusinessLogic/BusinessLogic/OrderLogic.cs index 84f57c9..de0eeff 100644 --- a/PlumbingRepair/PlumbingRepairBusinessLogic/BusinessLogic/OrderLogic.cs +++ b/PlumbingRepair/PlumbingRepairBusinessLogic/BusinessLogic/OrderLogic.cs @@ -49,6 +49,20 @@ namespace PlumbingRepairBusinessLogic.BusinessLogic throw new ArgumentNullException(nameof(model)); } + OrderViewModel? order = _orderStorage.GetElement(new OrderSearchModel + { + Id = model.Id + }); + + if (order == null) + { + _logger.LogWarning("Status update to " + newStatus.ToString() + " operation failed. Order not found."); + return false; + } + + model.Status = order.Status; + if (!model.ImplementerId.HasValue) model.ImplementerId = order.ImplementerId; + if (model.Status + 1 != newStatus) { _logger.LogWarning("Status update to " + newStatus.ToString() + " operation failed. Order status incorrect."); @@ -71,7 +85,6 @@ namespace PlumbingRepairBusinessLogic.BusinessLogic if (_orderStorage.Update(model) == null) { - model.Status--; _logger.LogWarning("Update operation failed"); return false; }