From aac6acd899a4221fd53b79ed56af0d706952bd06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=BE=D0=BB=D0=B0=D0=B9?= Date: Sat, 1 Apr 2023 17:04:56 +0400 Subject: [PATCH] =?UTF-8?q?=D1=87=D0=B0=D1=81=D1=82=D0=B8=D1=87=D0=BD?= =?UTF-8?q?=D0=B0=D1=8F=20=D1=80=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20BuildStorage?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BindingModels/BuildBindingModel.cs | 1 - .../BindingModels/CommentBindingModel.cs | 1 - .../BindingModels/PurchaseBindingModel.cs | 1 - .../StoragesContracts/IBuildStorage.cs | 2 +- .../HardwareShopDatabaseImplement.csproj | 2 +- .../Implements/IUserStorage.cs | 21 +++++++ .../Implements/Worker/BuildStorage.cs | 60 +++++++++++++++++++ .../Implements/Worker/CommentStorage.cs | 39 ++++++++++++ .../Implements/Worker/PurchaseStorage.cs | 39 ++++++++++++ .../Models/Storekeeper/Order.cs | 1 - 10 files changed, 161 insertions(+), 6 deletions(-) create mode 100644 HardwareShop/HardwareShopDatabaseImplement/Implements/IUserStorage.cs create mode 100644 HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/BuildStorage.cs create mode 100644 HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/CommentStorage.cs create mode 100644 HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/PurchaseStorage.cs diff --git a/HardwareShop/HardwareShopContracts/BindingModels/BuildBindingModel.cs b/HardwareShop/HardwareShopContracts/BindingModels/BuildBindingModel.cs index 5726e43..9caaf5f 100644 --- a/HardwareShop/HardwareShopContracts/BindingModels/BuildBindingModel.cs +++ b/HardwareShop/HardwareShopContracts/BindingModels/BuildBindingModel.cs @@ -1,5 +1,4 @@ using HardwareShopDataModels.Models; -using HardwareShopDataModels.Models; using System.ComponentModel; namespace HardwareShopContracts.BindingModels { diff --git a/HardwareShop/HardwareShopContracts/BindingModels/CommentBindingModel.cs b/HardwareShop/HardwareShopContracts/BindingModels/CommentBindingModel.cs index 09991f9..ad748e1 100644 --- a/HardwareShop/HardwareShopContracts/BindingModels/CommentBindingModel.cs +++ b/HardwareShop/HardwareShopContracts/BindingModels/CommentBindingModel.cs @@ -1,5 +1,4 @@ using HardwareShopDataModels.Models; -using HardwareShopDataModels.Models; using System.ComponentModel; namespace HardwareShopContracts.BindingModels diff --git a/HardwareShop/HardwareShopContracts/BindingModels/PurchaseBindingModel.cs b/HardwareShop/HardwareShopContracts/BindingModels/PurchaseBindingModel.cs index 378629c..654d33b 100644 --- a/HardwareShop/HardwareShopContracts/BindingModels/PurchaseBindingModel.cs +++ b/HardwareShop/HardwareShopContracts/BindingModels/PurchaseBindingModel.cs @@ -1,6 +1,5 @@ using HardwareShopDataModels.Enums; using HardwareShopDataModels.Models; -using HardwareShopDataModels.Models; using System.ComponentModel; namespace HardwareShopContracts.BindingModels { diff --git a/HardwareShop/HardwareShopContracts/StoragesContracts/IBuildStorage.cs b/HardwareShop/HardwareShopContracts/StoragesContracts/IBuildStorage.cs index 8771e49..bca831f 100644 --- a/HardwareShop/HardwareShopContracts/StoragesContracts/IBuildStorage.cs +++ b/HardwareShop/HardwareShopContracts/StoragesContracts/IBuildStorage.cs @@ -7,7 +7,7 @@ namespace HardwareShopContracts.StoragesContracts public interface IBuildStorage { List GetFullList(); - List GetFilteredList(BuildSearchModel model); + List GetFilteredList(UserSearchModel model); BuildViewModel? GetElement(BuildSearchModel model); BuildViewModel? Insert(BuildBindingModel model); BuildViewModel? Update(BuildBindingModel model); diff --git a/HardwareShop/HardwareShopDatabaseImplement/HardwareShopDatabaseImplement.csproj b/HardwareShop/HardwareShopDatabaseImplement/HardwareShopDatabaseImplement.csproj index 47df5db..352a24a 100644 --- a/HardwareShop/HardwareShopDatabaseImplement/HardwareShopDatabaseImplement.csproj +++ b/HardwareShop/HardwareShopDatabaseImplement/HardwareShopDatabaseImplement.csproj @@ -21,7 +21,7 @@ - + diff --git a/HardwareShop/HardwareShopDatabaseImplement/Implements/IUserStorage.cs b/HardwareShop/HardwareShopDatabaseImplement/Implements/IUserStorage.cs new file mode 100644 index 0000000..70cb874 --- /dev/null +++ b/HardwareShop/HardwareShopDatabaseImplement/Implements/IUserStorage.cs @@ -0,0 +1,21 @@ +using HardwareShopContracts.BindingModels; +using HardwareShopContracts.SearchModels; +using HardwareShopContracts.ViewModels; + +namespace HardwareShopContracts.StoragesContracts +{ + public interface IUsertorage + { + List GetFullList(); + + List GetFilteredList(UserSearchModel model); + + UserViewModel? GetElement(UserSearchModel model); + + UserViewModel? Insert(UserBindingModel model); + + UserViewModel? Update(UserBindingModel model); + + UserViewModel? Delete(UserBindingModel model); + } +} \ No newline at end of file diff --git a/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/BuildStorage.cs b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/BuildStorage.cs new file mode 100644 index 0000000..4c35463 --- /dev/null +++ b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/BuildStorage.cs @@ -0,0 +1,60 @@ +using HardwareShopContracts.BindingModels; +using HardwareShopContracts.SearchModels; +using HardwareShopContracts.ViewModels; +using HardwareShopDatabaseImplement; +using Microsoft.EntityFrameworkCore; + +namespace HardwareShopContracts.StoragesContracts +{ + public class BuildStorage : IBuildStorage + { + public List GetFullList() + { + using var context = new HardwareShopDatabase(); + return context.Builds + .Include(x => x.Components) + .ThenInclude(x => x.Component) + .Include(x => x.Comments) + .ToList() + .Select(x => x.GetViewModel) + .ToList(); + } + + public List GetFilteredList(UserSearchModel model) + { + if (model.Id.HasValue) + { + return new(); + } + using var context = new HardwareShopDatabase(); + return context.Builds + .Include(x => x.Components) + .ThenInclude(x => x.Component) + .Include(x => x.Comments) + .Where(x => x.UserId == model.Id) + .ToList() + .Select(x => x.GetViewModel) + .ToList(); + } + + public BuildViewModel? GetElement(BuildSearchModel model) + { + throw new NotImplementedException(); + } + + public BuildViewModel? Insert(BuildBindingModel model) + { + throw new NotImplementedException(); + } + + public BuildViewModel? Update(BuildBindingModel model) + { + throw new NotImplementedException(); + } + + public BuildViewModel? Delete(BuildBindingModel model) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/CommentStorage.cs b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/CommentStorage.cs new file mode 100644 index 0000000..50b307e --- /dev/null +++ b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/CommentStorage.cs @@ -0,0 +1,39 @@ +using HardwareShopContracts.BindingModels; +using HardwareShopContracts.SearchModels; +using HardwareShopContracts.ViewModels; + +namespace HardwareShopContracts.StoragesContracts +{ + public class CommentStorage : ICommentStorage + { + public List GetFullList() + { + throw new NotImplementedException(); + } + + public List GetFilteredList(CommentSearchModel model) + { + throw new NotImplementedException(); + } + + public CommentViewModel? GetElement(CommentSearchModel model) + { + throw new NotImplementedException(); + } + + public CommentViewModel? Insert(CommentBindingModel model) + { + throw new NotImplementedException(); + } + + public CommentViewModel? Update(CommentBindingModel model) + { + throw new NotImplementedException(); + } + + public CommentViewModel? Delete(CommentBindingModel model) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/PurchaseStorage.cs b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/PurchaseStorage.cs new file mode 100644 index 0000000..bf40285 --- /dev/null +++ b/HardwareShop/HardwareShopDatabaseImplement/Implements/Worker/PurchaseStorage.cs @@ -0,0 +1,39 @@ +using HardwareShopContracts.BindingModels; +using HardwareShopContracts.SearchModels; +using HardwareShopContracts.ViewModels; + +namespace HardwareShopContracts.StoragesContracts +{ + public class PurchaseStorage : IPurchaseStorage + { + public List GetFullList() + { + throw new NotImplementedException(); + } + + public List GetFilteredList(PurchaseSearchModel model) + { + throw new NotImplementedException(); + } + + public PurchaseViewModel? GetElement(PurchaseSearchModel model) + { + throw new NotImplementedException(); + } + + public PurchaseViewModel? Insert(PurchaseBindingModel model) + { + throw new NotImplementedException(); + } + + public PurchaseViewModel? Update(PurchaseBindingModel model) + { + throw new NotImplementedException(); + } + + public PurchaseViewModel? Delete(PurchaseBindingModel model) + { + throw new NotImplementedException(); + } + } +} diff --git a/HardwareShop/HardwareShopDatabaseImplement/Models/Storekeeper/Order.cs b/HardwareShop/HardwareShopDatabaseImplement/Models/Storekeeper/Order.cs index 2d35035..6adf3bb 100644 --- a/HardwareShop/HardwareShopDatabaseImplement/Models/Storekeeper/Order.cs +++ b/HardwareShop/HardwareShopDatabaseImplement/Models/Storekeeper/Order.cs @@ -1,6 +1,5 @@ using HardwareShopDataModels.Enums; using HardwareShopDataModels.Models; -using HardwareShopDataModels.Models; using System.ComponentModel; namespace HardwareShopDatabaseImplement.Models.Storekeeper {