39 lines
1.1 KiB
C#
39 lines
1.1 KiB
C#
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 = input.CurrentRate?.Quantity ?? rate?.Quantity,
|
|
Rate = input.CurrentRate?.Rate ?? rate?.Rate,
|
|
RateDate = input.CurrentRate?.DateTime ?? rate?.DateTime,
|
|
IsPrimary = input.IsPrimary,
|
|
};
|
|
}
|
|
}
|
|
}
|