From 2f411f36b8a1518fe762f74b603c08d3740a8aac Mon Sep 17 00:00:00 2001 From: Ivan_Starostin Date: Sun, 2 Jun 2024 17:09:48 +0400 Subject: [PATCH] Update 'ShipyardFileImplement/OrderStorage.cs' --- ShipyardFileImplement/OrderStorage.cs | 189 +++++++++++++------------- 1 file changed, 92 insertions(+), 97 deletions(-) diff --git a/ShipyardFileImplement/OrderStorage.cs b/ShipyardFileImplement/OrderStorage.cs index a1e2b2e..536e8c6 100644 --- a/ShipyardFileImplement/OrderStorage.cs +++ b/ShipyardFileImplement/OrderStorage.cs @@ -1,98 +1,93 @@ -using ShipyardContracts.BindingModels; -using ShipyardContracts.SearchModels; -using ShipyardContracts.StoragesContracts; -using ShipyardContracts.ViewModels; -using ShipyardFileImplement.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ShipyardFileImplement.Implements -{ - public class OrderStorage : IOrderStorage - { - private readonly DataFileSingleton source; - public OrderStorage() - { - source = DataFileSingleton.GetInstance(); - } - public List GetFullList() - { - return source.Orders.Select(x => AccessShipStorage(x.GetViewModel)).ToList(); - } - public List GetFilteredList(OrderSearchModel model) - { - - return source.Orders - .Where(x => ( - (!model.Id.HasValue || x.Id == model.Id) && - (!model.DateFrom.HasValue || x.DateCreate >= model.DateFrom) && - (!model.DateTo.HasValue || x.DateCreate <= model.DateTo) - ) - ) - .Select(x => AccessShipStorage(x.GetViewModel)) - .ToList(); - } - public OrderViewModel? GetElement(OrderSearchModel model) - { - if (!model.Id.HasValue) - { - return null; - } - return AccessShipStorage(source.Orders.FirstOrDefault( - x => (model.Id.HasValue && x.Id == model.Id))?.GetViewModel - ); - } - public OrderViewModel? Insert(OrderBindingModel model) - { - model.Id = source.Orders.Count > 0 ? source.Orders.Max(x => x.Id) + 1 : 1; - var newOrder = Order.Create(model); - if (newOrder == null) - { - return null; - } - source.Orders.Add(newOrder); - source.SaveOrders(); - return AccessShipStorage(newOrder.GetViewModel); - } - public OrderViewModel? Update(OrderBindingModel model) - { - var order = source.Orders.FirstOrDefault(x => x.Id == model.Id); - if (order == null) - { - return null; - } - order.Update(model); - source.SaveOrders(); - return AccessShipStorage(order.GetViewModel); - } - public OrderViewModel? Delete(OrderBindingModel model) - { - var element = source.Orders.FirstOrDefault(x => x.Id == - model.Id); - if (element != null) - { - source.Orders.Remove(element); - source.SaveOrders(); - return AccessShipStorage(element.GetViewModel); - } - return null; - } - public OrderViewModel? AccessShipStorage(OrderViewModel model) - { - if (model == null) - return null; - foreach (var Ship in source.Ships) - { - if (Ship.Id == model.ShipId) - { - model.ShipName = Ship.ShipName; - break; - } - } - return model; - } - } +using ShipyardContracts.BindingModels; +using ShipyardContracts.SearchModels; +using ShipyardContracts.StoragesContracts; +using ShipyardContracts.ViewModels; +using ShipyardFileImplement.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ShipyardFileImplement.Implements +{ + public class OrderStorage : IOrderStorage + { + private readonly DataFileSingleton source; + public OrderStorage() + { + source = DataFileSingleton.GetInstance(); + } + public List GetFullList() + { + return source.Orders.Select(x => AccessShipStorage(x.GetViewModel)).ToList(); + } + public List GetFilteredList(OrderSearchModel model) + { + + return source.Orders + .Where(x => ( + (!model.Id.HasValue || x.Id == model.Id) && + (!model.DateFrom.HasValue || x.DateCreate >= model.DateFrom) && + (!model.DateTo.HasValue || x.DateCreate <= model.DateTo) + ) + ) + .Select(x => AccessShipStorage(x.GetViewModel)) + .ToList(); + } + public OrderViewModel? GetElement(OrderSearchModel model) + { + if (!model.Id.HasValue) + { + return null; + } + return AccessShipStorage(source.Orders.FirstOrDefault( + x => (model.Id.HasValue && x.Id == model.Id))?.GetViewModel + ); + } + public OrderViewModel? Insert(OrderBindingModel model) + { + model.Id = source.Orders.Count > 0 ? source.Orders.Max(x => x.Id) + 1 : 1; + var newOrder = Order.Create(model); + if (newOrder == null) + { + return null; + } + source.Orders.Add(newOrder); + source.SaveOrders(); + return AccessShipStorage(newOrder.GetViewModel); + } + public OrderViewModel? Update(OrderBindingModel model) + { + var order = source.Orders.FirstOrDefault(x => x.Id == model.Id); + if (order == null) + { + return null; + } + order.Update(model); + source.SaveOrders(); + return AccessShipStorage(order.GetViewModel); + } + public OrderViewModel? Delete(OrderBindingModel model) + { + var element = source.Orders.FirstOrDefault(x => x.Id == + model.Id); + if (element != null) + { + source.Orders.Remove(element); + source.SaveOrders(); + return AccessShipStorage(element.GetViewModel); + } + return null; + } + public OrderViewModel? AccessShipStorage(OrderViewModel model) + { + if (model == null) + return null; + var ship = source.Ships.FirstOrDefault(x => x.Id == model.Id); + if (ship != null) + model.ShipName = ship.ShipName; + return model; + } + } } \ No newline at end of file