using BankYouBankruptContracts.BindingModels; using BankYouBankruptContracts.ViewModels; using BankYouBankruptDataModels.Models; using Microsoft.EntityFrameworkCore; 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 BankYouBankruptDatabaseImplement.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; } [Required] public string Number { get; set; } = string.Empty; [Required] public string CVC { get; set; } = string.Empty; [Required] public DateTime Period { get; set; } = DateTime.Now; [ForeignKey("CardId")] public virtual List Creditings { get; set; } = new(); [ForeignKey("CardId")] public virtual List Debitings { get; set; } = new(); public CardViewModel GetViewModel => new() { Id = Id, AccountId = AccountId, ClientID = ClientID, ClientSurname = Client.Surname, Number = Number, Period = Period, CVC = CVC }; public static Card Create(BankYouBancruptDatabase context, CardBindingModel model) { return new Card() { Id = model.Id, AccountId = model.AccountId, ClientID = model.ClientID, Client = context.Clients.First(x => x.Id == model.ClientID), Number = model.Number, Period = model.Period, CVC = model.CVC }; } public void Update(CardBindingModel model) { Period = model.Period; } } }