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) {