From fc0d71047950f687e6bb6a526e35bf86a41838dc Mon Sep 17 00:00:00 2001 From: prodigygirl Date: Sat, 25 Mar 2023 11:01:55 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=BE=20=D0=BA?= =?UTF-8?q?=D0=BB=D0=B8=D0=B5=D0=BD=D1=82=D0=B5=20=D0=B2=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BA=D0=B0=D0=B7=20=D0=B2=D0=BE=20=D0=B2=D1=81=D0=B5=D1=85=20?= =?UTF-8?q?=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=D1=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/OrderStorage.cs | 7 +++++++ .../FurnitureAssemFileImplement/Models/Order.cs | 12 +++++++++--- .../BindingModels/OrderBindingModel.cs | 1 + .../ViewModels/OrderViewModel.cs | 5 ++++- .../Models/IOrderModel.cs | 2 ++ .../Implements/OrderStorage.cs | 10 ++++++---- .../Models/Order.cs | 15 ++++++++++++--- .../Implements/OrderStorage.cs | 7 +++++++ .../Models/Order.cs | 10 +++++++--- 9 files changed, 55 insertions(+), 14 deletions(-) diff --git a/FurnitureAssembly/FurnitureAssemFileImplement/Implements/OrderStorage.cs b/FurnitureAssembly/FurnitureAssemFileImplement/Implements/OrderStorage.cs index f7b0e33..5a143bd 100644 --- a/FurnitureAssembly/FurnitureAssemFileImplement/Implements/OrderStorage.cs +++ b/FurnitureAssembly/FurnitureAssemFileImplement/Implements/OrderStorage.cs @@ -97,6 +97,13 @@ namespace FurnitureAssemFileImplement.Implements orderViewModel.FurnitureName = furniture.FurnitureName; } } + foreach (var client in source.Clients) + { + if (client.Id == order.ClientId) + { + orderViewModel.ClientFIO = client.ClientFIO; + } + } return orderViewModel; } } diff --git a/FurnitureAssembly/FurnitureAssemFileImplement/Models/Order.cs b/FurnitureAssembly/FurnitureAssemFileImplement/Models/Order.cs index 184a929..3f55d4a 100644 --- a/FurnitureAssembly/FurnitureAssemFileImplement/Models/Order.cs +++ b/FurnitureAssembly/FurnitureAssemFileImplement/Models/Order.cs @@ -31,6 +31,8 @@ namespace FurnitureAssemFileImplement.Models public int Id { get; private set; } + public int ClientId { get; private set; } + public static Order? Create(OrderBindingModel? model) { if (model == null) @@ -45,7 +47,8 @@ namespace FurnitureAssemFileImplement.Models Sum = model.Sum, Status = model.Status, DateCreate = model.DateCreate, - DateImplement = model.DateImplement + DateImplement = model.DateImplement, + ClientId = model.ClientId }; } @@ -61,7 +64,8 @@ namespace FurnitureAssemFileImplement.Models FurnitureId = Convert.ToInt32(element.Element("FurnitureId")!.Value), Count = Convert.ToInt32(element.Element("Count")!.Value), Sum = Convert.ToDouble(element.Element("Sum")!.Value), - DateCreate = DateTime.ParseExact(element.Element("DateCreate")!.Value, "G", null), + DateCreate = DateTime.ParseExact(element.Element("DateCreate")!.Value, "G", null), + ClientId = Convert.ToInt32(element.Element("ClientId")!.Value) }; DateTime.TryParse(element.Element("DateImplement")!.Value, out DateTime dateImpl); @@ -94,11 +98,13 @@ namespace FurnitureAssemFileImplement.Models Sum = Sum, Status = Status, DateCreate = DateCreate, - DateImplement = DateImplement + DateImplement = DateImplement, + ClientId = ClientId }; public XElement GetXElement => new("Order", new XAttribute("Id", Id), + new XElement("ClientId", ClientId), new XElement("FurnitureId", FurnitureId), new XElement("Count", Count.ToString()), new XElement("Sum", Sum.ToString()), diff --git a/FurnitureAssembly/FurnitureAssemblyContracts/BindingModels/OrderBindingModel.cs b/FurnitureAssembly/FurnitureAssemblyContracts/BindingModels/OrderBindingModel.cs index 280e941..288a1d2 100644 --- a/FurnitureAssembly/FurnitureAssemblyContracts/BindingModels/OrderBindingModel.cs +++ b/FurnitureAssembly/FurnitureAssemblyContracts/BindingModels/OrderBindingModel.cs @@ -17,5 +17,6 @@ namespace FurnitureAssemblyContracts.BindingModels public OrderStatus Status { get; set; } = OrderStatus.Неизвестен; public DateTime DateCreate { get; set; } = DateTime.Now; public DateTime? DateImplement { get; set; } + public int ClientId { get; set; } } } diff --git a/FurnitureAssembly/FurnitureAssemblyContracts/ViewModels/OrderViewModel.cs b/FurnitureAssembly/FurnitureAssemblyContracts/ViewModels/OrderViewModel.cs index da11b84..7044dfa 100644 --- a/FurnitureAssembly/FurnitureAssemblyContracts/ViewModels/OrderViewModel.cs +++ b/FurnitureAssembly/FurnitureAssemblyContracts/ViewModels/OrderViewModel.cs @@ -13,6 +13,9 @@ namespace FurnitureAssemblyContracts.ViewModels { [DisplayName("Номер")] public int Id { get; set; } + public int ClientId { get; set; } + [DisplayName("Клиент")] + public string ClientFIO { get; set; } = string.Empty; public int FurnitureId { get; set; } [DisplayName("Изделие")] public string FurnitureName { get; set; } = string.Empty; @@ -25,6 +28,6 @@ namespace FurnitureAssemblyContracts.ViewModels [DisplayName("Дата создания")] public DateTime DateCreate { get; set; } = DateTime.Now; [DisplayName("Дата выполнения")] - public DateTime? DateImplement { get; set; } + public DateTime? DateImplement { get; set; } } } diff --git a/FurnitureAssembly/FurnitureAssemblyDataModels/Models/IOrderModel.cs b/FurnitureAssembly/FurnitureAssemblyDataModels/Models/IOrderModel.cs index 6334ef8..747b3b7 100644 --- a/FurnitureAssembly/FurnitureAssemblyDataModels/Models/IOrderModel.cs +++ b/FurnitureAssembly/FurnitureAssemblyDataModels/Models/IOrderModel.cs @@ -15,5 +15,7 @@ namespace FurnitureAssemblyDataModels.Models OrderStatus Status { get; } DateTime DateCreate { get; } DateTime? DateImplement { get; } + + int ClientId { get; } } } diff --git a/FurnitureAssembly/FurnitureAssemblyDatabaseImplement/Implements/OrderStorage.cs b/FurnitureAssembly/FurnitureAssemblyDatabaseImplement/Implements/OrderStorage.cs index 71a32e6..61c5fab 100644 --- a/FurnitureAssembly/FurnitureAssemblyDatabaseImplement/Implements/OrderStorage.cs +++ b/FurnitureAssembly/FurnitureAssemblyDatabaseImplement/Implements/OrderStorage.cs @@ -22,7 +22,7 @@ namespace FurnitureAssemblyDatabaseImplement.Implements return new(); } using var context = new FurnitureAssemblyDatabase(); - return context.Orders.Include(x => x.Furniture).FirstOrDefault(x => + return context.Orders.Include(x => x.Furniture).Include(x => x.Client).FirstOrDefault(x => (model.Id.HasValue && x.Id == model.Id)) ?.GetViewModel; } @@ -36,6 +36,7 @@ namespace FurnitureAssemblyDatabaseImplement.Implements using var context = new FurnitureAssemblyDatabase(); return context.Orders .Include(x => x.Furniture) + .Include(x => x.Client) .Where(x => x.Id == model.Id || model.DateFrom <= x.DateCreate && x.DateCreate <= model.DateTo) .Select(x => x.GetViewModel) .ToList(); @@ -46,6 +47,7 @@ namespace FurnitureAssemblyDatabaseImplement.Implements using var context = new FurnitureAssemblyDatabase(); return context.Orders .Include(x => x.Furniture) + .Include(x => x.Client) .Select(x => x.GetViewModel) .ToList(); } @@ -60,7 +62,7 @@ namespace FurnitureAssemblyDatabaseImplement.Implements } context.Orders.Add(newOrder); context.SaveChanges(); - return context.Orders.Include(x => x.Furniture).FirstOrDefault(x => x.Id == newOrder.Id)?.GetViewModel; + return context.Orders.Include(x => x.Furniture).Include(x => x.Client).FirstOrDefault(x => x.Id == newOrder.Id)?.GetViewModel; } public OrderViewModel? Update(OrderBindingModel model) @@ -73,7 +75,7 @@ namespace FurnitureAssemblyDatabaseImplement.Implements } order.Update(model); context.SaveChanges(); - return context.Orders.Include(x => x.Furniture).FirstOrDefault(x => x.Id == order.Id)?.GetViewModel; + return context.Orders.Include(x => x.Furniture).Include(x => x.Client).FirstOrDefault(x => x.Id == order.Id)?.GetViewModel; } public OrderViewModel? Delete(OrderBindingModel model) @@ -84,7 +86,7 @@ namespace FurnitureAssemblyDatabaseImplement.Implements { context.Orders.Remove(order); context.SaveChanges(); - return context.Orders.Include(x => x.Furniture).FirstOrDefault(x => x.Id == order.Id)?.GetViewModel; + return context.Orders.Include(x => x.Furniture).Include(x => x.Client).FirstOrDefault(x => x.Id == order.Id)?.GetViewModel; } return null; } diff --git a/FurnitureAssembly/FurnitureAssemblyDatabaseImplement/Models/Order.cs b/FurnitureAssembly/FurnitureAssemblyDatabaseImplement/Models/Order.cs index d137114..c03873a 100644 --- a/FurnitureAssembly/FurnitureAssemblyDatabaseImplement/Models/Order.cs +++ b/FurnitureAssembly/FurnitureAssemblyDatabaseImplement/Models/Order.cs @@ -29,6 +29,11 @@ namespace FurnitureAssemblyDatabaseImplement.Models public DateTime? DateImplement { get; private set; } + [Required] + public int ClientId { get; private set; } + + public virtual Client Client { get; set; } + public virtual Furniture Furniture { get; set; } public static Order? Create(OrderBindingModel? model) @@ -45,7 +50,8 @@ namespace FurnitureAssemblyDatabaseImplement.Models Sum = model.Sum, Status = model.Status, DateCreate = model.DateCreate, - DateImplement = model.DateImplement + DateImplement = model.DateImplement, + ClientId = model.ClientId }; } @@ -59,7 +65,8 @@ namespace FurnitureAssemblyDatabaseImplement.Models Sum = model.Sum, Status = model.Status, DateCreate = model.DateCreate, - DateImplement = model.DateImplement + DateImplement = model.DateImplement, + ClientId = model.ClientId }; } @@ -82,7 +89,9 @@ namespace FurnitureAssemblyDatabaseImplement.Models Sum = Sum, Status = Status, DateCreate = DateCreate, - DateImplement = DateImplement + DateImplement = DateImplement, + ClientId = ClientId, + ClientFIO = Client.ClientFIO }; } diff --git a/FurnitureAssembly/FurnitureAssemblyListImplement/Implements/OrderStorage.cs b/FurnitureAssembly/FurnitureAssemblyListImplement/Implements/OrderStorage.cs index fa19031..0396870 100644 --- a/FurnitureAssembly/FurnitureAssemblyListImplement/Implements/OrderStorage.cs +++ b/FurnitureAssembly/FurnitureAssemblyListImplement/Implements/OrderStorage.cs @@ -116,6 +116,13 @@ namespace FurnitureAssemblyListImplement.Implements orderViewModel.FurnitureName = furniture.FurnitureName; } } + foreach (var client in _source.Clients) + { + if (client.Id == order.ClientId) + { + orderViewModel.ClientFIO = client.ClientFIO; + } + } return orderViewModel; } } diff --git a/FurnitureAssembly/FurnitureAssemblyListImplement/Models/Order.cs b/FurnitureAssembly/FurnitureAssemblyListImplement/Models/Order.cs index 570d67d..5d4fac6 100644 --- a/FurnitureAssembly/FurnitureAssemblyListImplement/Models/Order.cs +++ b/FurnitureAssembly/FurnitureAssemblyListImplement/Models/Order.cs @@ -24,10 +24,12 @@ namespace FurnitureAssemblyListImplement.Models public DateTime DateCreate { get; private set; } = DateTime.Now; - public DateTime? DateImplement { get; private set; } + public DateTime? DateImplement { get; private set; } public int Id { get; private set; } + public int ClientId { get; private set; } + public static Order? Create(OrderBindingModel? model) { if (model == null) @@ -42,7 +44,8 @@ namespace FurnitureAssemblyListImplement.Models Sum = model.Sum, Status = model.Status, DateCreate = model.DateCreate, - DateImplement = model.DateImplement + DateImplement = model.DateImplement, + ClientId = model.ClientId }; } @@ -65,7 +68,8 @@ namespace FurnitureAssemblyListImplement.Models Sum = Sum, Status = Status, DateCreate = DateCreate, - DateImplement = DateImplement + DateImplement = DateImplement, + ClientId = ClientId }; } }