From e49e1fbcb0c77efb8e0a925472ceb1720d0f7b52 Mon Sep 17 00:00:00 2001 From: song2remaster Date: Wed, 1 May 2024 19:51:53 +0400 Subject: [PATCH] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=D0=B0=20orderstorage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/OrderStorage.cs | 19 +++++- .../Implements/OrderStorage.cs | 23 +++++-- .../Implements/OrderStorage.cs | 67 ++++++++++--------- 3 files changed, 70 insertions(+), 39 deletions(-) diff --git a/Aparyan.ISE_22.MotorPlant/MotorPlantDatabaseImplement/Implements/OrderStorage.cs b/Aparyan.ISE_22.MotorPlant/MotorPlantDatabaseImplement/Implements/OrderStorage.cs index 5ebb999..a14ead9 100644 --- a/Aparyan.ISE_22.MotorPlant/MotorPlantDatabaseImplement/Implements/OrderStorage.cs +++ b/Aparyan.ISE_22.MotorPlant/MotorPlantDatabaseImplement/Implements/OrderStorage.cs @@ -1,4 +1,5 @@ -using MotorPlantContracts.BindingModels; +using Microsoft.EntityFrameworkCore; +using MotorPlantContracts.BindingModels; using MotorPlantContracts.SearchModels; using MotorPlantContracts.StoragesContracts; using MotorPlantContracts.VeiwModels; @@ -33,12 +34,24 @@ namespace MotorPlantDatabaseImplement.Implements public List GetFilteredList(OrderSearchModel model) { - if (!model.Id.HasValue) + if (!model.Id.HasValue && !model.DateFrom.HasValue) { return new(); } using var context = new MotorPlantDatabase(); - return context.Orders.Where(x => x.Id == model.Id).Select(x => x.GetViewModel).ToList(); + if (model.DateFrom.HasValue) + { + return context.Orders + .Include(x => x.Engine) + .Where(x => x.DateCreate >= model.DateFrom && x.DateCreate <= model.DateTo) + .Select(x => x.GetViewModel) + .ToList(); + } + return context.Orders + .Include(x => x.Engine) + .Where(x => x.Id == model.Id) + .Select(x => x.GetViewModel) + .ToList(); } public List GetFullList() { diff --git a/MoorPlantListImplement/Implements/OrderStorage.cs b/MoorPlantListImplement/Implements/OrderStorage.cs index eccfcae..939c690 100644 --- a/MoorPlantListImplement/Implements/OrderStorage.cs +++ b/MoorPlantListImplement/Implements/OrderStorage.cs @@ -43,20 +43,35 @@ namespace MotorPlantListImplement.Implements public List GetFilteredList(OrderSearchModel model) { var result = new List(); - - if (!model.Id.HasValue) + if (model == null || !model.Id.HasValue) + { + return result; + } + if (!model.DateFrom.HasValue || !model.DateTo.HasValue) { return result; } foreach (var order in _source.Orders) { - if (model.Id.HasValue && order.Id == model.Id) + if (order.Id == model.Id || (model.DateFrom <= order.DateCreate && order.DateCreate <= model.DateTo)) { - result.Add(order.GetViewModel); + result.Add(AttachEngineName(order.GetViewModel)); } } return result; } + private OrderViewModel AttachEngineName(OrderViewModel model) + { + foreach (var Engine in _source.Engines) + { + if (Engine.Id == model.EngineId) + { + model.EngineName = Engine.EngineName; + return model; + } + } + return model; + } public List GetFullList() { var result = new List(); diff --git a/MotorPlantFileImplement/Implements/OrderStorage.cs b/MotorPlantFileImplement/Implements/OrderStorage.cs index 1f694cb..f53b46b 100644 --- a/MotorPlantFileImplement/Implements/OrderStorage.cs +++ b/MotorPlantFileImplement/Implements/OrderStorage.cs @@ -12,23 +12,32 @@ namespace MotorPlantFileImplement.Implements { source = DataFileSingleton.GetInstance(); } - public List GetFullList() => source.Orders.Select(x => AttachEngineName(x.GetViewModel)).ToList(); - - public List GetFilteredList(OrderSearchModel model) - { - if (!model.Id.HasValue) - { - return new(); - } - return source.Orders.Where(x => x.Id == model.Id).Select(x => AttachEngineName(x.GetViewModel)).ToList(); - } public OrderViewModel? GetElement(OrderSearchModel model) { if (!model.Id.HasValue) { - return new(); + return null; } - return AttachEngineName(source.Orders.FirstOrDefault(x => x.Id == model.Id)?.GetViewModel); + return GetViewModel(source.Orders.FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id)); + } + public List GetFilteredList(OrderSearchModel model) + { + if (!model.Id.HasValue) + { + if (!model.Id.HasValue && !model.DateFrom.HasValue || !model.DateTo.HasValue) + { + return new(); + } + return source.Orders.Where(x => x.Id == model.Id).Select(x => GetViewModel(x)).ToList(); + } + return source.Orders + .Where(x => x.Id == model.Id || (model.DateTo >= x.DateCreate && model.DateFrom <= x.DateCreate)) + .Select(x => GetViewModel(x)) + .ToList(); + } + public List GetFullList() + { + return source.Orders.Select(x => GetViewModel(x)).ToList(); } public OrderViewModel? Insert(OrderBindingModel model) { @@ -40,7 +49,7 @@ namespace MotorPlantFileImplement.Implements } source.Orders.Add(newOrder); source.SaveOrders(); - return AttachEngineName(newOrder.GetViewModel); + return GetViewModel(newOrder); } public OrderViewModel? Update(OrderBindingModel model) { @@ -51,31 +60,25 @@ namespace MotorPlantFileImplement.Implements } order.Update(model); source.SaveOrders(); - return AttachEngineName(order.GetViewModel); + return GetViewModel(order); } public OrderViewModel? Delete(OrderBindingModel model) { var order = source.Orders.FirstOrDefault(x => x.Id == model.Id); - if (order != null) - { - source.Orders.Remove(order); - source.SaveOrders(); - return AttachEngineName(order.GetViewModel); - } - return null; - } - private OrderViewModel? AttachEngineName(OrderViewModel? model) - { - if (model == null) + if (order == null) { return null; } - var engine = source.Engines.FirstOrDefault(x => x.Id == model.EngineId); - if (engine != null) - { - model.EngineName = engine.EngineName; - } - return model; + order.Update(model); + source.SaveOrders(); + return GetViewModel(order); + } + private OrderViewModel GetViewModel(Order order) + { + var viewModel = order.GetViewModel; + var engine = source.Engines.FirstOrDefault(x => x.Id == order.EngineId); + viewModel.EngineName = engine?.EngineName; + return viewModel; } } -} +} \ No newline at end of file