using BankContracts.BindingModels; using BankContracts.ViewModels.Cashier.ViewModels; using BankDataModels.Models; using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; namespace BankDatabaseImplement.Models { 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 CashierId { get; set; } public virtual Cashier Cashier { 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), DateTransfer = model.DateTransfer, CashierId = model.CashierId }; } public void Update(MoneyTransferBindingModel model) { Id = model.Id; DateTransfer = model.DateTransfer; } public MoneyTransferViewModel GetViewModel => new() { Id = Id, DateTransfer = DateTransfer, Sum = Sum, CashierId = CashierId, CashierSurname = Cashier.Surname }; } }