From f36575d68433547a93a1a1535180abe6bb82875e Mon Sep 17 00:00:00 2001 From: PIbd-21_Spasskyi_Artem Date: Wed, 3 May 2023 00:41:24 +0400 Subject: [PATCH] revert b1c48c1394738b18f674fcc2fb27f2463b8e7bdd revert lab2 (#5) Co-authored-by: artiogf Reviewed-on: http://student.git.athene.tech/PIbd-21_Spasskyi_Artem/PIBD-21_Spasskiy.A.D._CarpentryWorkshop28/pulls/5 --- CarpentryWorkshop.sln | 8 +- .../BusinessLogics/OrderLogic.cs | 237 +++++++++--------- .../BusinessLogics/WoodLogic.cs | 6 +- CarpentryWorkshopBusinessLogic/Class1.cs | 7 + .../BusinessLogicsContracts/IOrderLogic.cs | 1 + CarpentryWorkshopContracts/Class1.cs | 7 + .../SearchModels/ComponentSearchModel.cs | 1 + .../SearchModels/WoodSearchModel.cs | 1 + .../ViewModels/ComponentViewModel.cs | 1 + .../CarpentryWorkshopDataModels.csproj | 3 - .../Models/IOrderModel.cs | 6 +- .../CarpentryWorkshopFileImplement.csproj | 14 -- .../DataFileSingleton.cs | 49 ---- .../Implements/ComponentStorage.cs | 83 ------ .../Implements/OrderStorage.cs | 83 ------ .../Implements/WoodStorage.cs | 83 ------ .../Models/Component.cs | 66 ----- .../Models/Order.cs | 91 ------- CarpentryWorkshopFileImplement/Models/Wood.cs | 87 ------- .../Models/Order.cs | 16 +- .../CarpentryWorkshopView.csproj | 2 +- .../FormComponent.Designer.cs | 2 +- .../FormComponents.Designer.cs | 2 +- CarpentryWorkshopView/FormMain.Designer.cs | 2 +- CarpentryWorkshopView/FormWood.Designer.cs | 2 +- .../FormWoodComponent.Designer.cs | 4 +- CarpentryWorkshopView/FormWoods.Designer.cs | 2 +- CarpentryWorkshopView/Program.cs | 2 +- 28 files changed, 165 insertions(+), 703 deletions(-) create mode 100644 CarpentryWorkshopBusinessLogic/Class1.cs create mode 100644 CarpentryWorkshopContracts/Class1.cs delete mode 100644 CarpentryWorkshopFileImplement/CarpentryWorkshopFileImplement.csproj delete mode 100644 CarpentryWorkshopFileImplement/DataFileSingleton.cs delete mode 100644 CarpentryWorkshopFileImplement/Implements/ComponentStorage.cs delete mode 100644 CarpentryWorkshopFileImplement/Implements/OrderStorage.cs delete mode 100644 CarpentryWorkshopFileImplement/Implements/WoodStorage.cs delete mode 100644 CarpentryWorkshopFileImplement/Models/Component.cs delete mode 100644 CarpentryWorkshopFileImplement/Models/Order.cs delete mode 100644 CarpentryWorkshopFileImplement/Models/Wood.cs diff --git a/CarpentryWorkshop.sln b/CarpentryWorkshop.sln index 012b628..ec09714 100644 --- a/CarpentryWorkshop.sln +++ b/CarpentryWorkshop.sln @@ -11,9 +11,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CarpentryWorkshopBusinessLo EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CarpentryWorkshopListImplement", "CarpentryWorkshopListImplement\CarpentryWorkshopListImplement.csproj", "{F5B22BD8-C1C4-498F-B6E7-4A6DB2877FE4}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CarpentryWorkshopView", "CarpentryWorkshopView\CarpentryWorkshopView.csproj", "{0C21C81F-7962-4E95-8596-D47C47F03048}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarpentryWorkshopFileImplement", "CarpentryWorkshopFileImplement\CarpentryWorkshopFileImplement.csproj", "{3CDDDE24-2C40-4773-A674-63473B5E58B3}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CarpentryWorkshopView", "CarpentryWorkshopView\CarpentryWorkshopView.csproj", "{0C21C81F-7962-4E95-8596-D47C47F03048}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -41,10 +39,6 @@ Global {0C21C81F-7962-4E95-8596-D47C47F03048}.Debug|Any CPU.Build.0 = Debug|Any CPU {0C21C81F-7962-4E95-8596-D47C47F03048}.Release|Any CPU.ActiveCfg = Release|Any CPU {0C21C81F-7962-4E95-8596-D47C47F03048}.Release|Any CPU.Build.0 = Release|Any CPU - {3CDDDE24-2C40-4773-A674-63473B5E58B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3CDDDE24-2C40-4773-A674-63473B5E58B3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3CDDDE24-2C40-4773-A674-63473B5E58B3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3CDDDE24-2C40-4773-A674-63473B5E58B3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/CarpentryWorkshopBusinessLogic/BusinessLogics/OrderLogic.cs b/CarpentryWorkshopBusinessLogic/BusinessLogics/OrderLogic.cs index 09b576b..ac62c89 100644 --- a/CarpentryWorkshopBusinessLogic/BusinessLogics/OrderLogic.cs +++ b/CarpentryWorkshopBusinessLogic/BusinessLogics/OrderLogic.cs @@ -13,124 +13,129 @@ using System.Threading.Tasks; namespace CarpentryWorkshopBusinessLogic.BusinessLogics { - public class OrderLogic : IOrderLogic - { - private readonly ILogger _logger; - private readonly IOrderStorage _orderStorage; - public OrderLogic(ILogger logger, IOrderStorage orderStorage) - { - _logger = logger; - _orderStorage = orderStorage; - } - public List? ReadList(OrderSearchModel? model) - { - _logger.LogInformation("ReadList. Id:{ Id}", model?.Id); - var list = model == null ? _orderStorage.GetFullList() : _orderStorage.GetFilteredList(model); - if (list == null) - { - _logger.LogWarning("ReadList return null list"); - return null; - } - _logger.LogInformation("ReadList. Count:{Count}", list.Count); - return list; - } - public bool CreateOrder(OrderBindingModel model) - { - _orderStorage.Insert(new OrderBindingModel - { - WoodId = model.WoodId, - WoodName = model.WoodName, - Count = model.Count, - Sum = model.Sum, - Status = OrderStatus.Принят, - DateCreate = DateTime.Now - }); ; - return true; - } - public bool TakeOrderInWork(OrderBindingModel model) - { - var order = _orderStorage.GetElement(new OrderSearchModel - { - Id = model.Id - }); - if (order == null) - { - throw new Exception("Элемент не найден"); - } - if (order.Status.ToString() != "Принят") - { - throw new Exception("Заказ не в статусе \"Принят\""); - } - _orderStorage.Update(new OrderBindingModel - { - Id = order.Id, - WoodId = order.WoodId, - WoodName = order.WoodName, - Count = order.Count, - Sum = order.Sum, - DateCreate = order.DateCreate, + public class OrderLogic : IOrderLogic + { + private readonly ILogger _logger; + private readonly IOrderStorage _orderStorage; + public OrderLogic(ILogger logger, IOrderStorage orderStorage) + { + _logger = logger; + _orderStorage = orderStorage; + } + public List? ReadList(OrderSearchModel? model) + { + _logger.LogInformation("ReadList. Id:{ Id}", model?.Id); + var list = model == null ? _orderStorage.GetFullList() : _orderStorage.GetFilteredList(model); + if (list == null) + { + _logger.LogWarning("ReadList return null list"); + return null; + } + _logger.LogInformation("ReadList. Count:{Count}", list.Count); + return list; + } + public bool CreateOrder(OrderBindingModel model) + { + _orderStorage.Insert(new OrderBindingModel + { + WoodId = model.WoodId, + WoodName = model.WoodName, + Count = model.Count, + Sum = model.Sum, + Status = OrderStatus.Принят, + DateCreate = DateTime.Now + }); ; + return true; + } + public bool TakeOrderInWork(OrderBindingModel model) + { + var order = _orderStorage.GetElement(new OrderSearchModel + { + Id = model.Id + }); + if (order == null) + { + throw new Exception("Элемент не найден"); + } + if (order.Status.ToString() != "Принят") + { + throw new Exception("Заказ не в статусе \"Принят\""); + } + _orderStorage.Update(new OrderBindingModel + { + Id = order.Id, + WoodId = order.WoodId, + WoodName = order.WoodName, + Count = order.Count, + Sum = order.Sum, + DateCreate = order.DateCreate, - Status = OrderStatus.Выполняется - }); - return true; - } - public bool FinishOrder(OrderBindingModel model) - { - var order = _orderStorage.GetElement(new OrderSearchModel - { - Id = model.Id - }); - if (order == null) - { - throw new Exception("Не найден заказ"); - } - if (order.Status.ToString() != "Выполняется") - { - throw new Exception("Заказ не в статусе \"Выполняется\""); - } - _orderStorage.Update(new OrderBindingModel - { - Id = order.Id, - WoodId = order.WoodId, - WoodName = order.WoodName, - Count = order.Count, - Sum = order.Sum, - DateCreate = order.DateCreate, - DateImplement = DateTime.Now, - Status = OrderStatus.Готов - }); - return true; - } - public bool DeliveryOrder(OrderBindingModel model) - { - var order = _orderStorage.GetElement(new OrderSearchModel - { - Id = model.Id - }); - if (order == null) - { - throw new Exception("Не найден заказ"); - } + Status = OrderStatus.Выполняется + }); + return true; + } + public bool FinishOrder(OrderBindingModel model) + { + var order = _orderStorage.GetElement(new OrderSearchModel + { + Id = model.Id + }); + if (order == null) + { + throw new Exception("Не найден заказ"); + } + if (order.Status.ToString() != "Выполняется") + { + throw new Exception("Заказ не в статусе \"Выполняется\""); + } + _orderStorage.Update(new OrderBindingModel + { + Id = order.Id, + WoodId = order.WoodId, + WoodName = order.WoodName, + Count = order.Count, + Sum = order.Sum, + DateCreate = order.DateCreate, + DateImplement = DateTime.Now, + Status = OrderStatus.Готов + }); + return true; + } + public bool DeliveryOrder(OrderBindingModel model) + { + var order = _orderStorage.GetElement(new OrderSearchModel + { + Id = model.Id + }); + if (order == null) + { + throw new Exception("Не найден заказ"); + } - if (order.Status.ToString() != "Готов") - { - throw new Exception("Заказ не в статусе \"Готов\""); - } + if (order.Status.ToString() != "Готов") + { + throw new Exception("Заказ не в статусе \"Готов\""); + } - _orderStorage.Update(new OrderBindingModel - { - Id = order.Id, - WoodId = order.WoodId, - WoodName = order.WoodName, - Count = order.Count, - Sum = order.Sum, - DateCreate = order.DateCreate, - DateImplement = order.DateImplement, - Status = OrderStatus.Выдан - }); - return true; + _orderStorage.Update(new OrderBindingModel + { + Id = order.Id, + WoodId = order.WoodId, + WoodName = order.WoodName, + Count = order.Count, + Sum = order.Sum, + DateCreate = order.DateCreate, + DateImplement = order.DateImplement, + Status = OrderStatus.Выдан + }); + return true; - } - } + } + + + + + + + } } - diff --git a/CarpentryWorkshopBusinessLogic/BusinessLogics/WoodLogic.cs b/CarpentryWorkshopBusinessLogic/BusinessLogics/WoodLogic.cs index e78c8ea..dc5b8bd 100644 --- a/CarpentryWorkshopBusinessLogic/BusinessLogics/WoodLogic.cs +++ b/CarpentryWorkshopBusinessLogic/BusinessLogics/WoodLogic.cs @@ -88,11 +88,11 @@ namespace CarpentryWorkshopBusinessLogic.BusinessLogics } if (string.IsNullOrEmpty(model.WoodName)) { - throw new ArgumentNullException("Нет названия изделия", nameof(model.WoodName)); + throw new ArgumentNullException("Нет названия компонента", nameof(model.WoodName)); } if (model.Price <= 0) { - throw new ArgumentNullException("Цена изделия должна быть больше 0", nameof(model.Price)); + throw new ArgumentNullException("Цена компонента должна быть больше 0", nameof(model.Price)); } _logger.LogInformation("Wood. WoodName:{WoodName}. Cost:{ Cost}. Id: { Id}", model.WoodName, model.Price, model.Id); var element = _woodStorage.GetElement(new WoodSearchModel @@ -101,7 +101,7 @@ namespace CarpentryWorkshopBusinessLogic.BusinessLogics }); if (element != null && element.Id != model.Id) { - throw new InvalidOperationException("Изделие с таким названием уже есть"); + throw new InvalidOperationException("Компонент с таким названием уже есть"); } } } diff --git a/CarpentryWorkshopBusinessLogic/Class1.cs b/CarpentryWorkshopBusinessLogic/Class1.cs new file mode 100644 index 0000000..41846ac --- /dev/null +++ b/CarpentryWorkshopBusinessLogic/Class1.cs @@ -0,0 +1,7 @@ +namespace CarpentryWorkshopBusinessLogic +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/CarpentryWorkshopContracts/BusinessLogicsContracts/IOrderLogic.cs b/CarpentryWorkshopContracts/BusinessLogicsContracts/IOrderLogic.cs index 8ce823b..99635fc 100644 --- a/CarpentryWorkshopContracts/BusinessLogicsContracts/IOrderLogic.cs +++ b/CarpentryWorkshopContracts/BusinessLogicsContracts/IOrderLogic.cs @@ -16,5 +16,6 @@ namespace CarpentryWorkshopContracts.BusinessLogicsContracts bool TakeOrderInWork(OrderBindingModel model); bool FinishOrder(OrderBindingModel model); bool DeliveryOrder(OrderBindingModel model); + } } diff --git a/CarpentryWorkshopContracts/Class1.cs b/CarpentryWorkshopContracts/Class1.cs new file mode 100644 index 0000000..26e1951 --- /dev/null +++ b/CarpentryWorkshopContracts/Class1.cs @@ -0,0 +1,7 @@ +namespace CarpentryWorkshopContracts +{ + public class Class1 + { + + } +} \ No newline at end of file diff --git a/CarpentryWorkshopContracts/SearchModels/ComponentSearchModel.cs b/CarpentryWorkshopContracts/SearchModels/ComponentSearchModel.cs index d9e1fe0..d584872 100644 --- a/CarpentryWorkshopContracts/SearchModels/ComponentSearchModel.cs +++ b/CarpentryWorkshopContracts/SearchModels/ComponentSearchModel.cs @@ -11,4 +11,5 @@ namespace CarpentryWorkshopContracts.SearchModels public int? Id { get; set; } public string? ComponentName { get; set; } } + } diff --git a/CarpentryWorkshopContracts/SearchModels/WoodSearchModel.cs b/CarpentryWorkshopContracts/SearchModels/WoodSearchModel.cs index e1a1a65..b5ac7bd 100644 --- a/CarpentryWorkshopContracts/SearchModels/WoodSearchModel.cs +++ b/CarpentryWorkshopContracts/SearchModels/WoodSearchModel.cs @@ -11,4 +11,5 @@ namespace CarpentryWorkshopContracts.SearchModels public int? Id { get; set; } public string? WoodName { get; set; } } + } diff --git a/CarpentryWorkshopContracts/ViewModels/ComponentViewModel.cs b/CarpentryWorkshopContracts/ViewModels/ComponentViewModel.cs index 31f15c0..0c17489 100644 --- a/CarpentryWorkshopContracts/ViewModels/ComponentViewModel.cs +++ b/CarpentryWorkshopContracts/ViewModels/ComponentViewModel.cs @@ -16,4 +16,5 @@ namespace CarpentryWorkshopContracts.ViewModels [DisplayName("Цена")] public double Cost { get; set; } } + } diff --git a/CarpentryWorkshopDataModels/CarpentryWorkshopDataModels.csproj b/CarpentryWorkshopDataModels/CarpentryWorkshopDataModels.csproj index 7fa6a8d..132c02c 100644 --- a/CarpentryWorkshopDataModels/CarpentryWorkshopDataModels.csproj +++ b/CarpentryWorkshopDataModels/CarpentryWorkshopDataModels.csproj @@ -6,7 +6,4 @@ enable - - - diff --git a/CarpentryWorkshopDataModels/Models/IOrderModel.cs b/CarpentryWorkshopDataModels/Models/IOrderModel.cs index 3b691f6..7276b02 100644 --- a/CarpentryWorkshopDataModels/Models/IOrderModel.cs +++ b/CarpentryWorkshopDataModels/Models/IOrderModel.cs @@ -10,7 +10,11 @@ namespace CarpentryWorkshopDataModels.Models public interface IOrderModel : IId { int WoodId { get; } - string WoodName { get; } + string WoodName + { + get; + } + int Count { get; } double Sum { get; } OrderStatus Status { get; } diff --git a/CarpentryWorkshopFileImplement/CarpentryWorkshopFileImplement.csproj b/CarpentryWorkshopFileImplement/CarpentryWorkshopFileImplement.csproj deleted file mode 100644 index f7e2631..0000000 --- a/CarpentryWorkshopFileImplement/CarpentryWorkshopFileImplement.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - net6.0 - enable - enable - - - - - - - - diff --git a/CarpentryWorkshopFileImplement/DataFileSingleton.cs b/CarpentryWorkshopFileImplement/DataFileSingleton.cs deleted file mode 100644 index 7b190ee..0000000 --- a/CarpentryWorkshopFileImplement/DataFileSingleton.cs +++ /dev/null @@ -1,49 +0,0 @@ -using CarpentryWorkshopFileImplement.Models; -using System.Xml.Linq; - -namespace CarpentryWorkshopFileImplement -{ - public class DataFileSingleton - { - private static DataFileSingleton? instance; - private readonly string ComponentFileName = "Component.xml"; - private readonly string OrderFileName = "Order.xml"; - private readonly string WoodFileName = "Wood.xml"; - public List Components { get; private set; } - public List Orders { get; private set; } - public List Woods { get; private set; } - public static DataFileSingleton GetInstance() - { - if (instance == null) - { - instance = new DataFileSingleton(); - } - return instance; - } - public void SaveComponents() => SaveData(Components, ComponentFileName, "Components", x => x.GetXElement); - public void SaveWoods() => SaveData(Woods, WoodFileName, "Woods", x => x.GetXElement); - public void SaveOrders() => SaveData(Orders, OrderFileName, "Orders", x => x.GetXElement); - private DataFileSingleton() - { - Components = LoadData(ComponentFileName, "Component", x => Component.Create(x)!)!; - Woods = LoadData(WoodFileName, "Wood", x => Wood.Create(x)!)!; - Orders = LoadData(OrderFileName, "Order", x => Order.Create(x)!)!; - } - private static List? LoadData(string filename, string xmlNodeName, Func selectFunction) - { - if (File.Exists(filename)) - { - return XDocument.Load(filename)?.Root?.Elements(xmlNodeName)?.Select(selectFunction)?.ToList(); - } - return new List(); - } - private static void SaveData(List data, string filename, string xmlNodeName, Func selectFunction) - { - if (data != null) - { - new XDocument(new XElement(xmlNodeName, data.Select(selectFunction).ToArray())).Save(filename); - } - } - - } -} \ No newline at end of file diff --git a/CarpentryWorkshopFileImplement/Implements/ComponentStorage.cs b/CarpentryWorkshopFileImplement/Implements/ComponentStorage.cs deleted file mode 100644 index 4324c6b..0000000 --- a/CarpentryWorkshopFileImplement/Implements/ComponentStorage.cs +++ /dev/null @@ -1,83 +0,0 @@ -using CarpentryWorkshopContracts.BindingModels; -using CarpentryWorkshopContracts.SearchModels; -using CarpentryWorkshopContracts.StoragesContracts; -using CarpentryWorkshopContracts.ViewModels; -using CarpentryWorkshopFileImplement.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CarpentryWorkshopFileImplement.Implements -{ - public class ComponentStorage : IComponentStorage - { - private readonly DataFileSingleton source; - public ComponentStorage() - { - source = DataFileSingleton.GetInstance(); - } - public List GetFullList() - { - return source.Components - .Select(x => x.GetViewModel) - .ToList(); - } - public List GetFilteredList(ComponentSearchModel model) - { - if (string.IsNullOrEmpty(model.ComponentName)) - { - return new(); - } - return source.Components - .Where(x => x.ComponentName.Contains(model.ComponentName)) - .Select(x => x.GetViewModel) - .ToList(); - } - public ComponentViewModel? GetElement(ComponentSearchModel model) - { - if (string.IsNullOrEmpty(model.ComponentName) && !model.Id.HasValue) - { - return null; - } - return source.Components - .FirstOrDefault(x => (!string.IsNullOrEmpty(model.ComponentName) && x.ComponentName == model.ComponentName) || - (model.Id.HasValue && x.Id == model.Id)) - ?.GetViewModel; - } - public ComponentViewModel? Insert(ComponentBindingModel model) - { - model.Id = source.Components.Count > 0 ? source.Components.Max(x => x.Id) + 1 : 1; - var newComponent = Component.Create(model); if (newComponent == null) - { - return null; - } - source.Components.Add(newComponent); - source.SaveComponents(); - return newComponent.GetViewModel; - } - public ComponentViewModel? Update(ComponentBindingModel model) - { - var component = source.Components.FirstOrDefault(x => x.Id == model.Id); - if (component == null) - { - return null; - } - component.Update(model); - source.SaveComponents(); - return component.GetViewModel; - } - public ComponentViewModel? Delete(ComponentBindingModel model) - { - var element = source.Components.FirstOrDefault(x => x.Id == model.Id); - if (element != null) - { - source.Components.Remove(element); - source.SaveComponents(); - return element.GetViewModel; - } - return null; - } - } -} diff --git a/CarpentryWorkshopFileImplement/Implements/OrderStorage.cs b/CarpentryWorkshopFileImplement/Implements/OrderStorage.cs deleted file mode 100644 index 39f7ba2..0000000 --- a/CarpentryWorkshopFileImplement/Implements/OrderStorage.cs +++ /dev/null @@ -1,83 +0,0 @@ -using CarpentryWorkshopContracts.BindingModels; -using CarpentryWorkshopContracts.SearchModels; -using CarpentryWorkshopContracts.StoragesContracts; -using CarpentryWorkshopContracts.ViewModels; -using CarpentryWorkshopFileImplement.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CarpentryWorkshopFileImplement.Implements -{ - public class OrderStorage : IOrderStorage - { - private readonly DataFileSingleton source; - public OrderStorage() - { - source = DataFileSingleton.GetInstance(); - } - public List GetFullList() - { - return source.Orders - .Select(x => x.GetViewModel) - .ToList(); - } - public List GetFilteredList(OrderSearchModel model) - { - if (model.Id == null) - { - return new(); - } - return source.Orders - .Where(x => x.Id == model.Id) - .Select(x => x.GetViewModel) - .ToList(); - } - public OrderViewModel? GetElement(OrderSearchModel model) - { - if (model.Id == null && !model.Id.HasValue) - { - return null; - } - return source.Orders - .FirstOrDefault(x => (model.Id != null && x.Id == model.Id) || - (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 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 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 element.GetViewModel; - } - return null; - } - } -} diff --git a/CarpentryWorkshopFileImplement/Implements/WoodStorage.cs b/CarpentryWorkshopFileImplement/Implements/WoodStorage.cs deleted file mode 100644 index 6964861..0000000 --- a/CarpentryWorkshopFileImplement/Implements/WoodStorage.cs +++ /dev/null @@ -1,83 +0,0 @@ -using CarpentryWorkshopContracts.BindingModels; -using CarpentryWorkshopContracts.SearchModels; -using CarpentryWorkshopContracts.StoragesContracts; -using CarpentryWorkshopContracts.ViewModels; -using CarpentryWorkshopFileImplement.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace CarpentryWorkshopFileImplement.Implements -{ - public class WoodStorage : IWoodStorage - { - private readonly DataFileSingleton source; - public WoodStorage() - { - source = DataFileSingleton.GetInstance(); - } - public List GetFullList() - { - return source.Woods - .Select(x => x.GetViewModel) - .ToList(); - } - public List GetFilteredList(WoodSearchModel model) - { - if (string.IsNullOrEmpty(model.WoodName)) - { - return new(); - } - return source.Woods - .Where(x => x.WoodName.Contains(model.WoodName)) - .Select(x => x.GetViewModel) - .ToList(); - } - public WoodViewModel? GetElement(WoodSearchModel model) - { - if (string.IsNullOrEmpty(model.WoodName) && !model.Id.HasValue) - { - return null; - } - return source.Woods - .FirstOrDefault(x => (!string.IsNullOrEmpty(model.WoodName) && x.WoodName == model.WoodName) || - (model.Id.HasValue && x.Id == model.Id)) - ?.GetViewModel; - } - public WoodViewModel? Insert(WoodBindingModel model) - { - model.Id = source.Woods.Count > 0 ? source.Components.Max(x => x.Id) + 1 : 1; - var newWood = Wood.Create(model); if (newWood == null) - { - return null; - } - source.Woods.Add(newWood); - source.SaveWoods(); - return newWood.GetViewModel; - } - public WoodViewModel? Update(WoodBindingModel model) - { - var wood = source.Woods.FirstOrDefault(x => x.Id == model.Id); - if (wood == null) - { - return null; - } - wood.Update(model); - source.SaveWoods(); - return wood.GetViewModel; - } - public WoodViewModel? Delete(WoodBindingModel model) - { - var element = source.Woods.FirstOrDefault(x => x.Id == model.Id); - if (element != null) - { - source.Woods.Remove(element); - source.SaveWoods(); - return element.GetViewModel; - } - return null; - } - } -} diff --git a/CarpentryWorkshopFileImplement/Models/Component.cs b/CarpentryWorkshopFileImplement/Models/Component.cs deleted file mode 100644 index 5fa39c1..0000000 --- a/CarpentryWorkshopFileImplement/Models/Component.cs +++ /dev/null @@ -1,66 +0,0 @@ - -using CarpentryWorkshopContracts.BindingModels; -using CarpentryWorkshopContracts.ViewModels; -using CarpentryWorkshopDataModels.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Xml.Linq; - -namespace CarpentryWorkshopFileImplement.Models -{ - public class Component : IComponentModel - { - public int Id { get; private set; } - public string ComponentName { get; private set; } = string.Empty; - public double Cost { get; set; } - public static Component? Create(ComponentBindingModel model) - { - if (model == null) - { - return null; - } - return new Component() - { - Id = model.Id, - ComponentName = model.ComponentName, - Cost = model.Cost - }; - } - public static Component? Create(XElement element) - { - if (element == null) - { - return null; - } - return new Component() - { - Id = Convert.ToInt32(element.Attribute("Id")!.Value), - ComponentName = element.Element("ComponentName")!.Value, - Cost = Convert.ToDouble(element.Element("Cost")!.Value) - }; - } - public void Update(ComponentBindingModel model) - { - if (model == null) - { - return; - } - ComponentName = model.ComponentName; - Cost = model.Cost; - } - public ComponentViewModel GetViewModel => new() - { - Id = Id, - ComponentName = ComponentName, - Cost = Cost - }; - public XElement GetXElement => new("Component", - new XAttribute("Id", Id), - new XElement("ComponentName", ComponentName), - new XElement("Cost", Cost.ToString())); - } -} - diff --git a/CarpentryWorkshopFileImplement/Models/Order.cs b/CarpentryWorkshopFileImplement/Models/Order.cs deleted file mode 100644 index a3625ba..0000000 --- a/CarpentryWorkshopFileImplement/Models/Order.cs +++ /dev/null @@ -1,91 +0,0 @@ -using CarpentryWorkshopContracts.BindingModels; -using CarpentryWorkshopContracts.ViewModels; -using CarpentryWorkshopDataModels.Enums; -using CarpentryWorkshopDataModels.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using System.Xml.Linq; - -namespace CarpentryWorkshopFileImplement.Models -{ - public class Order : IOrderModel - { - public int Id { get; private set; } - public int WoodId { get; private set; } - public string WoodName { get; private set; } - public int Count { get; private set; } - public double Sum { get; private set; } - public OrderStatus Status { get; private set; } = OrderStatus.Неизвестен; - public DateTime DateCreate { get; private set; } = DateTime.Now; - public DateTime? DateImplement { get; private set; } - public static Order? Create(OrderBindingModel model) - { - if (model == null) - { - return null; - } - return new Order() - { - Id = model.Id, - WoodId = model.WoodId, - WoodName = model.WoodName, - Count = model.Count, - Sum = model.Sum, - Status = model.Status, - DateCreate = model.DateCreate, - DateImplement = model.DateImplement - }; - } - public static Order? Create(XElement element) - { - if (element == null) - { - return null; - } - return new Order() - { - Id = Convert.ToInt32(element.Attribute("Id")!.Value), - WoodId = Convert.ToInt32(element.Element("WoodId")!.Value), - WoodName = element.Element("WoodName")!.Value, - Count = Convert.ToInt32(element.Element("Count")!.Value), - Sum = Convert.ToDouble(element.Element("Sum")!.Value), - Status = (OrderStatus)Convert.ToInt32(element.Element("Status").Value), - DateCreate = Convert.ToDateTime(element.Element("DateCreate").Value), - DateImplement = String.IsNullOrEmpty(element.Element("DateImplement").Value) ? DateTime.MinValue : Convert.ToDateTime(element.Element("DateImplement").Value) - - }; - } - public void Update(OrderBindingModel model) - { - if (model == null) - { - return; - } - Status = model.Status; - } - public OrderViewModel GetViewModel => new() - { - Id = Id, - WoodId = WoodId, - WoodName = WoodName, - Count = Count, - Sum = Sum, - Status = Status, - DateCreate = DateCreate, - DateImplement = DateImplement, - }; - public XElement GetXElement => new("Order", - new XAttribute("Id", Id), - new XElement("WoodId", WoodId), - new XElement("WoodName", WoodName), - new XElement("Count", Count), - new XElement("Sum", Sum.ToString()), - new XElement("Status", (int)Status), - new XElement("DateCreate", DateCreate), - new XElement("DateImplement", DateImplement)); - } -} diff --git a/CarpentryWorkshopFileImplement/Models/Wood.cs b/CarpentryWorkshopFileImplement/Models/Wood.cs deleted file mode 100644 index 1fe898c..0000000 --- a/CarpentryWorkshopFileImplement/Models/Wood.cs +++ /dev/null @@ -1,87 +0,0 @@ -using CarpentryWorkshopContracts.BindingModels; -using CarpentryWorkshopContracts.ViewModels; -using CarpentryWorkshopDataModels.Models; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Xml.Linq; - -namespace CarpentryWorkshopFileImplement.Models -{ - public class Wood : IWoodModel - { - public int Id { get; private set; } - public string WoodName { get; private set; } = string.Empty; - public double Price { get; private set; } - public Dictionary Components { get; private set; } = new(); - private Dictionary? _woodComponents = null; - public Dictionary WoodComponents - { - get - { - if (_woodComponents == null) - { - var source = DataFileSingleton.GetInstance(); - _woodComponents = Components.ToDictionary(x => x.Key, y => ((source.Components.FirstOrDefault(z => z.Id == y.Key) as IComponentModel)!, y.Value)); - } - return _woodComponents; - } - } - public static Wood? Create(WoodBindingModel model) - { - if (model == null) - { - return null; - } - return new Wood() - { - Id = model.Id, - WoodName = model.WoodName, - Price = model.Price, - Components = model.WoodComponents.ToDictionary(x => x.Key, x => x.Value.Item2) - }; - } - public static Wood? Create(XElement element) - { - if (element == null) - { - return null; - } - return new Wood() - { - Id = Convert.ToInt32(element.Attribute("Id")!.Value), - WoodName = element.Element("WoodName")!.Value, - Price = Convert.ToDouble(element.Element("Price")!.Value), - Components = element.Element("WoodComponents")!.Elements("WoodComponent").ToDictionary(x => Convert.ToInt32(x.Element("Key")?.Value), x => Convert.ToInt32(x.Element("Value")?.Value)) - }; - } - public void Update(WoodBindingModel model) - { - if (model == null) - { - return; - } - WoodName = model.WoodName; - Price = model.Price; - Components = model.WoodComponents.ToDictionary(x => x.Key, x => x.Value.Item2); - _woodComponents = null; - } - public WoodViewModel GetViewModel => new() - { - Id = Id, - WoodName = WoodName, - Price = Price, - WoodComponents = WoodComponents - }; - public XElement GetXElement => new("Wood", - new XAttribute("Id", Id), - new XElement("WoodName", WoodName), - new XElement("Price", Price.ToString()), - new XElement("WoodComponents", Components.Select(x => new XElement("WoodComponent", - new XElement("Key", x.Key), - new XElement("Value", x.Value))) - .ToArray())); - } -} diff --git a/CarpentryWorkshopListImplement/Models/Order.cs b/CarpentryWorkshopListImplement/Models/Order.cs index df34b1a..f48279e 100644 --- a/CarpentryWorkshopListImplement/Models/Order.cs +++ b/CarpentryWorkshopListImplement/Models/Order.cs @@ -13,14 +13,14 @@ namespace CarpentryWorkshopListImplement.Models { public class Order : IOrderModel { - public int Id { get; private set; } - public int WoodId { get; private set; } - public string WoodName { get; private set; } - public int Count { get; private set; } - public double Sum { get; private set; } - public OrderStatus Status { get; private set; } - public DateTime DateCreate { get; private set; } - public DateTime? DateImplement { get; private set; } + public int Id { get; set; } + public int WoodId { get; set; } + public string WoodName { get; set; } = string.Empty; + public int Count { get; set; } + public double Sum { get; set; } + public OrderStatus Status { get; set; } + public DateTime DateCreate { get; set; } + public DateTime? DateImplement { get; set; } public static Order? Create(OrderBindingModel? model) { if (model == null) diff --git a/CarpentryWorkshopView/CarpentryWorkshopView.csproj b/CarpentryWorkshopView/CarpentryWorkshopView.csproj index 329c97f..7aa773d 100644 --- a/CarpentryWorkshopView/CarpentryWorkshopView.csproj +++ b/CarpentryWorkshopView/CarpentryWorkshopView.csproj @@ -19,7 +19,7 @@ - + \ No newline at end of file diff --git a/CarpentryWorkshopView/FormComponent.Designer.cs b/CarpentryWorkshopView/FormComponent.Designer.cs index d903adb..df40fe6 100644 --- a/CarpentryWorkshopView/FormComponent.Designer.cs +++ b/CarpentryWorkshopView/FormComponent.Designer.cs @@ -100,7 +100,7 @@ this.Controls.Add(this.ButtonCancel); this.Controls.Add(this.ButtonSave); this.Name = "FormComponent"; - this.Text = "Компонент"; + this.Text = "FormComponent"; this.Load += new System.EventHandler(this.FormComponent_Load); this.ResumeLayout(false); this.PerformLayout(); diff --git a/CarpentryWorkshopView/FormComponents.Designer.cs b/CarpentryWorkshopView/FormComponents.Designer.cs index fd8a263..9d08aab 100644 --- a/CarpentryWorkshopView/FormComponents.Designer.cs +++ b/CarpentryWorkshopView/FormComponents.Designer.cs @@ -97,7 +97,7 @@ this.Controls.Add(this.ButtonAdd); this.Controls.Add(this.dataGridView); this.Name = "FormComponents"; - this.Text = "Компоненты"; + this.Text = "Экипировка"; this.Load += new System.EventHandler(this.FormComponents_Load); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); this.ResumeLayout(false); diff --git a/CarpentryWorkshopView/FormMain.Designer.cs b/CarpentryWorkshopView/FormMain.Designer.cs index 90f1fec..efe7222 100644 --- a/CarpentryWorkshopView/FormMain.Designer.cs +++ b/CarpentryWorkshopView/FormMain.Designer.cs @@ -151,7 +151,7 @@ this.Controls.Add(this.menuStrip1); this.MainMenuStrip = this.menuStrip1; this.Name = "FormMain"; - this.Text = "Сборка Изделий"; + this.Text = "Сборка Набора"; this.Load += new System.EventHandler(this.FormMain_Load); this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); diff --git a/CarpentryWorkshopView/FormWood.Designer.cs b/CarpentryWorkshopView/FormWood.Designer.cs index 301a5c6..49db64b 100644 --- a/CarpentryWorkshopView/FormWood.Designer.cs +++ b/CarpentryWorkshopView/FormWood.Designer.cs @@ -198,7 +198,7 @@ this.Controls.Add(this.labelPrice); this.Controls.Add(this.labelName); this.Name = "FormWood"; - this.Text = "Создание изделия"; + this.Text = "Создание набора"; this.Load += new System.EventHandler(this.FormWood_Load); this.groupBox1.ResumeLayout(false); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); diff --git a/CarpentryWorkshopView/FormWoodComponent.Designer.cs b/CarpentryWorkshopView/FormWoodComponent.Designer.cs index 153c21c..ed2d6dd 100644 --- a/CarpentryWorkshopView/FormWoodComponent.Designer.cs +++ b/CarpentryWorkshopView/FormWoodComponent.Designer.cs @@ -43,7 +43,7 @@ this.labelComponent.Name = "labelComponent"; this.labelComponent.Size = new System.Drawing.Size(76, 15); this.labelComponent.TabIndex = 0; - this.labelComponent.Text = "Изделие:"; + this.labelComponent.Text = "Экипировка:"; // // labelCount // @@ -102,7 +102,7 @@ this.Controls.Add(this.labelCount); this.Controls.Add(this.labelComponent); this.Name = "FormWoodComponent"; - this.Text = "компонент изделия"; + this.Text = "экипировка набора"; this.ResumeLayout(false); this.PerformLayout(); diff --git a/CarpentryWorkshopView/FormWoods.Designer.cs b/CarpentryWorkshopView/FormWoods.Designer.cs index a2d2717..06e908f 100644 --- a/CarpentryWorkshopView/FormWoods.Designer.cs +++ b/CarpentryWorkshopView/FormWoods.Designer.cs @@ -97,7 +97,7 @@ this.Controls.Add(this.ButtonAdd); this.Controls.Add(this.dataGridView); this.Name = "FormWoods"; - this.Text = "Изделия"; + this.Text = "Набор"; this.Load += new System.EventHandler(this.FormWoods_Load); ((System.ComponentModel.ISupportInitialize)(this.dataGridView)).EndInit(); this.ResumeLayout(false); diff --git a/CarpentryWorkshopView/Program.cs b/CarpentryWorkshopView/Program.cs index e33e82b..efb4377 100644 --- a/CarpentryWorkshopView/Program.cs +++ b/CarpentryWorkshopView/Program.cs @@ -1,7 +1,7 @@ using CarpentryWorkshopBusinessLogic.BusinessLogics; using CarpentryWorkshopContracts.BusinessLogicsContracts; using CarpentryWorkshopContracts.StoragesContracts; -using CarpentryWorkshopFileImplement.Implements; +using CarpentryWorkshopListImplement.Implements; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using NLog.Extensions.Logging;