namespace MyOffice.Web.Models.Currency { using Core.Extensions; using Data.Models.Currencies; using Microsoft.AspNetCore.Mvc.ModelBinding.Binders; public class CurrencyViewModel { public string Id { get; set; } = null!; public string Code { get; set; } = null!; public string Symbol { get; set; } = null!; public string Name { get; set; } = null!; public string ShortName { get; set; } = null!; public decimal? Rate { get; set; } public int? Quantity { get; set; } public DateTime? RateDate { get; set; } public bool IsPrimary { get; set; } } public static class CurrencyViewModelExtensions { public static CurrencyViewModel ToModel(this Currency input, CurrencyRate? rate = null) { return new CurrencyViewModel { Id = input.Id.ToShort(), Code = input.CurrencyGlobal!.Id, Symbol = input.CurrencyGlobal!.Symbol, Name = input.Name, ShortName = input.ShortName, Quantity = rate?.Quantity, Rate = rate?.Rate, RateDate = rate?.DateTime, IsPrimary = input.IsPrimary, }; } } }