From 930f872ab7268baf53b19038dfbd452d94805244 Mon Sep 17 00:00:00 2001 From: ksenianeva <95441235+ksenianeva@users.noreply.github.com> Date: Fri, 7 Apr 2023 15:42:05 +0400 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D0=BD?= =?UTF-8?q?=D1=8B=20=D0=B2=D1=81=D0=B5=20Storages=20=D0=B2=20BankDataBaseI?= =?UTF-8?q?mplement=20=D0=B4=D0=BB=D1=8F=20=D1=80=D0=BE=D0=BB=D0=B8=20?= =?UTF-8?q?=D0=9F=D0=BE=D1=81=D1=82=D0=B0=D0=B2=D1=89=D0=B8=D0=BA.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Implements/BankOperatorStorage.cs | 88 ++++++++++++++++++ .../Implements/CreditProgramStorage.cs | 89 +++++++++++++++++++ .../Implements/CurrencyPurchaseStorage.cs | 89 +++++++++++++++++++ 3 files changed, 266 insertions(+) create mode 100644 Bank/BankDatabaseImplement/Implements/BankOperatorStorage.cs create mode 100644 Bank/BankDatabaseImplement/Implements/CreditProgramStorage.cs create mode 100644 Bank/BankDatabaseImplement/Implements/CurrencyPurchaseStorage.cs diff --git a/Bank/BankDatabaseImplement/Implements/BankOperatorStorage.cs b/Bank/BankDatabaseImplement/Implements/BankOperatorStorage.cs new file mode 100644 index 0000000..f890965 --- /dev/null +++ b/Bank/BankDatabaseImplement/Implements/BankOperatorStorage.cs @@ -0,0 +1,88 @@ +using BankContracts.BindingModels; +using BankContracts.SearchModels; +using BankContracts.StoragesContracts; +using BankContracts.ViewModels; +using BankDatabaseImplement.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BankDatabaseImplement.Implements +{ + public class BankOperatorStorage : IBankOperatorStorage + { + public BankOperatorViewModel? Delete(BankOperatorBindingModel model) + { + using var context = new BankDatabase(); + var element = context.BankOperators.FirstOrDefault(rec => rec.Id == model.Id); + if (element != null) + { + context.BankOperators.Remove(element); + context.SaveChanges(); + return element.GetViewModel; + } + return null; + } + + public BankOperatorViewModel? GetElement(BankOperatorSearchModel model) + { + if (!model.Id.HasValue) + { + return null; + } + using var context = new BankDatabase(); + return context.BankOperators + .FirstOrDefault(x => x.Id == model.Id) + ?.GetViewModel; + } + + public List GetFilteredList(BankOperatorSearchModel model) + { + if (!model.Id.HasValue) + { + return new(); + } + using var context = new BankDatabase(); + return context.BankOperators + .Where(x => x.Id == model.Id) + .Select(x => x.GetViewModel) + .ToList(); + } + + public List GetFullList() + { + using var context = new BankDatabase(); + return context.BankOperators + .Select(x => x.GetViewModel) + .ToList(); + } + + public BankOperatorViewModel? Insert(BankOperatorBindingModel model) + { + using var context = new BankDatabase(); + var newBankOperator = BankOperator.Create(model); + if (newBankOperator == null) + { + return null; + } + context.BankOperators.Add(newBankOperator); + context.SaveChanges(); + return newBankOperator.GetViewModel; + } + + public BankOperatorViewModel? Update(BankOperatorBindingModel model) + { + using var context = new BankDatabase(); + var bankOperator = context.BankOperators.FirstOrDefault(x => x.Id == model.Id); + if (bankOperator == null) + { + return null; + } + bankOperator.Update(model); + context.SaveChanges(); + return bankOperator.GetViewModel; + } + } +} diff --git a/Bank/BankDatabaseImplement/Implements/CreditProgramStorage.cs b/Bank/BankDatabaseImplement/Implements/CreditProgramStorage.cs new file mode 100644 index 0000000..16d2f6b --- /dev/null +++ b/Bank/BankDatabaseImplement/Implements/CreditProgramStorage.cs @@ -0,0 +1,89 @@ +using BankContracts.BindingModels; +using BankContracts.SearchModels; +using BankContracts.StoragesContracts; +using BankContracts.ViewModels; +using BankDatabaseImplement.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BankDatabaseImplement.Implements +{ + public class CreditProgramStorage : ICreditProgramStorage + { + public CreditProgramViewModel? Delete(CreditProgramBindingModel model) + { + using var context = new BankDatabase(); + var element = context.CreditPrograms.FirstOrDefault(rec => rec.Id == model.Id); + if (element != null) + { + context.CreditPrograms.Remove(element); + context.SaveChanges(); + return element.GetViewModel; + } + return null; + } + + public CreditProgramViewModel? GetElement(CreditProgramSearchModel model) + { + if (!model.Id.HasValue) + { + return null; + } + using var context = new BankDatabase(); + return context.CreditPrograms + .FirstOrDefault(x => x.Id == model.Id) + ?.GetViewModel; + } + + public List GetFilteredList(CreditProgramSearchModel model) + { + if (!model.Id.HasValue) + { + return new(); + } + using var context = new BankDatabase(); + return context.CreditPrograms + .Where(x => x.Id == model.Id) + .Select(x => x.GetViewModel) + .ToList(); + } + + public List GetFullList() + { + using var context = new BankDatabase(); + return context.CreditPrograms + .Select(x => x.GetViewModel) + .ToList(); + } + + public CreditProgramViewModel? Insert(CreditProgramBindingModel model) + { + using var context = new BankDatabase(); + var newCreditProgram = CreditProgram.Create(context, model); + if (newCreditProgram == null) + { + return null; + } + context.CreditPrograms.Add(newCreditProgram); + context.SaveChanges(); + return newCreditProgram.GetViewModel; + } + + public CreditProgramViewModel? Update(CreditProgramBindingModel model) + { + using var context = new BankDatabase(); + var creditProgram = context.CreditPrograms.FirstOrDefault(x => x.Id == model.Id); + if (creditProgram == null) + { + return null; + } + creditProgram.Update(model); + creditProgram.UpdateCurrencies(context, model); + context.SaveChanges(); + return creditProgram.GetViewModel; + } + } +} diff --git a/Bank/BankDatabaseImplement/Implements/CurrencyPurchaseStorage.cs b/Bank/BankDatabaseImplement/Implements/CurrencyPurchaseStorage.cs new file mode 100644 index 0000000..029c5ad --- /dev/null +++ b/Bank/BankDatabaseImplement/Implements/CurrencyPurchaseStorage.cs @@ -0,0 +1,89 @@ +using BankContracts.BindingModels; +using BankContracts.SearchModels; +using BankContracts.StoragesContracts; +using BankContracts.ViewModels; +using BankDatabaseImplement.Models; +using Microsoft.EntityFrameworkCore; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BankDatabaseImplement.Implements +{ + public class CurrencyPurchaseStorage : ICurrencyPurchaseStorage + { + public CurrencyPurchaseViewModel? Delete(CurrencyPurchaseBindingModel model) + { + using var context = new BankDatabase(); + var currencyPurchase = context.CurrencyPurchases.FirstOrDefault(x => x.Id == model.Id); + if (currencyPurchase == null) + { + return null; + } + currencyPurchase.Update(model); + context.SaveChanges(); + return currencyPurchase.GetViewModel; + } + + public CurrencyPurchaseViewModel? GetElement(CurrencyPurchaseSearchModel model) + { + if (!model.Id.HasValue) + { + return null; + } + using var context = new BankDatabase(); + return context.CurrencyPurchases.Include(x => x.BankOperator).Include(x=>x.Currency) + .FirstOrDefault(x => x.Id == model.Id) + ?.GetViewModel; + } + + public List GetFilteredList(CurrencyPurchaseSearchModel model) + { + if (!model.Id.HasValue) + { + return new(); + } + using var context = new BankDatabase(); + return context.CurrencyPurchases.Include(x => x.BankOperator).Include(x=>x.Currency) + .Where(x => x.Id == model.Id) + .Select(x => x.GetViewModel) + .ToList(); + } + + public List GetFullList() + { + using var context = new BankDatabase(); + return context.CurrencyPurchases.Include(x => x.BankOperator).Include(x=> x.Currency) + .Select(x => x.GetViewModel) + .ToList(); + } + + public CurrencyPurchaseViewModel? Insert(CurrencyPurchaseBindingModel model) + { + using var context = new BankDatabase(); + var newCurrencyPurchase = CurrencyPurchase.Create(context, model); + if (newCurrencyPurchase == null) + { + return null; + } + context.CurrencyPurchases.Add(newCurrencyPurchase); + context.SaveChanges(); + return newCurrencyPurchase.GetViewModel; + } + + public CurrencyPurchaseViewModel? Update(CurrencyPurchaseBindingModel model) + { + using var context = new BankDatabase(); + var currencyPurchase = context.CurrencyPurchases.FirstOrDefault(x => x.Id == model.Id); + if (currencyPurchase == null) + { + return null; + } + currencyPurchase.Update(model); + context.SaveChanges(); + return currencyPurchase.GetViewModel; + } + } +}