работает

This commit is contained in:
ityurner02@mail.ru 2023-04-17 18:03:03 +04:00
parent df2c68349c
commit 04daacfad4
3 changed files with 80 additions and 57 deletions

View File

@ -42,7 +42,6 @@ namespace PlumbingRepair
DataGridView.Columns["WorkId"].Visible = false; DataGridView.Columns["WorkId"].Visible = false;
DataGridView.Columns["ClientId"].Visible = false; DataGridView.Columns["ClientId"].Visible = false;
DataGridView.Columns["ImplementerId"].Visible = false; DataGridView.Columns["ImplementerId"].Visible = false;
DataGridView.Columns["DateImplement"].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
} }
_logger.LogInformation("Загрузка заказов"); _logger.LogInformation("Загрузка заказов");

View File

@ -41,13 +41,9 @@ namespace PlumbingRepairBusinessLogic.BusinessLogic
return true; return true;
} }
public bool StatusUpdate(OrderBindingModel model, OrderStatus newStatus) /*public bool StatusUpdate(OrderBindingModel model, OrderStatus newStatus)
{ {
var viewModel = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id }); CheckModel(model, false);
if (viewModel == null)
{
throw new ArgumentNullException(nameof(model));
}
OrderViewModel? order = _orderStorage.GetElement(new OrderSearchModel OrderViewModel? order = _orderStorage.GetElement(new OrderSearchModel
{ {
@ -64,12 +60,38 @@ namespace PlumbingRepairBusinessLogic.BusinessLogic
if (!model.ImplementerId.HasValue) model.ImplementerId = order.ImplementerId; if (!model.ImplementerId.HasValue) model.ImplementerId = order.ImplementerId;
if (model.Status + 1 != newStatus) if (model.Status + 1 != newStatus)
{ {
_logger.LogWarning("Status update to " + newStatus.ToString() + " operation failed. Order status incorrect."); _logger.LogWarning("Status update to " + newStatus.ToString() + " operation failed. Incorrect Order status.");
return false; return false;
} }
model.Status = newStatus; model.Status = newStatus;
if (newStatus == OrderStatus.Готов)
{
model.DateImplement = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);
}
if (_orderStorage.Update(model) == null)
{
_logger.LogWarning("Update operation failed");
return false;
}
return true;
}*/
public bool StatusUpdate(OrderBindingModel model, OrderStatus newStatus)
{
var viewModel = _orderStorage.GetElement(new OrderSearchModel { Id = model.Id });
if (viewModel == null)
{
throw new ArgumentNullException(nameof(model));
}
if (viewModel.Status + 1 != newStatus)
{
_logger.LogWarning("Update operation failed. Order status incorrect.");
return false;
}
model.Status = newStatus;
model.DateCreate = viewModel.DateCreate; model.DateCreate = viewModel.DateCreate;
model.Sum = viewModel.Sum; model.Sum = viewModel.Sum;
model.Count = viewModel.Count; model.Count = viewModel.Count;
@ -79,20 +101,22 @@ namespace PlumbingRepairBusinessLogic.BusinessLogic
{ {
model.ImplementerId = viewModel.ImplementerId; model.ImplementerId = viewModel.ImplementerId;
} }
if (model.Status == OrderStatus.Готов) model.DateImplement = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);
else
{
model.DateImplement = viewModel.DateImplement;
}
CheckModel(model);
if (_orderStorage.Update(model) == null)
{
model.Status--;
_logger.LogWarning("Update operation failed");
return false;
}
return true;
}
if (model.Status == OrderStatus.Готов) public bool TakeOrderInWork(OrderBindingModel model)
model.DateImplement = DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc);
if (_orderStorage.Update(model) == null)
{
_logger.LogWarning("Update operation failed");
return false;
}
return true;
}
public bool TakeOrderInWork(OrderBindingModel model)
{ {
return StatusUpdate(model, OrderStatus.Выполняется); return StatusUpdate(model, OrderStatus.Выполняется);
} }

View File

@ -23,37 +23,37 @@ namespace PlumbingRepairDatabaseImplement.Implements
public List<OrderViewModel> GetFilteredList(OrderSearchModel model) public List<OrderViewModel> GetFilteredList(OrderSearchModel model)
{ {
using var context = new PlumbingRepairDataBase(); using var context = new PlumbingRepairDataBase();
if (model.Id.HasValue) if (model.Id.HasValue)
{ {
return context.Orders return context.Orders
.Include(x => x.Work) .Include(x => x.Work)
.Include(x => x.Client) .Include(x => x.Client)
.Include(x => x.Implementer) .Include(x => x.Implementer)
.Where(x => x.Id == model.Id) .Where(x => x.Id == model.Id)
.Select(x => x.GetViewModel) .Select(x => x.GetViewModel)
.ToList(); .ToList();
} }
else if (model.DateFrom != null && model.DateTo != null) else if (model.DateFrom != null && model.DateTo != null)
{ {
return context.Orders return context.Orders
.Include(x => x.Work) .Include(x => x.Work)
.Include(x => x.Client) .Include(x => x.Client)
.Include(x => x.Implementer) .Include(x => x.Implementer)
.Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo) .Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo)
.Select(x => x.GetViewModel) .Select(x => x.GetViewModel)
.ToList(); .ToList();
} }
else if (model.ClientId.HasValue) else if (model.ClientId.HasValue)
{ {
return context.Orders return context.Orders
.Include(x => x.Work) .Include(x => x.Work)
.Include(x => x.Client) .Include(x => x.Client)
.Include(x => x.Implementer) .Include(x => x.Implementer)
.Where(x => x.ClientId == model.ClientId) .Where(x => x.ClientId == model.ClientId)
.Select(x => x.GetViewModel) .Select(x => x.GetViewModel)
.ToList(); .ToList();
} }
else if (model.ImplementerId.HasValue) else if (model.ImplementerId.HasValue)
{ {
return context.Orders return context.Orders
@ -75,16 +75,16 @@ namespace PlumbingRepairDatabaseImplement.Implements
public OrderViewModel? GetElement(OrderSearchModel model) public OrderViewModel? GetElement(OrderSearchModel model)
{ {
if (!model.Id.HasValue) if (!model.Id.HasValue)
{ {
return null; return null;
} }
using var context = new PlumbingRepairDataBase(); using var context = new PlumbingRepairDataBase();
return context.Orders return context.Orders
.Include(x => x.Work) .Include(x => x.Work)
.Include(x => x.Client) .Include(x => x.Client)
.Include(x => x.Implementer) .Include(x => x.Implementer)
.FirstOrDefault(x => (model.Status == null || model.Status != null && model.Status == x.Status) && .FirstOrDefault(x => (model.Status == null || model.Status != null && model.Status == x.Status) &&
model.ImplementerId.HasValue && x.ImplementerId == model.ImplementerId || model.ImplementerId.HasValue && x.ImplementerId == model.ImplementerId ||