From 44af2044b6dc8f6e9c26f05170b670b32f92e44a Mon Sep 17 00:00:00 2001 From: "ns.potapov" Date: Sun, 7 Apr 2024 01:56:01 +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=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=20=D0=BF=D0=BE=20=D0=BF?= =?UTF-8?q?=D0=B0=D1=80=D0=BE=D0=BB=D1=8E=20(=D0=BA=D1=82=D0=BE=20=D1=82?= =?UTF-8?q?=D0=B0=D0=BA=20=D0=B2=D0=BE=D0=BE=D0=B1=D1=89=D0=B5=20=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B0=D0=B5=D1=82)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SearchModels/ClientSearchModel.cs | 1 + .../Implements/ClientStorage.cs | 31 ++++++++++++++----- .../Implements/ClientStorage.cs | 21 +++++++++++-- .../Implements/ClientStorage.cs | 25 +++++++++------ 4 files changed, 58 insertions(+), 20 deletions(-) diff --git a/SecuritySystem/SecuritySystemContracts/SearchModels/ClientSearchModel.cs b/SecuritySystem/SecuritySystemContracts/SearchModels/ClientSearchModel.cs index 98a9996..ccdab04 100644 --- a/SecuritySystem/SecuritySystemContracts/SearchModels/ClientSearchModel.cs +++ b/SecuritySystem/SecuritySystemContracts/SearchModels/ClientSearchModel.cs @@ -5,5 +5,6 @@ public int? Id { get; set; } public string? ClientFIO { get; set; } public string? Email { get; set; } + public string? Password { get; set; } } } diff --git a/SecuritySystem/SecuritySystemDatabaseImplement/Implements/ClientStorage.cs b/SecuritySystem/SecuritySystemDatabaseImplement/Implements/ClientStorage.cs index 2b18b4a..0a898fa 100644 --- a/SecuritySystem/SecuritySystemDatabaseImplement/Implements/ClientStorage.cs +++ b/SecuritySystem/SecuritySystemDatabaseImplement/Implements/ClientStorage.cs @@ -1,4 +1,6 @@ -using SecuritySystemContracts.BindingModels; +using Microsoft.EntityFrameworkCore; +using Microsoft.IdentityModel.Tokens; +using SecuritySystemContracts.BindingModels; using SecuritySystemContracts.SearchModels; using SecuritySystemContracts.StoragesContracts; using SecuritySystemContracts.ViewModels; @@ -15,14 +17,27 @@ namespace SecuritySystemDatabaseImplement.Implements } public List GetFilteredList(ClientSearchModel model) { - if (string.IsNullOrEmpty(model.Email)) - { - return new(); - } using var context = new SecuritySystemDatabase(); - return context.Clients - .Where(x => x.Email.Contains(model.Email)) - .Select(x => x.GetViewModel).ToList(); + var clients = context.Clients + .Select(x => x.GetViewModel) + .ToList(); + if (model.Id.HasValue) + { + clients = clients.Where(x => x.Id == model.Id.Value).ToList(); + } + if (!model.Email.IsNullOrEmpty()) + { + clients = clients.Where(x => x.Email == model.Email).ToList(); + } + if (!model.Password.IsNullOrEmpty()) + { + clients = clients.Where(x => x.Password == model.Password).ToList(); + } + if (!model.ClientFIO.IsNullOrEmpty()) + { + clients = clients.Where(x => x.ClientFIO == model.ClientFIO).ToList(); + } + return clients; } public ClientViewModel? GetElement(ClientSearchModel model) { diff --git a/SecuritySystem/SecuritySystemFileImplement/Implements/ClientStorage.cs b/SecuritySystem/SecuritySystemFileImplement/Implements/ClientStorage.cs index 08e9b87..65a19c8 100644 --- a/SecuritySystem/SecuritySystemFileImplement/Implements/ClientStorage.cs +++ b/SecuritySystem/SecuritySystemFileImplement/Implements/ClientStorage.cs @@ -19,11 +19,26 @@ namespace SecuritySystemFileImplement.Implements } public List GetFilteredList(ClientSearchModel model) { - if (string.IsNullOrEmpty(model.Email)) + var clients = source.Clients + .Select(x => x.GetViewModel) + .ToList(); + if (model.Id.HasValue) { - return new(); + clients = clients.Where(x => x.Id == model.Id.Value).ToList(); } - return source.Clients.Where(x => x.Email.Contains(model.Email)).Select(x => x.GetViewModel).ToList(); + if (model.Email != null) + { + clients = clients.Where(x => x.Email == model.Email).ToList(); + } + if (model.Password != null) + { + clients = clients.Where(x => x.Password == model.Password).ToList(); + } + if (model.ClientFIO != null) + { + clients = clients.Where(x => x.ClientFIO == model.ClientFIO).ToList(); + } + return clients; } public ClientViewModel? GetElement(ClientSearchModel model) { diff --git a/SecuritySystem/SecuritySystemListImplement/Implements/ClientStorage.cs b/SecuritySystem/SecuritySystemListImplement/Implements/ClientStorage.cs index 21def7a..6b11129 100644 --- a/SecuritySystem/SecuritySystemListImplement/Implements/ClientStorage.cs +++ b/SecuritySystem/SecuritySystemListImplement/Implements/ClientStorage.cs @@ -24,19 +24,26 @@ namespace SecuritySystemListImplement.Implements } public List GetFilteredList(ClientSearchModel model) { - var result = new List(); - if (string.IsNullOrEmpty(model.Email)) + var clients = _source.Clients + .Select(x => x.GetViewModel) + .ToList(); + if (model.Id.HasValue) { - return result; + clients = clients.Where(x => x.Id == model.Id.Value).ToList(); } - foreach (var client in _source.Clients) + if (model.Email != null) { - if (client.Email.Contains(model.Email)) - { - result.Add(client.GetViewModel); - } + clients = clients.Where(x => x.Email == model.Email).ToList(); } - return result; + if (model.Password != null) + { + clients = clients.Where(x => x.Password == model.Password).ToList(); + } + if (model.ClientFIO != null) + { + clients = clients.Where(x => x.ClientFIO == model.ClientFIO).ToList(); + } + return clients; } public ClientViewModel? GetElement(ClientSearchModel model) {