Готовы хранилища для роли Заказчик + добавлен недостающий конструктор в класс Operator

This commit is contained in:
abazov73 2023-04-07 01:20:11 +04:00
parent aed455da3f
commit ccd467ebb2
5 changed files with 342 additions and 4 deletions

View File

@ -1,4 +1,10 @@
using System; 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.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
@ -6,7 +12,73 @@ using System.Threading.Tasks;
namespace BankDatabaseImplement.Implements namespace BankDatabaseImplement.Implements
{ {
internal class DealStorage public class DealStorage : IDealStorage
{ {
public List<DealViewModel> GetFullList()
{
using var context = new BankDatabase();
return context.Deals.Include(x => x.Operator)
.Select(x => x.GetViewModel)
.ToList();
}
public List<DealViewModel> GetFilteredList(DealSearchModel model)
{
if (!model.Id.HasValue)
{
return new();
}
using var context = new BankDatabase();
return context.Deals.Include(x => x.Operator)
.Where(x => x.Id == model.Id)
.Select(x => x.GetViewModel)
.ToList();
}
public DealViewModel? GetElement(DealSearchModel model)
{
if (!model.Id.HasValue)
{
return null;
}
using var context = new BankDatabase();
return context.Deals.Include(x => x.Operator)
.FirstOrDefault(x => x.Id == model.Id)
?.GetViewModel;
}
public DealViewModel? Insert(DealBindingModel model)
{
using var context = new BankDatabase();
var newDeal = Deal.Create(context, model);
if (newDeal == null)
{
return null;
}
context.Deals.Add(newDeal);
context.SaveChanges();
return newDeal.GetViewModel;
}
public DealViewModel? Update(DealBindingModel model)
{
using var context = new BankDatabase();
var deal = context.Deals.FirstOrDefault(x => x.Id == model.Id);
if (deal == null)
{
return null;
}
deal.Update(model);
context.SaveChanges();
return deal.GetViewModel;
}
public DealViewModel? Delete(DealBindingModel model)
{
using var context = new BankDatabase();
var element = context.Deals.FirstOrDefault(rec => rec.Id == model.Id);
if (element != null)
{
context.Deals.Remove(element);
context.SaveChanges();
return element.GetViewModel;
}
return null;
}
} }
} }

View File

@ -0,0 +1,84 @@
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 OperatorStorage : IOperatorStorage
{
public List<OperatorViewModel> GetFullList()
{
using var context = new BankDatabase();
return context.Operators
.Select(x => x.GetViewModel)
.ToList();
}
public List<OperatorViewModel> GetFilteredList(OperatorSearchModel model)
{
if (!model.Id.HasValue)
{
return new();
}
using var context = new BankDatabase();
return context.Operators
.Where(x => x.Id == model.Id)
.Select(x => x.GetViewModel)
.ToList();
}
public OperatorViewModel? GetElement(OperatorSearchModel model)
{
if (!model.Id.HasValue)
{
return null;
}
using var context = new BankDatabase();
return context.Operators
.FirstOrDefault(x => x.Id == model.Id)
?.GetViewModel;
}
public OperatorViewModel? Insert(OperatorBindingModel model)
{
using var context = new BankDatabase();
var newOperator = Operator.Create(model);
if (newOperator == null)
{
return null;
}
context.Operators.Add(newOperator);
context.SaveChanges();
return newOperator.GetViewModel;
}
public OperatorViewModel? Update(OperatorBindingModel model)
{
using var context = new BankDatabase();
var deal = context.Operators.FirstOrDefault(x => x.Id == model.Id);
if (deal == null)
{
return null;
}
deal.Update(model);
context.SaveChanges();
return deal.GetViewModel;
}
public OperatorViewModel? Delete(OperatorBindingModel model)
{
using var context = new BankDatabase();
var element = context.Operators.FirstOrDefault(rec => rec.Id == model.Id);
if (element != null)
{
context.Operators.Remove(element);
context.SaveChanges();
return element.GetViewModel;
}
return null;
}
}
}

View File

