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; + } + } +}