using BankContracts.BindingModels.Cashier; using BankContracts.ViewModels.Cashier.ViewModels; using BankDataModels.Models.Cashier; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BankDatabaseImplement.Models.CashierModels { public class MoneyTransfer : IMoneyTransferModel { public int Id { get; set; } [Required] public double Sum { get; set; } public int? AccountSenderId { get; set; } [Required] public int AccountPayeeId { get; set; } [Required] public DateTime DateTransfer { get; set; } public int? CreditingId { get; set; } public int CashierId { get; set; } public virtual Cashier Cashier { get; set; } public virtual Account AccountSender { get; set; } public virtual Account AccountPayeer { get; set; } public static MoneyTransfer Create(BankDatabase context, MoneyTransferBindingModel model) { return new MoneyTransfer() { Id = model.Id, Sum = model.Sum, Cashier = context.Cashiers.First(x => x.Id == model.CashierId), AccountSender = model.AccountSenderId == null ? null : context.Accounts.First(x => x.Id == model.AccountSenderId), AccountPayeer = context.Accounts.First(x => x.Id == model.AccountPayeeId), AccountSenderId = model.AccountSenderId, AccountPayeeId = model.AccountPayeeId, DateTransfer = model.DateTransfer, CreditingId = model.CreditingId, CashierId = model.CashierId }; } public void Update(MoneyTransferBindingModel model) { Id = model.Id; DateTransfer = model.DateTransfer; } public MoneyTransferViewModel GetViewModel => new() { Id = Id, AccountPayeeId = AccountPayeeId, AccountSenderId = AccountSenderId, DateTransfer = DateTransfer, Sum = Sum, CreditingId = CreditingId, CashierId = CashierId, CashierSurname = Cashier.Surname }; } }