using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; using ZooContracts.BindingModels; using ZooContracts.ViewModels; using ZooDataModels.Models; namespace ZooDatabaseImplements.Models { public class Payment : IPaymentModel { public int Id { get; private set; } [Required] public int RouteReserveId { get; private set; } [Required] public double PaySum { get; private set; } [Required] public DateTime? DateOfPayment { get; private set; } = DateTime.Now; public virtual RouteReserve RouteReserve { get; private set; } = new(); public static Payment? Create(ZooDatabase context, PaymentBindingModel? model) { if (model == null) { return null; } return new Payment() { Id = model.Id, RouteReserve = context.RouteReserves.First(x => x.Id == model.RouteReserveId), PaySum = model.PaySum, DateOfPayment = model.DateOfPayment }; } public void Update(PaymentBindingModel? model) { if (model == null) { return; } Id = model.Id; RouteReserveId = model.RouteReserveId; PaySum = model.PaySum; DateOfPayment = model.DateOfPayment; } public PaymentViewModel GetViewModel { get { var context = new ZooDatabase(); return new() { Id = Id, RouteReserveId = RouteReserveId, PaySum = PaySum, DateOfPayment = DateOfPayment }; } } } }