From f1ef3955cfd4cf96bb5ea4033c58f4bc397a8acd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D0=B3=D0=BE=D1=80=D1=8C=20=D0=93=D0=BE=D1=80=D0=B4?= =?UTF-8?q?=D0=B5=D0=B5=D0=B2?= <89176335310x@gmail.com> Date: Sun, 19 May 2024 16:35:35 +0400 Subject: [PATCH] =?UTF-8?q?=D0=90=20=D0=BC=D1=83=D1=85=D0=B0=20=D1=82?= =?UTF-8?q?=D0=BE=D0=B6=D0=B5=20=D0=B2=D0=B5=D1=80=D1=82=D0=BE=D0=BB=D1=91?= =?UTF-8?q?=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessLogic/UserLogic.cs | 10 ++--- .../Views/Home/Privacy.cshtml | 2 +- .../BusinessLogicContracts/IUserLogic.cs | 4 +- ...serSearchModel.cs => ClientSearchModel.cs} | 2 +- .../SearchModels/ImplementerSearchModel.cs | 15 ++++++++ .../StorageContracts/IClientStorage.cs | 21 ++++++++++ .../StorageContracts/IImplementerStorage.cs | 21 ++++++++++ .../StorageContracts/IUserStorage.cs | 21 ---------- .../ViewModels/ClientViewModel.cs | 20 ++++++++++ .../ViewModels/ImplementerViewModel.cs | 17 +++++++++ .../ViewModels/UserViewModel.cs | 38 ------------------- .../Implements/UserStorage.cs | 14 +++---- .../Models/User.cs | 4 +- .../Views/Home/Privacy.cshtml | 2 +- 14 files changed, 113 insertions(+), 78 deletions(-) rename ElectronicsShop/ElectronicsShopContracts/SearchModels/{UserSearchModel.cs => ClientSearchModel.cs} (88%) create mode 100644 ElectronicsShop/ElectronicsShopContracts/SearchModels/ImplementerSearchModel.cs create mode 100644 ElectronicsShop/ElectronicsShopContracts/StorageContracts/IClientStorage.cs create mode 100644 ElectronicsShop/ElectronicsShopContracts/StorageContracts/IImplementerStorage.cs delete mode 100644 ElectronicsShop/ElectronicsShopContracts/StorageContracts/IUserStorage.cs create mode 100644 ElectronicsShop/ElectronicsShopContracts/ViewModels/ClientViewModel.cs create mode 100644 ElectronicsShop/ElectronicsShopContracts/ViewModels/ImplementerViewModel.cs delete mode 100644 ElectronicsShop/ElectronicsShopContracts/ViewModels/UserViewModel.cs diff --git a/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/UserLogic.cs b/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/UserLogic.cs index f1289fa..1c8de57 100644 --- a/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/UserLogic.cs +++ b/ElectronicsShop/ElectronicsShopBusinessLogic/BusinessLogic/UserLogic.cs @@ -15,9 +15,9 @@ namespace ElectronicsShopBusinessLogic.BusinessLogic internal class UserLogic : IUserLogic { private readonly ILogger _logger; - private readonly IUserStorage _storage; + private readonly IClientStorage _storage; - public UserLogic(ILogger logger, IUserStorage storage) + public UserLogic(ILogger logger, IClientStorage storage) { _logger = logger; _storage = storage; @@ -58,7 +58,7 @@ namespace ElectronicsShopBusinessLogic.BusinessLogic } - public UserViewModel? ReadElemet(UserSearchModel? model) + public ClientViewModel? ReadElemet(ClientSearchModel? model) { if (model == null) { @@ -75,7 +75,7 @@ namespace ElectronicsShopBusinessLogic.BusinessLogic return element; } - public List? ReadList(UserSearchModel? model) + public List? ReadList(ClientSearchModel? model) { _logger.LogInformation($"ReadList. ClientID:{model?.ID}"); @@ -127,7 +127,7 @@ namespace ElectronicsShopBusinessLogic.BusinessLogic $"LastName:{model.LastName}.Password:{model.Password}.PhoneNumber:{model.PhoneNumber}.Login:{model.Login}." + $"Email:{model.Email}"); - var element = _storage.GetElement(new UserSearchModel + var element = _storage.GetElement(new ClientSearchModel { Login = model.Login }); diff --git a/ElectronicsShop/ElectronicsShopClientApp/Views/Home/Privacy.cshtml b/ElectronicsShop/ElectronicsShopClientApp/Views/Home/Privacy.cshtml index bfd0647..4c0db79 100644 --- a/ElectronicsShop/ElectronicsShopClientApp/Views/Home/Privacy.cshtml +++ b/ElectronicsShop/ElectronicsShopClientApp/Views/Home/Privacy.cshtml @@ -1,6 +1,6 @@ @using ElectronicsShopContracts.ViewModels -@model UserViewModel +@model ClientViewModel @{ ViewData["Title"] = "Privacy Policy"; diff --git a/ElectronicsShop/ElectronicsShopContracts/BusinessLogicContracts/IUserLogic.cs b/ElectronicsShop/ElectronicsShopContracts/BusinessLogicContracts/IUserLogic.cs index 599cdcd..f1e4143 100644 --- a/ElectronicsShop/ElectronicsShopContracts/BusinessLogicContracts/IUserLogic.cs +++ b/ElectronicsShop/ElectronicsShopContracts/BusinessLogicContracts/IUserLogic.cs @@ -11,8 +11,8 @@ namespace ElectronicsShopContracts.BusinessLogicContracts { public interface IUserLogic { - List? ReadList(UserSearchModel? model); - UserViewModel? ReadElemet(UserSearchModel model); + List? ReadList(ClientSearchModel? model); + ClientViewModel? ReadElemet(ClientSearchModel model); bool Add(UserBindingModel model); bool Update(UserBindingModel model); diff --git a/ElectronicsShop/ElectronicsShopContracts/SearchModels/UserSearchModel.cs b/ElectronicsShop/ElectronicsShopContracts/SearchModels/ClientSearchModel.cs similarity index 88% rename from ElectronicsShop/ElectronicsShopContracts/SearchModels/UserSearchModel.cs rename to ElectronicsShop/ElectronicsShopContracts/SearchModels/ClientSearchModel.cs index 32708e8..c64d20c 100644 --- a/ElectronicsShop/ElectronicsShopContracts/SearchModels/UserSearchModel.cs +++ b/ElectronicsShop/ElectronicsShopContracts/SearchModels/ClientSearchModel.cs @@ -6,7 +6,7 @@ using System.Threading.Tasks; namespace ElectronicsShopContracts.SearchModels { - public class UserSearchModel + public class ClientSearchModel { public int? ID { get; set; } public string? Login { get; set; } diff --git a/ElectronicsShop/ElectronicsShopContracts/SearchModels/ImplementerSearchModel.cs b/ElectronicsShop/ElectronicsShopContracts/SearchModels/ImplementerSearchModel.cs new file mode 100644 index 0000000..7e15565 --- /dev/null +++ b/ElectronicsShop/ElectronicsShopContracts/SearchModels/ImplementerSearchModel.cs @@ -0,0 +1,15 @@ +using ElectronicsShopDataModels.Enums; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectronicsShopContracts.SearchModels +{ + public class ImplementerSearchModel + { + public int UserID { get; set; } + public Quakifications Quakifications { get; set; } + } +} diff --git a/ElectronicsShop/ElectronicsShopContracts/StorageContracts/IClientStorage.cs b/ElectronicsShop/ElectronicsShopContracts/StorageContracts/IClientStorage.cs new file mode 100644 index 0000000..e890ea4 --- /dev/null +++ b/ElectronicsShop/ElectronicsShopContracts/StorageContracts/IClientStorage.cs @@ -0,0 +1,21 @@ +using ElectronicsShopContracts.BindingModels; +using ElectronicsShopContracts.SearchModels; +using ElectronicsShopContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectronicsShopContracts.StorageContracts +{ + public interface IClientStorage + { + List GetFullList(); + List GetFilteredList(ClientSearchModel model); + ClientViewModel? GetElement(ClientSearchModel model); + ClientViewModel? Insert(ClientBindingModel model); + ClientViewModel? Update(ClientBindingModel model); + ClientViewModel? Delete(ClientBindingModel model); + } +} diff --git a/ElectronicsShop/ElectronicsShopContracts/StorageContracts/IImplementerStorage.cs b/ElectronicsShop/ElectronicsShopContracts/StorageContracts/IImplementerStorage.cs new file mode 100644 index 0000000..a2c40f1 --- /dev/null +++ b/ElectronicsShop/ElectronicsShopContracts/StorageContracts/IImplementerStorage.cs @@ -0,0 +1,21 @@ +using ElectronicsShopContracts.BindingModels; +using ElectronicsShopContracts.SearchModels; +using ElectronicsShopContracts.ViewModels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectronicsShopContracts.StorageContracts +{ + public interface IImplementerStorage + { + List GetFullList(); + List GetFilteredList(ImplementerSearchModel model); + ImplementerViewModel? GetElement(ClientSearchModel model); + ImplementerViewModel? Insert(ImplementerBindingModel model); + ImplementerViewModel? Update(ImplementerBindingModel model); + ImplementerViewModel? Delete(ImplementerBindingModel model); + } +} diff --git a/ElectronicsShop/ElectronicsShopContracts/StorageContracts/IUserStorage.cs b/ElectronicsShop/ElectronicsShopContracts/StorageContracts/IUserStorage.cs deleted file mode 100644 index 4161916..0000000 --- a/ElectronicsShop/ElectronicsShopContracts/StorageContracts/IUserStorage.cs +++ /dev/null @@ -1,21 +0,0 @@ -using ElectronicsShopContracts.BindingModels; -using ElectronicsShopContracts.SearchModels; -using ElectronicsShopContracts.ViewModels; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ElectronicsShopContracts.StorageContracts -{ - public interface IUserStorage - { - List GetFullList(); - List GetFilteredList(UserSearchModel model); - UserViewModel? GetElement(UserSearchModel model); - UserViewModel? Insert(UserBindingModel model); - UserViewModel? Update(UserBindingModel model); - UserViewModel? Delete(UserBindingModel model); - } -} diff --git a/ElectronicsShop/ElectronicsShopContracts/ViewModels/ClientViewModel.cs b/ElectronicsShop/ElectronicsShopContracts/ViewModels/ClientViewModel.cs new file mode 100644 index 0000000..9aae3f4 --- /dev/null +++ b/ElectronicsShop/ElectronicsShopContracts/ViewModels/ClientViewModel.cs @@ -0,0 +1,20 @@ +using ElectronicsShopDataModels; +using ElectronicsShopDataModels.Models; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectronicsShopContracts.ViewModels +{ + public class ClientViewModel : IClientModel + { + //ID пользователя + public int UserID { get; set; } + + [DisplayName("Почта")] + public string Email { get; set; } = string.Empty; + } +} diff --git a/ElectronicsShop/ElectronicsShopContracts/ViewModels/ImplementerViewModel.cs b/ElectronicsShop/ElectronicsShopContracts/ViewModels/ImplementerViewModel.cs new file mode 100644 index 0000000..0e05ef4 --- /dev/null +++ b/ElectronicsShop/ElectronicsShopContracts/ViewModels/ImplementerViewModel.cs @@ -0,0 +1,17 @@ +using ElectronicsShopDataModels.Enums; +using ElectronicsShopDataModels.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace ElectronicsShopContracts.ViewModels +{ + public class ImplementerViewModel : IImplementerModel + { + public int UserID {get; set;} + + public Quakifications Qualification { get; set; } = Quakifications.Отсутствует; + } +} diff --git a/ElectronicsShop/ElectronicsShopContracts/ViewModels/UserViewModel.cs b/ElectronicsShop/ElectronicsShopContracts/ViewModels/UserViewModel.cs deleted file mode 100644 index 366c955..0000000 --- a/ElectronicsShop/ElectronicsShopContracts/ViewModels/UserViewModel.cs +++ /dev/null @@ -1,38 +0,0 @@ -using ElectronicsShopDataModels; -using ElectronicsShopDataModels.Models; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ElectronicsShopContracts.ViewModels -{ - public class UserViewModel : IUserModel - { - - //ID пользователя - public int ID { get; set; } - //ID роли (клиент) - public int RoleID { get; set; } - - [DisplayName("Имя")] - public string FirstName { get; set; } = string.Empty; - - [DisplayName("Фамилия")] - public string LastName { get; set; } = string.Empty; - - [DisplayName("Логин")] - public string Login { get; set; } = string.Empty; - - [DisplayName("Почта")] - public string Email { get; set; } = string.Empty; - - [DisplayName("Пароль")] - public string Password { get; set; } = string.Empty; - - [DisplayName("Номер телефона")] - public string PhoneNumber { get; set; } = string.Empty; - } -} diff --git a/ElectronicsShop/ElectronicsShopDataBaseImplement/Implements/UserStorage.cs b/ElectronicsShop/ElectronicsShopDataBaseImplement/Implements/UserStorage.cs index 3db3c96..6118117 100644 --- a/ElectronicsShop/ElectronicsShopDataBaseImplement/Implements/UserStorage.cs +++ b/ElectronicsShop/ElectronicsShopDataBaseImplement/Implements/UserStorage.cs @@ -11,9 +11,9 @@ using System.Threading.Tasks; namespace ElectronicsShopDataBaseImplement.Implements { - public class UserStorage : IUserStorage + public class UserStorage : IClientStorage { - public UserViewModel? Delete(UserBindingModel model) + public ClientViewModel? Delete(UserBindingModel model) { using var context = new Database(); var element = context.Users.FirstOrDefault(rec => rec.ID == model.ID); @@ -26,7 +26,7 @@ namespace ElectronicsShopDataBaseImplement.Implements return null; } - public UserViewModel? GetElement(UserSearchModel model) + public ClientViewModel? GetElement(ClientSearchModel model) { if (string.IsNullOrEmpty(model.Login) && !model.ID.HasValue) { @@ -38,7 +38,7 @@ namespace ElectronicsShopDataBaseImplement.Implements (model.ID.HasValue && x.ID == model.ID)))?.GetViewModel; } - public List GetFilteredList(UserSearchModel model) + public List GetFilteredList(ClientSearchModel model) { if (string.IsNullOrEmpty(model.Login)) { @@ -48,13 +48,13 @@ namespace ElectronicsShopDataBaseImplement.Implements return context.Users.Where(x => x.Login.Contains(model.Login)).Select(x => x.GetViewModel).ToList(); } - public List GetFullList() + public List GetFullList() { using var context = new Database(); return context.Users.Select(x => x.GetViewModel).ToList(); } - public UserViewModel? Insert(UserBindingModel model) + public ClientViewModel? Insert(UserBindingModel model) { var newComponent = User.Create(model); if (newComponent == null) @@ -67,7 +67,7 @@ namespace ElectronicsShopDataBaseImplement.Implements return newComponent.GetViewModel; } - public UserViewModel? Update(UserBindingModel model) + public ClientViewModel? Update(UserBindingModel model) { using var context = new Database(); var component = context.Users.FirstOrDefault(x => x.ID == model.ID); diff --git a/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/User.cs b/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/User.cs index 12405c9..07ab77b 100644 --- a/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/User.cs +++ b/ElectronicsShop/ElectronicsShopDataBaseImplement/Models/User.cs @@ -47,7 +47,7 @@ namespace ElectronicsShopDataBaseImplement.Models RoleID = model.RoleID }; } - public static User Create(UserViewModel model) + public static User Create(ClientViewModel model) { return new User { @@ -76,7 +76,7 @@ namespace ElectronicsShopDataBaseImplement.Models Email = model.Email; RoleID = model.RoleID; } - public UserViewModel GetViewModel => new() + public ClientViewModel GetViewModel => new() { ID = ID, FirstName = FirstName, diff --git a/ElectronicsShop/ElectronicsShopShopAssistantApp/Views/Home/Privacy.cshtml b/ElectronicsShop/ElectronicsShopShopAssistantApp/Views/Home/Privacy.cshtml index bfd0647..4c0db79 100644 --- a/ElectronicsShop/ElectronicsShopShopAssistantApp/Views/Home/Privacy.cshtml +++ b/ElectronicsShop/ElectronicsShopShopAssistantApp/Views/Home/Privacy.cshtml @@ -1,6 +1,6 @@ @using ElectronicsShopContracts.ViewModels -@model UserViewModel +@model ClientViewModel @{ ViewData["Title"] = "Privacy Policy";