This commit is contained in:
devil_1nc 2023-05-31 13:41:08 +04:00
parent beb38d2b96
commit 9eecd21fbe
2 changed files with 23 additions and 15 deletions

View File

@ -68,37 +68,43 @@ namespace AbstractSoftwareInstallationBusinessLogic.BusinessLogic
return false;
}
model.Status = OrderStatus.Принят;
model.DateCreate = DateTime.Now;
if (_orderStorage.Insert(model) == null)
{
Console.WriteLine("_orderStorage.Insert(model) == null");
model.Status = OrderStatus.Неизвестен;
_logger.LogWarning("Failed to insert order into a storage");
_logger.LogWarning("Failed to insert order into a storage");
return false;
}
return true;
}
public bool StatusUpdate(OrderBindingModel model, OrderStatus _newStatus)
public bool StatusUpdate(OrderBindingModel rawModel, OrderStatus _newStatus)
{
var viewModel = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id });
var viewModel = _orderStorage.GetElement(new OrderSearchModel { Id = rawModel.Id });
if (viewModel == null)
{
throw new ArgumentNullException(nameof(model));
_logger.LogWarning("Order model not found");
return false;
}
if (viewModel.Status + 1 != _newStatus)
OrderBindingModel model = new OrderBindingModel
{
Id = viewModel.Id,
PackageId = viewModel.PackageId,
Status = viewModel.Status,
DateCreate = viewModel.DateCreate,
DateImplement = viewModel.DateImplement,
Count = viewModel.Count,
Sum = viewModel.Sum
};
CheckModel(rawModel, false);
if (rawModel.Status + 1 != _newStatus)
{
_logger.LogWarning("Status update to " + _newStatus.ToString() + " operation failed. Order status incorrect.");
return false;
}
model.Status = _newStatus;
if (model.Status == OrderStatus.Выдан) model.DateImplement = DateTime.Now;
else
if (rawModel.Status == OrderStatus.Выдан) rawModel.DateImplement = DateTime.Now;
if (_orderStorage.Update(rawModel) == null)
{
model.DateImplement = viewModel.DateImplement;
}
CheckModel(model, false);
if (_orderStorage.Update(model) == null)
{
model.Status--;
rawModel.Status--;
_logger.LogWarning("Update operation failed");
return false;
}

View File

@ -70,6 +70,7 @@ namespace AbstractSoftwareInstallationDatabaseImplement.Implements
public OrderViewModel? Insert(OrderBindingModel model)
{
var newOrder = Order.Create(model);
if (newOrder == null)
@ -77,6 +78,7 @@ namespace AbstractSoftwareInstallationDatabaseImplement.Implements
return null;
}
using var context = new AbstractSoftwareInstallationDatabase();
context.Orders.Add(newOrder);
context.SaveChanges();
return context.Orders.Include(x => x.Package).Include(x => x.Client).FirstOrDefault(x => x.Id == newOrder.Id)?.GetViewModel;