From f0d1ca8b085d4ba1e65a4ca8c4d3a364e56b9f54 Mon Sep 17 00:00:00 2001 From: aleksandr chegodaev Date: Tue, 30 Apr 2024 19:20:53 +0400 Subject: [PATCH] =?UTF-8?q?=D0=B3=D0=B0=D0=B4=D0=B6=D0=B8=D1=88=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B4=D0=B5=D0=BB=D0=B0=D0=B5=D1=88=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/ImplementerStorage.cs | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 CarCenterDatabaseImplement/Implements/ImplementerStorage.cs diff --git a/CarCenterDatabaseImplement/Implements/ImplementerStorage.cs b/CarCenterDatabaseImplement/Implements/ImplementerStorage.cs new file mode 100644 index 0000000..78b233c --- /dev/null +++ b/CarCenterDatabaseImplement/Implements/ImplementerStorage.cs @@ -0,0 +1,38 @@ +using CarCenterContracts.BindingModels; +using CarCenterContracts.SearchModels; +using CarCenterContracts.StoragesContracts; +using CarCenterContracts.ViewModels; +using CarCenterDatabaseImplement.Models; + +namespace CarCenterDatabaseImplement.Implements +{ + public class ImplementerStorage : IImplementerStorage + { + private void CheckSearchModel(ImplementerSearchModel model) + { + if (model == null) + throw new ArgumentNullException("Передаваемая модель для поиска равна нулю", nameof(model)); + if (!model.Id.HasValue && string.IsNullOrEmpty(model.Login) && string.IsNullOrEmpty(model.Password)) + throw new ArgumentException("Все передаваемые поля поисковой модели оказались пусты или равны null"); + } + public ImplementerViewModel? GetElement(ImplementerSearchModel model) + { + CheckSearchModel(model); + using var context = new CarCenterDb(); + return context.Implementers + .FirstOrDefault(x => x.Login.Equals(model.Login) && (string.IsNullOrEmpty(model.Password) || x.Password.Equals(model.Password))); + } + public ImplementerViewModel? Insert(ImplementerBindingModel model) + { + if (model == null) + { + return null; + } + var newClient = Implementer.Create(model); + using var context = new CarCenterDb(); + context.Implementers.Add(newClient); + context.SaveChanges(); + return newClient; + } + } +}