This commit is contained in:
Sergey Kozyrev 2024-04-05 14:53:49 +04:00
parent b693010a55
commit bdfc6c5ca3

View File

@ -6,96 +6,87 @@ using SewingDressesDatabaseImplement.Models;
namespace SewingDressesDatabaseImplement.Implements namespace SewingDressesDatabaseImplement.Implements
{ {
public class OrderStorage : IOrderStorage public class OrderStorage : IOrderStorage
{ {
public List<OrderViewModel?> GetFullList() public List<OrderViewModel?> GetFullList()
{ {
using var context = new SewingDressesDatabase(); using var context = new SewingDressesDatabase();
return context.Orders.Select(x => AcessDressesStorage(x.GetViewModel, context)).ToList(); return context.Orders.Select(x => AcessDressesStorage(x.GetViewModel, context)).ToList();
} }
public List<OrderViewModel?> GetFilteredList(OrderSearchModel model) public List<OrderViewModel?> GetFilteredList(OrderSearchModel model)
{ {
if (!model.Id.HasValue && !model.DateFrom.HasValue && !model.DateTo.HasValue && !model.ClientId.HasValue) if (!model.Id.HasValue && !model.DateFrom.HasValue && !model.DateTo.HasValue)
{ {
return new(); return new();
} }
using var context = new SewingDressesDatabase(); using var context = new SewingDressesDatabase();
if (model.Id.HasValue) if (model.Id.HasValue)
return context.Orders.Where(x => x.Id == model.Id).Select(x => AcessDressesStorage(x.GetViewModel, context)).ToList(); return context.Orders.Where(x => x.Id == model.Id).Select(x => AcessDressesStorage(x.GetViewModel, context)).ToList();
else if (model.ClientId.HasValue)
return context.Orders.Where(x => x.ClientId == model.ClientId).Select(x => AcessDressesStorage(x.GetViewModel, context)).ToList();
else else
return context.Orders.Where(x => x.DateCreate >= model.DateFrom).Where(x => x.DateCreate <= model.DateTo).Select(x => AcessDressesStorage(x.GetViewModel, context)).ToList(); return context.Orders.Where(x => x.DateCreate >= model.DateFrom).Where(x => x.DateCreate <= model.DateTo).Select(x => AcessDressesStorage(x.GetViewModel, context)).ToList();
} }
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 SewingDressesDatabase(); using var context = new SewingDressesDatabase();
return AcessDressesStorage(context.Orders.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel, context); return AcessDressesStorage(context.Orders.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel, context);
} }
public OrderViewModel? Insert(OrderBindingModel model) public OrderViewModel? Insert(OrderBindingModel model)
{ {
var order = Order.Create(model); var order = Order.Create(model);
if (order == null) if (order == null)
{ {
return null; return null;
} }
using var context = new SewingDressesDatabase(); using var context = new SewingDressesDatabase();
context.Orders.Add(order); context.Orders.Add(order);
context.SaveChanges(); context.SaveChanges();
return AcessDressesStorage(order.GetViewModel, context); return AcessDressesStorage(order.GetViewModel, context);
} }
public OrderViewModel? Update(OrderBindingModel model) public OrderViewModel? Update(OrderBindingModel model)
{ {
using var context = new SewingDressesDatabase(); using var context = new SewingDressesDatabase();
var order = context.Orders.FirstOrDefault(x => x.Id == model.Id); var order = context.Orders.FirstOrDefault(x => x.Id == model.Id);
if (order == null) if (order == null)
{ {
return null; return null;
} }
order.Update(model); order.Update(model);
context.SaveChanges(); context.SaveChanges();
return AcessDressesStorage(order.GetViewModel, context); return AcessDressesStorage(order.GetViewModel, context);
} }
public OrderViewModel? Delete(OrderBindingModel model) public OrderViewModel? Delete(OrderBindingModel model)
{ {
using var context = new SewingDressesDatabase(); using var context = new SewingDressesDatabase();
var element = context.Orders.FirstOrDefault(x => x.Id == model.Id); var element = context.Orders.FirstOrDefault(x => x.Id == model.Id);
if (element == null) if (element == null)
{ {
return null; return null;
} }
context.Orders.Remove(element); context.Orders.Remove(element);
context.SaveChanges(); context.SaveChanges();
return AcessDressesStorage(element.GetViewModel, context); return AcessDressesStorage(element.GetViewModel, context);
} }
public static OrderViewModel? AcessDressesStorage(OrderViewModel? model, SewingDressesDatabase context) public static OrderViewModel? AcessDressesStorage(OrderViewModel? model, SewingDressesDatabase context)
{ {
if (model == null) if (model == null)
{ {
return null; return null;
} }
var dress = context.Dresses.FirstOrDefault(x => x.Id == model.DressId); var dress = context.Dresses.FirstOrDefault(x => x.Id == model.DressId);
if (dress == null) if (dress == null)
{ {
return null; return null;
} }
var client = context.Clients.FirstOrDefault(x => x.Id == model.ClientId); model.DressName = dress.DressName;
if (client == null) return model;
{ }
return null;
}
model.DressName = dress.DressName;
model.ClientFIO = client.ClientFIO;
model.ClientId = client.Id;
return model;
}
} }
} }