структурировал проетк

This commit is contained in:
Алексей Крюков 2024-04-28 12:53:39 +04:00
parent 3c1046e9d0
commit b1bae75641
82 changed files with 820 additions and 817 deletions

View File

@ -1,24 +0,0 @@
using BankDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BindingModels
{
public class CashWithdrawalBindingModel: ICashWithdrawalModel
{
public int Id { get; set; }
public int CashierId { get; set; }
public int DebitingId { get; set; }
public int AccountId { get; set; }
public double Sum { get; set; }
public DateTime DateWithdrawal { get; set; }
}
}

View File

@ -1,12 +1,12 @@
using BankDataModels.Enums; using BankDataModels.Enums;
using BankDataModels.Models; using BankDataModels.Models.Cashier;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankContracts.BindingModels namespace BankContracts.BindingModels.Cashier
{ {
// Реализация сущности "Счёт" // Реализация сущности "Счёт"
public class AccountBindingModel : IAccountModel public class AccountBindingModel : IAccountModel

View File

@ -0,0 +1,24 @@
using BankDataModels.Models.Cashier;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BindingModels.Cashier
{
public class CashWithdrawalBindingModel : ICashWithdrawalModel
{
public int Id { get; set; }
public int CashierId { get; set; }
public int DebitingId { get; set; }
public int AccountId { get; set; }
public double Sum { get; set; }
public DateTime DateWithdrawal { get; set; }
}
}

View File

@ -1,11 +1,11 @@
using BankDataModels.Models; using BankDataModels.Models.Cashier;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankContracts.BindingModels namespace BankContracts.BindingModels.Cashier
{ {
// Реализация сущности "Кассир" // Реализация сущности "Кассир"
public class CashierBindingModel : ICashierModel public class CashierBindingModel : ICashierModel

View File

@ -0,0 +1,28 @@
using BankDataModels.Models.Cashier;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BindingModels.Cashier
{
public class MoneyTransferBindingModel : IMoneyTransferModel
{
public int Id { get; set; }
//сменили int на double
public double Sum { get; set; }
public int CashierId { get; set; }
public DateTime DateTransfer { get; set; } = DateTime.Now;
public int? CreditingId { get; set; }
// для реализации между двумя клиента, аккаунтами
public int? AccountSenderId { get; set; }
public int AccountPayeeId { get; set; }
}
}

View File

@ -1,12 +1,12 @@
using BankDataModels.Enums; using BankDataModels.Enums;
using BankDataModels.Models; using BankDataModels.Models.Client;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankContracts.BindingModels namespace BankContracts.BindingModels.Client
{ {
// Реализация сущности "Карта" // Реализация сущности "Карта"
public class CardBindingModel : ICardModel public class CardBindingModel : ICardModel

View File

@ -1,11 +1,11 @@
using BankDataModels.Models; using BankDataModels.Models.Client;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankContracts.BindingModels namespace BankContracts.BindingModels.Client
{ {
// Реализация сущности "Клиент" // Реализация сущности "Клиент"
public class ClientBindingModel : IClientModel public class ClientBindingModel : IClientModel

View File

@ -0,0 +1,20 @@
using BankDataModels.Models.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BindingModels.Client
{
public class CreditingBindingModel : ICreditingModel
{
public int Id { get; set; }
public double Sum { get; set; }
public DateTime DateCredit { get; set; }
public int ClientId { get; set; }
}
}

View File

@ -1,11 +1,11 @@
using BankDataModels.Models; using BankDataModels.Models.Client;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankContracts.BindingModels namespace BankContracts.BindingModels.Client
{ {
public class DebitingBindingModel : IDebitingModel public class DebitingBindingModel : IDebitingModel
{ {
@ -13,7 +13,7 @@ namespace BankContracts.BindingModels
public int CardId { get; set; } public int CardId { get; set; }
// и тут я понял почему ты задавался вопросом про id, надо подумать // и тут я понял почему ты задавался вопросом про id, надо подумать
public int ClientId { get; set; } public int ClientId { get; set; }
public double Sum { get; set; } public double Sum { get; set; }

View File

@ -1,20 +0,0 @@
using BankDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BindingModels
{
public class CreditingBindingModel : ICreditingModel
{
public int Id { get; set; }
public double Sum { get; set; }
public DateTime DateCredit { get; set; }
public int ClientId { get; set; }
}
}

View File

@ -1,28 +0,0 @@
using BankDataModels.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BindingModels
{
public class MoneyTransferBindingModel : IMoneyTransferModel
{
public int Id { get; set; }
//сменили int на double
public double Sum { get; set; }
public int CashierId { get; set; }
public DateTime DateTransfer { get; set; } = DateTime.Now;
public int? CreditingId { get; set; }
// для реализации между двумя клиента, аккаунтами
public int? AccountSenderId { get; set; }
public int AccountPayeeId { get; set; }
}
}

View File

@ -0,0 +1,26 @@
using BankContracts.BindingModels.Cashier;
using BankContracts.SearchModels.Cashier;
using BankContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts.Cashier
{
public interface IAccountLogic
{
List<AccountViewModel>? ReadList(AccountSearchModel? model);
AccountViewModel? ReadElement(AccountSearchModel model);
bool ChangeBalance(AccountSearchModel? model, int sum);
bool Create(AccountBindingModel model);
bool Update(AccountBindingModel model);
bool Delete(AccountBindingModel model);
}
}

View File

@ -1,5 +1,5 @@
using BankContracts.BindingModels; using BankContracts.BindingModels.Cashier;
using BankContracts.SearchModels; using BankContracts.SearchModels.Cashier;
using BankContracts.ViewModels.Cashier.ViewModels; using BankContracts.ViewModels.Cashier.ViewModels;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -7,7 +7,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts namespace BankContracts.BusinessLogicsContracts.Cashier
{ {
public interface ICashWithdrawalLogic public interface ICashWithdrawalLogic
{ {

View File

@ -0,0 +1,24 @@
using BankContracts.BindingModels.Cashier;
using BankContracts.SearchModels.Cashier;
using BankContracts.ViewModels.Cashier.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts.Cashier
{
public interface ICashierLogic
{
List<CashierViewModel>? ReadList(CashierSearchModel? model);
CashierViewModel? ReadElement(CashierSearchModel model);
bool Create(CashierBindingModel model);
bool Update(CashierBindingModel model);
bool Delete(CashierBindingModel model);
}
}

View File

@ -1,5 +1,5 @@
using BankContracts.BindingModels; using BankContracts.BindingModels.Cashier;
using BankContracts.SearchModels; using BankContracts.SearchModels.Cashier;
using BankContracts.ViewModels.Cashier.ViewModels; using BankContracts.ViewModels.Cashier.ViewModels;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -7,7 +7,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts namespace BankContracts.BusinessLogicsContracts.Cashier
{ {
public interface IMoneyTransferLogic public interface IMoneyTransferLogic
{ {

View File

@ -0,0 +1,24 @@
using BankContracts.BindingModels.Client;
using BankContracts.SearchModels.Client;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts.Client
{
public interface ICardLogic
{
List<CardViewModel>? ReadList(CardSearchModel? model);
CardViewModel? ReadElement(CardSearchModel model);
bool Create(CardBindingModel model);
bool Update(CardBindingModel model);
bool Delete(CardBindingModel model);
}
}

View File

@ -0,0 +1,24 @@
using BankContracts.BindingModels.Client;
using BankContracts.SearchModels.Client;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts.Client
{
public interface IClientLogic
{
List<ClientViewModel>? ReadList(ClientSearchModel? model);
ClientViewModel? ReadElement(ClientSearchModel model);
bool Create(ClientBindingModel model);
bool Update(ClientBindingModel model);
bool Delete(ClientBindingModel model);
}
}

View File

@ -1,5 +1,5 @@
using BankContracts.BindingModels; using BankContracts.BindingModels.Client;
using BankContracts.SearchModels; using BankContracts.SearchModels.Client;
using BankContracts.ViewModels.Client.ViewModels; using BankContracts.ViewModels.Client.ViewModels;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -7,7 +7,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts namespace BankContracts.BusinessLogicsContracts.Client
{ {
public interface ICreditingLogic public interface ICreditingLogic
{ {

View File

@ -1,5 +1,5 @@
using BankContracts.BindingModels; using BankContracts.BindingModels.Client;
using BankContracts.SearchModels; using BankContracts.SearchModels.Client;
using BankContracts.ViewModels.Client.ViewModels; using BankContracts.ViewModels.Client.ViewModels;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -7,7 +7,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts namespace BankContracts.BusinessLogicsContracts.Client
{ {
public interface IDebitingLogic public interface IDebitingLogic
{ {

View File

@ -1,26 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts
{
public interface IAccountLogic
{
List<AccountViewModel>? ReadList(AccountSearchModel? model);
AccountViewModel? ReadElement(AccountSearchModel model);
bool ChangeBalance(AccountSearchModel? model, int sum);
bool Create(AccountBindingModel model);
bool Update(AccountBindingModel model);
bool Delete(AccountBindingModel model);
}
}

View File

@ -1,24 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts
{
public interface ICardLogic
{
List<CardViewModel>? ReadList(CardSearchModel? model);
CardViewModel? ReadElement(CardSearchModel model);
bool Create(CardBindingModel model);
bool Update(CardBindingModel model);
bool Delete(CardBindingModel model);
}
}

View File

@ -1,24 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Cashier.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts
{
public interface ICashierLogic
{
List<CashierViewModel>? ReadList(CashierSearchModel? model);
CashierViewModel? ReadElement(CashierSearchModel model);
bool Create(CashierBindingModel model);
bool Update(CashierBindingModel model);
bool Delete(CashierBindingModel model);
}
}

View File

@ -1,24 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.BusinessLogicsContracts
{
public interface IClientLogic
{
List<ClientViewModel>? ReadList(ClientSearchModel? model);
ClientViewModel? ReadElement(ClientSearchModel model);
bool Create(ClientBindingModel model);
bool Update(ClientBindingModel model);
bool Delete(ClientBindingModel model);
}
}

View File

@ -1,27 +0,0 @@
using BankDataModels.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels
{
// Для поиска сущности "Счёт"
public class AccountSearchModel
{
public int Id { get; set; }
public int CashierId { get; set; }
public int ClientId { get; set; }
public string AccountNumber { get; set; } = string.Empty;
public double Balance { get; set; }
public DateTime DateOpen { get; set; }
public StatusAccount StatusAccount { get; set; }
}
}

View File

@ -1,28 +0,0 @@
using BankDataModels.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels
{
// Для поиска сущности "Банковская карта"
public class CardSearchModel
{
public int? Id { get; set; }
public int? ClientID { get; set; }
public int? AccountId { get; set; }
// Номер банковской карты
public string? Number { get; set; }
public double Balance { get; set; }
public DateTime Period { get; set; }
public StatusCard StatusCard { get; set; }
}
}

View File

@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels
{
// Для поиска сущности "Выдача наличных"
public class CashWithdrawalSearchModel
{
public int? Id { get; set; }
public int? AccountId { get; set; }
public int? CashierId { get; set; }
public int? Sum { get; set; }
public DateTime? DateWithdrawal { get; set; }
public int? DebitingId { get; set; } // выдача ведь связана со снятием???
//выдача связана с заявкой на получение, вроде все верно, если что потом чекем
public int? ClientId { get; set; } // А надо добавлять клиента
}
}

View File

@ -0,0 +1,27 @@
using BankDataModels.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels.Cashier
{
// Для поиска сущности "Счёт"
public class AccountSearchModel
{
public int Id { get; set; }
public int CashierId { get; set; }
public int ClientId { get; set; }
public string AccountNumber { get; set; } = string.Empty;
public double Balance { get; set; }
public DateTime DateOpen { get; set; }
public StatusAccount StatusAccount { get; set; }
}
}

View File

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels.Cashier
{
// Для поиска сущности "Выдача наличных"
public class CashWithdrawalSearchModel
{
public int? Id { get; set; }
public int? AccountId { get; set; }
public int? CashierId { get; set; }
public int? Sum { get; set; }
public DateTime? DateWithdrawal { get; set; }
public int? DebitingId { get; set; } // выдача ведь связана со снятием???
//выдача связана с заявкой на получение, вроде все верно, если что потом чекем
public int? ClientId { get; set; } // А надо добавлять клиента
}
}

View File

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels.Cashier
{
// Для поиска сущности "Кассир"
public class CashierSearchModel
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Surname { get; set; } = string.Empty;
public string Patronymic { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
public string MobilePhone { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels.Cashier
{
// Для поиска сущности "Перевод денег"
public class MoneyTransferSearchModel
{
public int? Id { get; set; }
public int? Sum { get; set; }
public int? CashierId { get; set; }
public int? AccountId { get; set; }
public DateTime? DateTransfer { get; set; }
public int? Crediting { get; set; }
public int? ClientId { get; set; } // ТОТ ЖЕ НАСУЩНЫЙ ВОПРОС, А НАДО? тут у меня тоже вопрос , по идеи надо, потому что, как я понял можно перевод со счета на карту можно
// Навский случай типа два аккаунта, один отправитель, другой получатель
public int? AccountSenderId { get; set; }
public int? AccountPayeeId { get; set; }
}
}

View File

@ -1,26 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels
{
// Для поиска сущности "Кассир"
public class CashierSearchModel
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Surname { get; set; } = string.Empty;
public string Patronymic { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
public string MobilePhone { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,28 @@
using BankDataModels.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels.Client
{
// Для поиска сущности "Банковская карта"
public class CardSearchModel
{
public int? Id { get; set; }
public int? ClientID { get; set; }
public int? AccountId { get; set; }
// Номер банковской карты
public string? Number { get; set; }
public double Balance { get; set; }
public DateTime Period { get; set; }
public StatusCard StatusCard { get; set; }
}
}

View File

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels.Client
{
// Для поиска сущности "Клиент"
public class ClientSearchModel
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Surname { get; set; } = string.Empty;
public string Patronymic { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
public string MobilePhone { get; set; } = string.Empty;
}
}

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels.Client
{
// Для поиска сущности "Пополнение карты"
public class CreditingSearchModel
{
public int? Id { get; set; }
public int? CardId { get; set; }
public int? Sum { get; set; }
public DateTime? DateCrediting { get; set; }
public int? UserId { get; set; } // ИЛИ лучше CLientId, правильнее будет юзер
}
}

View File

@ -0,0 +1,22 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels.Client
{
// Для поиска сущности "Получение наличных"
public class DebitingSearchModel
{
public int? Id { get; set; }
public int? CardId { get; set; }
public int? UserId { get; set; } // Возможно лишнюю фигню делаю и лучше ClientId , по нашей бд именно к пользователю относятся операции по пополнению
public int? Sum { get; set; }
public DateTime? DateDebit { get; set; }
}
}

View File

@ -1,26 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels
{
// Для поиска сущности "Клиент"
public class ClientSearchModel
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
public string Surname { get; set; } = string.Empty;
public string Patronymic { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
public string MobilePhone { get; set; } = string.Empty;
}
}

View File

@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels
{
// Для поиска сущности "Пополнение карты"
public class CreditingSearchModel
{
public int? Id { get; set; }
public int? CardId { get; set; }
public int? Sum { get; set; }
public DateTime? DateCrediting { get; set; }
public int? UserId { get; set; } // ИЛИ лучше CLientId, правильнее будет юзер
}
}

View File

@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels
{
// Для поиска сущности "Получение наличных"
public class DebitingSearchModel
{
public int? Id { get; set; }
public int? CardId { get; set; }
public int? UserId { get; set; } // Возможно лишнюю фигню делаю и лучше ClientId , по нашей бд именно к пользователю относятся операции по пополнению
public int? Sum { get; set; }
public DateTime? DateDebit { get; set; }
}
}

View File

@ -1,31 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.SearchModels
{
// Для поиска сущности "Перевод денег"
public class MoneyTransferSearchModel
{
public int? Id { get; set; }
public int? Sum { get; set; }
public int? CashierId { get; set; }
public int? AccountId { get; set; }
public DateTime? DateTransfer { get; set; }
public int? Crediting { get; set; }
public int? ClientId { get; set; } // ТОТ ЖЕ НАСУЩНЫЙ ВОПРОС, А НАДО? тут у меня тоже вопрос , по идеи надо, потому что, как я понял можно перевод со счета на карту можно
// Навский случай типа два аккаунта, один отправитель, другой получатель
public int? AccountSenderId { get; set; }
public int? AccountPayeeId { get; set; }
}
}

View File

@ -0,0 +1,27 @@
using BankContracts.BindingModels.Cashier;
using BankContracts.SearchModels.Cashier;
using BankContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels.Cashier
{
// Интерфейс для хранилища счетов
public interface IAccountStorage
{
List<AccountViewModel> GetFullList();
List<AccountViewModel> GetFilteredList(AccountSearchModel model);
AccountViewModel? GetElement(AccountSearchModel model);
AccountViewModel? Insert(AccountBindingModel model);
AccountViewModel? Update(AccountBindingModel model);
AccountViewModel? Delete(AccountBindingModel model);
}
}

View File

@ -0,0 +1,27 @@
using BankContracts.BindingModels.Cashier;
using BankContracts.SearchModels.Cashier;
using BankContracts.ViewModels.Cashier.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels.Cashier
{
// Интерфейс для хранилища выдачи наличных
public interface ICashWithdrawalStorage
{
List<CashWithdrawalViewModel> GetFullList();
List<CashWithdrawalViewModel> GetFilteredList(CashWithdrawalSearchModel model);
CashWithdrawalViewModel? GetElement(CashWithdrawalSearchModel model);
CashWithdrawalViewModel? Insert(CashWithdrawalBindingModel model);
CashWithdrawalViewModel? Update(CashWithdrawalBindingModel model);
CashWithdrawalViewModel? Delete(CashWithdrawalBindingModel model);
}
}

View File

@ -0,0 +1,27 @@
using BankContracts.BindingModels.Cashier;
using BankContracts.SearchModels.Cashier;
using BankContracts.ViewModels.Cashier.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels.Cashier
{
// Интерфейс для хранилища кассиров
public interface ICashierStorage
{
List<CashierViewModel> GetFullList();
List<CashierViewModel> GetFilteredList(CashierSearchModel model);
CashierViewModel? GetElement(CashierSearchModel model);
CashierViewModel? Insert(CashierBindingModel model);
CashierViewModel? Update(CashierBindingModel model);
CashierViewModel? Delete(CashierBindingModel model);
}
}

View File

@ -0,0 +1,27 @@
using BankContracts.BindingModels.Cashier;
using BankContracts.SearchModels.Cashier;
using BankContracts.ViewModels.Cashier.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels.Cashier
{
// Интерфейс для хранилища переводов денег
public interface IMoneyTransferStorage
{
List<MoneyTransferViewModel> GetFullList();
List<MoneyTransferViewModel> GetFilteredList(MoneyTransferSearchModel model);
MoneyTransferViewModel? GetElement(MoneyTransferSearchModel model);
MoneyTransferViewModel? Insert(MoneyTransferBindingModel model);
MoneyTransferViewModel? Update(MoneyTransferBindingModel model);
MoneyTransferViewModel? Delete(MoneyTransferBindingModel model);
}
}

View File

@ -0,0 +1,27 @@
using BankContracts.BindingModels.Client;
using BankContracts.SearchModels.Client;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels.Client
{
// Интерфейс для хранилища банковских карт
public interface ICardStorage
{
List<CardViewModel> GetFullList();
List<CardViewModel> GetFilteredList(CardSearchModel model);
CardViewModel? GetElement(CardSearchModel model);
CardViewModel? Insert(CardBindingModel model);
CardViewModel? Update(CardBindingModel model);
CardViewModel? Delete(CardBindingModel model);
}
}

View File

@ -0,0 +1,27 @@
using BankContracts.BindingModels.Client;
using BankContracts.SearchModels.Client;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels.Client
{
// Интерфейс для хранилища клиентов
public interface IClientStorage
{
List<ClientViewModel> GetFullList();
List<ClientViewModel> GetFilteredList(ClientSearchModel model);
ClientViewModel? GetElement(ClientSearchModel model);
ClientViewModel? Insert(ClientBindingModel model);
ClientViewModel? Update(ClientBindingModel model);
ClientViewModel? Delete(ClientBindingModel model);
}
}

View File

@ -0,0 +1,27 @@
using BankContracts.BindingModels.Client;
using BankContracts.SearchModels.Client;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels.Client
{
// Интерфейс для хранилища пополнения карты
public interface ICreditingStorage
{
List<CreditingViewModel> GetFullList();
List<CreditingViewModel> GetFilteredList(CreditingSearchModel model);
CreditingViewModel? GetElement(CreditingSearchModel model);
CreditingViewModel? Insert(CreditingBindingModel model);
CreditingViewModel? Update(CreditingBindingModel model);
CreditingViewModel? Delete(CreditingBindingModel model);
}
}

View File

@ -0,0 +1,27 @@
using BankContracts.BindingModels.Client;
using BankContracts.SearchModels.Client;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels.Client
{
// Интерфейс для хранилища получения наличных
public interface IDebitingStorage
{
List<DebitingViewModel> GetFullList();
List<DebitingViewModel> GetFilteredList(DebitingSearchModel model);
DebitingViewModel? GetElement(DebitingSearchModel model);
DebitingViewModel? Insert(DebitingBindingModel model);
DebitingViewModel? Update(DebitingBindingModel model);
DebitingViewModel? Delete(DebitingBindingModel model);
}
}

View File

@ -1,27 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels
{
// Интерфейс для хранилища счетов
public interface IAccountStorage
{
List<AccountViewModel> GetFullList();
List<AccountViewModel> GetFilteredList(AccountSearchModel model);
AccountViewModel? GetElement(AccountSearchModel model);
AccountViewModel? Insert(AccountBindingModel model);
AccountViewModel? Update(AccountBindingModel model);
AccountViewModel? Delete(AccountBindingModel model);
}
}

View File

@ -1,27 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels
{
// Интерфейс для хранилища банковских карт
public interface ICardStorage
{
List<CardViewModel> GetFullList();
List<CardViewModel> GetFilteredList(CardSearchModel model);
CardViewModel? GetElement(CardSearchModel model);
CardViewModel? Insert(CardBindingModel model);
CardViewModel? Update(CardBindingModel model);
CardViewModel? Delete(CardBindingModel model);
}
}

View File

@ -1,27 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Cashier.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels
{
// Интерфейс для хранилища выдачи наличных
public interface ICashWithdrawalStorage
{
List<CashWithdrawalViewModel> GetFullList();
List<CashWithdrawalViewModel> GetFilteredList(CashWithdrawalSearchModel model);
CashWithdrawalViewModel? GetElement(CashWithdrawalSearchModel model);
CashWithdrawalViewModel? Insert(CashWithdrawalBindingModel model);
CashWithdrawalViewModel? Update(CashWithdrawalBindingModel model);
CashWithdrawalViewModel? Delete(CashWithdrawalBindingModel model);
}
}

View File

@ -1,27 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Cashier.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels
{
// Интерфейс для хранилища кассиров
public interface ICashierStorage
{
List<CashierViewModel> GetFullList();
List<CashierViewModel> GetFilteredList(CashierSearchModel model);
CashierViewModel? GetElement(CashierSearchModel model);
CashierViewModel? Insert(CashierBindingModel model);
CashierViewModel? Update(CashierBindingModel model);
CashierViewModel? Delete(CashierBindingModel model);
}
}

View File

@ -1,27 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels
{
// Интерфейс для хранилища клиентов
public interface IClientStorage
{
List<ClientViewModel> GetFullList();
List<ClientViewModel> GetFilteredList(ClientSearchModel model);
ClientViewModel? GetElement(ClientSearchModel model);
ClientViewModel? Insert(ClientBindingModel model);
ClientViewModel? Update(ClientBindingModel model);
ClientViewModel? Delete(ClientBindingModel model);
}
}

View File

@ -1,27 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels
{
// Интерфейс для хранилища пополнения карты
public interface ICreditingStorage
{
List<CreditingViewModel> GetFullList();
List<CreditingViewModel> GetFilteredList(CreditingSearchModel model);
CreditingViewModel? GetElement(CreditingSearchModel model);
CreditingViewModel? Insert(CreditingBindingModel model);
CreditingViewModel? Update(CreditingBindingModel model);
CreditingViewModel? Delete(CreditingBindingModel model);
}
}

View File

@ -1,27 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Client.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels
{
// Интерфейс для хранилища получения наличных
public interface IDebitingStorage
{
List<DebitingViewModel> GetFullList();
List<DebitingViewModel> GetFilteredList(DebitingSearchModel model);
DebitingViewModel? GetElement(DebitingSearchModel model);
DebitingViewModel? Insert(DebitingBindingModel model);
DebitingViewModel? Update(DebitingBindingModel model);
DebitingViewModel? Delete(DebitingBindingModel model);
}
}

View File

@ -1,27 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.SearchModels;
using BankContracts.ViewModels.Cashier.ViewModels;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankContracts.StoragesModels
{
// Интерфейс для хранилища переводов денег
public interface IMoneyTransferStorage
{
List<MoneyTransferViewModel> GetFullList();
List<MoneyTransferViewModel> GetFilteredList(MoneyTransferSearchModel model);
MoneyTransferViewModel? GetElement(MoneyTransferSearchModel model);
MoneyTransferViewModel? Insert(MoneyTransferBindingModel model);
MoneyTransferViewModel? Update(MoneyTransferBindingModel model);
MoneyTransferViewModel? Delete(MoneyTransferBindingModel model);
}
}

View File

@ -1,5 +1,5 @@
using BankDataModels.Enums; using BankDataModels.Enums;
using BankDataModels.Models; using BankDataModels.Models.Cashier;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
@ -9,7 +9,7 @@ using System.Threading.Tasks;
namespace BankContracts.ViewModels namespace BankContracts.ViewModels
{ {
public class AccountViewModel : IAccountModel public class AccountViewModel : IAccountModel
{ {
public int Id { get; set; } public int Id { get; set; }

View File

@ -1,4 +1,4 @@
using BankDataModels.Models; using BankDataModels.Models.Cashier;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;

View File

@ -1,4 +1,4 @@
using BankDataModels.Models; using BankDataModels.Models.Cashier;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;

View File

@ -1,4 +1,4 @@
using BankDataModels.Models; using BankDataModels.Models.Cashier;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;

View File

@ -1,5 +1,5 @@
using BankDataModels.Enums; using BankDataModels.Enums;
using BankDataModels.Models; using BankDataModels.Models.Client;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;

View File

@ -1,4 +1,4 @@
using BankDataModels.Models; using BankDataModels.Models.Client;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;

View File

@ -1,4 +1,4 @@
using BankDataModels.Models; using BankDataModels.Models.Client;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;

View File

@ -1,4 +1,4 @@
using BankDataModels.Models; using BankDataModels.Models.Client;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;

View File

@ -5,7 +5,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDataModels.Models namespace BankDataModels.Models.Cashier
{ {
// Интерфейс, отвечающий за cчёт // Интерфейс, отвечающий за cчёт
public interface IAccountModel : IId public interface IAccountModel : IId

View File

@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDataModels.Models namespace BankDataModels.Models.Cashier
{ {
// Интерфейс, отвечающий за выдачу наличных // Интерфейс, отвечающий за выдачу наличных
public interface ICashWithdrawalModel : IId public interface ICashWithdrawalModel : IId

View File

@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDataModels.Models namespace BankDataModels.Models.Cashier
{ {
// Интерфейс, отвечающий за кассира // Интерфейс, отвечающий за кассира
public interface ICashierModel : IId public interface ICashierModel : IId

View File

@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDataModels.Models namespace BankDataModels.Models.Cashier
{ {
// Интерфейс, отвечающий за перевод денег // Интерфейс, отвечающий за перевод денег
public interface IMoneyTransferModel : IId public interface IMoneyTransferModel : IId

View File

@ -5,7 +5,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDataModels.Models namespace BankDataModels.Models.Client
{ {
// Интерфейс, отвечающий за банковскую карту // Интерфейс, отвечающий за банковскую карту
public interface ICardModel : IId public interface ICardModel : IId
@ -19,7 +19,7 @@ namespace BankDataModels.Models
// Сумма на карте // Сумма на карте
double Balance { get; } double Balance { get; }
// Период пользования картой // Период пользования картой
DateTime Period { get; } DateTime Period { get; }

View File

@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDataModels.Models namespace BankDataModels.Models.Client
{ {
// Интерфейс, отвечающий за клиента // Интерфейс, отвечающий за клиента
public interface IClientModel : IId public interface IClientModel : IId

View File

@ -4,12 +4,12 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDataModels.Models namespace BankDataModels.Models.Client
{ {
// Интерфейс, отвечающий за пополнение карты // Интерфейс, отвечающий за пополнение карты
public interface ICreditingModel : IId public interface ICreditingModel : IId
{ {
int CardId { get; } int CardId { get; }
// Сумма на пополнение карты // Сумма на пополнение карты
double Sum { get; } double Sum { get; }

View File

@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDataModels.Models namespace BankDataModels.Models.Client
{ {
// Интерфейс, отвечающий за получение наличных по карте // Интерфейс, отвечающий за получение наличных по карте
public interface IDebitingModel : IId public interface IDebitingModel : IId

View File

@ -1,4 +1,5 @@
using BankDatabaseImplement.Models; using BankDatabaseImplement.Models.Cashier;
using BankDatabaseImplement.Models.Client;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -8,7 +9,7 @@ using System.Threading.Tasks;
namespace BankDatabaseImplement namespace BankDatabaseImplement
{ {
public class BankDatabase : DbContext public class BankDatabase : DbContext
{ {
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{ {

View File

@ -1,84 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.ViewModels.Client.ViewModels;
using BankDataModels.Enums;
using BankDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankDatabaseImplement.Models
{
public class Card : ICardModel
{
public int Id { get; set; }
[Required]
public int ClientId { get; set; }
public virtual Client Client { get; set; }
[Required]
public int AccountId { get; set; }
public virtual Account Account { get; set; }
[Required]
public string Number { get; set; } = string.Empty;
[Required]
public double Balance { get; set; }
[Required]
public DateTime Period { get; set; } = DateTime.Now;
[Required]
public StatusCard StatusCard { get; set; } = StatusCard.Закрыта;
[Required]
public string? ClientSurname { get; set; }
//[ForeignKey("CardId")]
//public virtual List<Crediting> Creditings { get; set; } = new();
//[ForeignKey("CardId")]
//public virtual List<Debiting> Debitings { get; set; } = new();
public CardViewModel GetViewModel => new()
{
Id = Id,
AccountId = AccountId,
ClientId = ClientId,
Number = Number,
Balance = Balance,
Period = Period,
StatusCard = StatusCard,
ClientSurname = ClientSurname
};
public static Card Create(BankDatabase context, CardBindingModel model)
{
return new Card()
{
Id = model.Id,
AccountId = model.AccountId,
Account = context.Accounts.First(x => x.Id == model.AccountId),
ClientId = model.ClientId,
Client = context.Clients.First(x => x.Id == model.ClientId),
Number = model.Number,
Balance = model.Balance,
Period = model.Period,
StatusCard = model.StatusCard,
};
}
public void Update(CardBindingModel model)
{
Period = model.Period;
}
}
}

View File

@ -1,5 +1,5 @@
using BankDataModels.Enums; using BankDataModels.Enums;
using BankDataModels.Models; using BankDataModels.Models.Cashier;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
@ -8,7 +8,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDatabaseImplement.Models namespace BankDatabaseImplement.Models.Cashier.Cashier
{ {
//реализация аккаунта //реализация аккаунта
public class Account : IAccountModel public class Account : IAccountModel
@ -22,7 +22,7 @@ namespace BankDatabaseImplement.Models
public int ClientId { get; set; } public int ClientId { get; set; }
//чтобы передать ФИО клиета //чтобы передать ФИО клиета
public virtual Client Client { get; set; } public virtual Client Client { get; set; }
[Required] [Required]
public double Balance { get; set; } public double Balance { get; set; }
[Required] [Required]
public DateTime DateOpen { get; set; } public DateTime DateOpen { get; set; }

View File

@ -1,7 +1,8 @@
using BankContracts.BindingModels; using BankContracts.BindingModels.Cashier;
using BankContracts.StoragesModels; using BankContracts.StoragesModels;
using BankContracts.ViewModels.Cashier.ViewModels; using BankContracts.ViewModels.Cashier.ViewModels;
using BankDataModels.Models; using BankDatabaseImplement.Models.Client;
using BankDataModels.Models.Cashier;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
@ -9,7 +10,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDatabaseImplement.Models namespace BankDatabaseImplement.Models.Cashier
{ {
public class CashWithdrawal : ICashWithdrawalModel public class CashWithdrawal : ICashWithdrawalModel
{ {

View File

@ -1,6 +1,4 @@
using BankContracts.BindingModels; using System;
using BankDataModels.Models;
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
@ -8,8 +6,10 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using BankContracts.ViewModels.Cashier.ViewModels; using BankContracts.ViewModels.Cashier.ViewModels;
using BankContracts.BindingModels.Cashier;
using BankDataModels.Models.Cashier;
namespace BankDatabaseImplement.Models namespace BankDatabaseImplement.Models.Cashier
{ {
public class Cashier : ICashierModel public class Cashier : ICashierModel
{ {

View File

@ -1,6 +1,6 @@
using BankContracts.BindingModels; using BankContracts.BindingModels.Cashier;
using BankContracts.ViewModels.Cashier.ViewModels; using BankContracts.ViewModels.Cashier.ViewModels;
using BankDataModels.Models; using BankDataModels.Models.Cashier;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
@ -8,7 +8,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDatabaseImplement.Models namespace BankDatabaseImplement.Models.Cashier
{ {
public class MoneyTransfer : IMoneyTransferModel public class MoneyTransfer : IMoneyTransferModel
{ {

View File

@ -1,74 +0,0 @@
using BankContracts.BindingModels;
using BankContracts.ViewModels.Client.ViewModels;
using BankDataModels.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankDatabaseImplement.Models
{
public class Client : IClientModel
{
public int Id { get; set; }
[Required]
public string Name { get; set; } = string.Empty;
[Required]
public string Surname { get; set; } = string.Empty;
[Required]
public string Patronymic { get; set; } = string.Empty;
[Required]
public string Email { get; set; } = string.Empty;
[Required]
public string Password { get; set; } = string.Empty;
[Required]
public string MobilePhone { get; set; } = string.Empty;
[ForeignKey("ClientId")]
public virtual List<Card> Cards { get; set; } = new();
public ClientViewModel GetViewModel => new()
{
Id = Id,
Name = Name,
Surname = Surname,
Patronymic = Patronymic,
Email = Email,
Password = Password,
MobilePhone = MobilePhone
};
public static Client Create(ClientBindingModel model)
{
return new Client()
{
Id = model.Id,
Name = model.Name,
Surname = model.Surname,
Patronymic = model.Patronymic,
Email = model.Email,
Password = model.Password,
MobilePhone = model.MobilePhone,
};
}
public void Update(ClientBindingModel model)
{
Name = model.Name;
Surname = model.Surname;
Patronymic = model.Patronymic;
Email = model.Email;
Password = model.Password;
MobilePhone = model.MobilePhone;
}
}
}

View File

@ -0,0 +1,84 @@
using BankContracts.BindingModels.Client;
using BankContracts.ViewModels.Client.ViewModels;
using BankDataModels.Enums;
using BankDataModels.Models.Client;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankDatabaseImplement.Models.Client.Client
{
public class Card : ICardModel
{
public int Id { get; set; }
[Required]
public int ClientId { get; set; }
public virtual Client Client { get; set; }
[Required]
public int AccountId { get; set; }
public virtual Account Account { get; set; }
[Required]
public string Number { get; set; } = string.Empty;
[Required]
public double Balance { get; set; }
[Required]
public DateTime Period { get; set; } = DateTime.Now;
[Required]
public StatusCard StatusCard { get; set; } = StatusCard.Закрыта;
[Required]
public string? ClientSurname { get; set; }
//[ForeignKey("CardId")]
//public virtual List<Crediting> Creditings { get; set; } = new();
//[ForeignKey("CardId")]
//public virtual List<Debiting> Debitings { get; set; } = new();
public CardViewModel GetViewModel => new()
{
Id = Id,
AccountId = AccountId,
ClientId = ClientId,
Number = Number,
Balance = Balance,
Period = Period,
StatusCard = StatusCard,
ClientSurname = ClientSurname
};
public static Card Create(BankDatabase context, CardBindingModel model)
{
return new Card()
{
Id = model.Id,
AccountId = model.AccountId,
Account = context.Accounts.First(x => x.Id == model.AccountId),
ClientId = model.ClientId,
Client = context.Clients.First(x => x.Id == model.ClientId),
Number = model.Number,
Balance = model.Balance,
Period = model.Period,
StatusCard = model.StatusCard,
};
}
public void Update(CardBindingModel model)
{
Period = model.Period;
}
}
}

View File

@ -0,0 +1,74 @@
using BankContracts.BindingModels.Client;
using BankContracts.ViewModels.Client.ViewModels;
using BankDataModels.Models.Client;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BankDatabaseImplement.Models.Client
{
public class Client : IClientModel
{
public int Id { get; set; }
[Required]
public string Name { get; set; } = string.Empty;
[Required]
public string Surname { get; set; } = string.Empty;
[Required]
public string Patronymic { get; set; } = string.Empty;
[Required]
public string Email { get; set; } = string.Empty;
[Required]
public string Password { get; set; } = string.Empty;
[Required]
public string MobilePhone { get; set; } = string.Empty;
[ForeignKey("ClientId")]
public virtual List<Card> Cards { get; set; } = new();
public ClientViewModel GetViewModel => new()
{
Id = Id,
Name = Name,
Surname = Surname,
Patronymic = Patronymic,
Email = Email,
Password = Password,
MobilePhone = MobilePhone
};
public static Client Create(ClientBindingModel model)
{
return new Client()
{
Id = model.Id,
Name = model.Name,
Surname = model.Surname,
Patronymic = model.Patronymic,
Email = model.Email,
Password = model.Password,
MobilePhone = model.MobilePhone,
};
}
public void Update(ClientBindingModel model)
{
Name = model.Name;
Surname = model.Surname;
Patronymic = model.Patronymic;
Email = model.Email;
Password = model.Password;
MobilePhone = model.MobilePhone;
}
}
}

View File

@ -1,6 +1,4 @@
using BankContracts.BindingModels; using BankContracts.ViewModels.Client.ViewModels;
using BankContracts.ViewModels.Client.ViewModels;
using BankDataModels.Models;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema; using System.ComponentModel.DataAnnotations.Schema;
@ -8,8 +6,11 @@ using System.ComponentModel.DataAnnotations;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using BankContracts.BindingModels.Client;
using BankDatabaseImplement.Models.Cashier;
using BankDataModels.Models.Client;
namespace BankDatabaseImplement.Models namespace BankDatabaseImplement.Models.Client
{ {
public class Crediting : ICreditingModel public class Crediting : ICreditingModel
{ {

View File

@ -1,6 +1,6 @@
using BankContracts.BindingModels; using BankContracts.BindingModels.Client;
using BankContracts.ViewModels.Client.ViewModels; using BankContracts.ViewModels.Client.ViewModels;
using BankDataModels.Models; using BankDataModels.Models.Client;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
@ -8,7 +8,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace BankDatabaseImplement.Models namespace BankDatabaseImplement.Models.Client
{ {
public class Debiting : IDebitingModel public class Debiting : IDebitingModel
{ {