@ -0,0 +1,84 @@
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 PaymentStorage : IPaymentStorage
{
public List<PaymentViewModel> GetFullList()
{
using var context = new BankDatabase();
return context.Payments
.Select(x => x.GetViewModel)
.ToList();
}
public List<PaymentViewModel> GetFilteredList(PaymentSearchModel model)
{
if (!model.Id.HasValue)
{
return new();
}
using var context = new BankDatabase();
return context.Payments
.Where(x => x.Id == model.Id)
.Select(x => x.GetViewModel)
.ToList();
}
public PaymentViewModel? GetElement(PaymentSearchModel model)
{
if (!model.Id.HasValue)
{
return null;
}
using var context = new BankDatabase();
return context.Payments
.FirstOrDefault(x => x.Id == model.Id)
?.GetViewModel;
}
public PaymentViewModel? Insert(PaymentBindingModel model)
{
using var context = new BankDatabase();
var newPayment = Payment.Create(context, model);
if (newPayment == null)
{
return null;
}
context.Payments.Add(newPayment);
context.SaveChanges();
return newPayment.GetViewModel;
}
public PaymentViewModel? Update(PaymentBindingModel model)
{
using var context = new BankDatabase();
var deal = context.Payments.FirstOrDefault(x => x.Id == model.Id);
if (deal == null)
{
return null;
}
deal.Update(model);
context.SaveChanges();
return deal.GetViewModel;
}
public PaymentViewModel? Delete(PaymentBindingModel model)
{
using var context = new BankDatabase();
var element = context.Payments.FirstOrDefault(rec => rec.Id == model.Id);
if (element != null)
{
context.Payments.Remove(element);
context.SaveChanges();
return element.GetViewModel;
}
return null;
}
}
}

View File

@ -0,0 +1,83 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
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 TransferStorage
{
public List<TransferViewModel> GetFullList()
{
using var context = new BankDatabase();
return context.Transfers.Include(x => x.Payment)
.Select(x => x.GetViewModel)
.ToList();
}
public List<TransferViewModel> GetFilteredList(TransferSearchModel model)
{
if (!model.Id.HasValue)
{
return new();
}
using var context = new BankDatabase();
return context.Transfers.Include(x => x.Payment)
.Where(x => x.Id == model.Id)
.Select(x => x.GetViewModel)
.ToList();
}
public TransferViewModel? GetElement(TransferSearchModel model)
{
if (!model.Id.HasValue)
{
return null;
}
using var context = new BankDatabase();
return context.Transfers.Include(x => x.Payment)
.FirstOrDefault(x => x.Id == model.Id)
?.GetViewModel;
}
public TransferViewModel? Insert(TransferBindingModel model)
{
using var context = new BankDatabase();
var newTransfer = Transfer.Create(context, model);
if (newTransfer == null)
{
return null;
}
context.Transfers.Add(newTransfer);
context.SaveChanges();
return newTransfer.GetViewModel;
}
public TransferViewModel? Update(TransferBindingModel model)
{
using var context = new BankDatabase();
var deal = context.Transfers.FirstOrDefault(x => x.Id == model.Id);
if (deal == null)
{
return null;
}
deal.Update(model);
context.SaveChanges();
return deal.GetViewModel;
}
public TransferViewModel? Delete(TransferBindingModel model)
{
using var context = new BankDatabase();
var element = context.Transfers.FirstOrDefault(rec => rec.Id == model.Id);
if (element != null)
{
context.Transfers.Remove(element);
context.SaveChanges();
return element.GetViewModel;
}
return null;
}
}
}

View File

@ -21,8 +21,23 @@ namespace BankDatabaseImplement.Models
public string FirstName { get; set; } = string.Empty; public string FirstName { get; set; } = string.Empty;
public string? MiddleName { get; set; } public string? MiddleName { get; set; }
public static Operator? Create(OperatorBindingModel model)
public static Operator? Create(BankDatabase context, OperatorViewModel model) {
if (model == null)
{
return null;
}
return new Operator()
{
Id = model.Id,
Login = model.Login,
Password = model.Password,
LastName = model.LastName,
FirstName = model.FirstName,
MiddleName = model.MiddleName,
};
}
public static Operator? Create(OperatorViewModel model)
{ {
return new Operator() return new Operator()
{ {