From 87fa928f565791e73aa39d128be88f6253fcd129 Mon Sep 17 00:00:00 2001 From: kaznacheeva Date: Wed, 27 Mar 2024 10:21:01 +0400 Subject: [PATCH] =?UTF-8?q?=D1=80=D0=B0=D0=B1=D0=BE=D1=87=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=BB=D0=B0=D0=B1=D0=B0=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Order.cs | 3 +- .../OrderStorage.cs | 162 ++++++++++++++---- 2 files changed, 127 insertions(+), 38 deletions(-) diff --git a/SoftwareInstallation/SoftwareInstallationDatabaseImplement/Order.cs b/SoftwareInstallation/SoftwareInstallationDatabaseImplement/Order.cs index c1404ba..0d09afb 100644 --- a/SoftwareInstallation/SoftwareInstallationDatabaseImplement/Order.cs +++ b/SoftwareInstallation/SoftwareInstallationDatabaseImplement/Order.cs @@ -70,7 +70,8 @@ namespace SoftwareInstallationDatabaseImplement Sum = Sum, Status = Status, DateCreate = DateCreate, - DateImplement = DateImplement + DateImplement = DateImplement, + PackageName = Package.PackageName }; } } diff --git a/SoftwareInstallation/SoftwareInstallationDatabaseImplement/OrderStorage.cs b/SoftwareInstallation/SoftwareInstallationDatabaseImplement/OrderStorage.cs index 7067c2f..e18eb46 100644 --- a/SoftwareInstallation/SoftwareInstallationDatabaseImplement/OrderStorage.cs +++ b/SoftwareInstallation/SoftwareInstallationDatabaseImplement/OrderStorage.cs @@ -11,46 +11,111 @@ using System.Threading.Tasks; namespace SoftwareInstallationDatabaseImplement { + //public class OrderStorage : IOrderStorage + //{ + // public OrderViewModel? Delete(OrderBindingModel model) + // { + // using var context = new SoftwareInstallationDatabase(); + // var element = context.Orders.FirstOrDefault(x => x.Id == model.Id); + // if (element != null) + // { + // context.Orders.Remove(element); + // context.SaveChanges(); + // return element.GetViewModel; + // } + // return null; + // } + + // public OrderViewModel? GetElement(OrderSearchModel model) + // { + // using var context = new SoftwareInstallationDatabase(); + // if (!model.Id.HasValue) + // { + // return null; + // } + // return context.Orders + // .Include(x => x.Package) + // .FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id)?.GetViewModel; + // } + + // public List GetFilteredList(OrderSearchModel model) + // { + // var result = GetElement(model); + // return result != null ? new() { result } : new(); + // } + + // public List GetFullList() + // { + // using var context = new SoftwareInstallationDatabase(); + // return context.Orders + // .Include(x => x.Package) + // .Select(x => x.GetViewModel) + // .ToList(); + // } + + // public OrderViewModel? Insert(OrderBindingModel model) + // { + // var newOrder = Order.Create(model); + // if (newOrder == null) + // { + // return null; + // } + // using var context = new SoftwareInstallationDatabase(); + // context.Orders.Add(newOrder); + // context.SaveChanges(); + // return newOrder.GetViewModel; + // } + + // public OrderViewModel? Update(OrderBindingModel model) + // { + // using var context = new SoftwareInstallationDatabase(); + // var order = context.Orders.Include(x => x.Package).FirstOrDefault(x => x.Id == model.Id); + // if (order == null) + // { + // return null; + // } + // order.Update(model); + // context.SaveChanges(); + // return order.GetViewModel; + // } + //} + public class OrderStorage : IOrderStorage { - public OrderViewModel? Delete(OrderBindingModel model) - { - using var context = new SoftwareInstallationDatabase(); - var element = context.Orders.FirstOrDefault(x => x.Id == model.Id); - if (element != null) - { - context.Orders.Remove(element); - context.SaveChanges(); - return element.GetViewModel; - } - return null; - } - - public OrderViewModel? GetElement(OrderSearchModel model) - { - using var context = new SoftwareInstallationDatabase(); - if (!model.Id.HasValue) - { - return null; - } - return context.Orders - .Include(x => x.Package) - .FirstOrDefault(x => model.Id.HasValue && x.Id == model.Id)?.GetViewModel; - } - - public List GetFilteredList(OrderSearchModel model) - { - var result = GetElement(model); - return result != null ? new() { result } : new(); - } - public List GetFullList() { using var context = new SoftwareInstallationDatabase(); return context.Orders - .Include(x => x.Package) - .Select(x => x.GetViewModel) - .ToList(); + .Include(x => x.Package) + .Select(x => x.GetViewModel) + .ToList(); + } + + public List GetFilteredList(OrderSearchModel model) + { + if (!model.Id.HasValue) + { + return new(); + } + using var context = new SoftwareInstallationDatabase(); + return context.Orders + .Include(x => x.Package) + .Where(x => x.Id == model.Id) + .Select(x => x.GetViewModel) + .ToList(); + } + + public OrderViewModel? GetElement(OrderSearchModel model) + { + if (!model.Id.HasValue) + { + return null; + } + using var context = new SoftwareInstallationDatabase(); + return context.Orders + .Include(x => x.Package) + .FirstOrDefault(x => x.Id == model.Id) + ?.GetViewModel; } public OrderViewModel? Insert(OrderBindingModel model) @@ -63,20 +128,43 @@ namespace SoftwareInstallationDatabaseImplement using var context = new SoftwareInstallationDatabase(); context.Orders.Add(newOrder); context.SaveChanges(); - return newOrder.GetViewModel; + return context.Orders + .Include(x => x.Package) + .FirstOrDefault(x => x.Id == newOrder.Id) + ?.GetViewModel; } public OrderViewModel? Update(OrderBindingModel model) { using var context = new SoftwareInstallationDatabase(); - var order = context.Orders.Include(x => x.Package).FirstOrDefault(x => x.Id == model.Id); + var order = context.Orders.FirstOrDefault(x => x.Id == model.Id); if (order == null) { return null; } order.Update(model); context.SaveChanges(); - return order.GetViewModel; + return context.Orders + .Include(x => x.Package) + .FirstOrDefault(x => x.Id == model.Id) + ?.GetViewModel; + } + + public OrderViewModel? Delete(OrderBindingModel model) + { + using var context = new SoftwareInstallationDatabase(); + var element = context.Orders.FirstOrDefault(rec => rec.Id == model.Id); + if (element != null) + { + var deletedElement = context.Orders + .Include(x => x.Package) + .FirstOrDefault(x => x.Id == model.Id) + ?.GetViewModel; + context.Orders.Remove(element); + context.SaveChanges(); + return deletedElement; + } + return null; } } }