using Gestor.Model.Common; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace Gestor.Model.Domain.Seguros { public class Extrato : DomainBase, IDomain { private string _numero; private string _historico; private string _observacao; public decimal? Bruto { get; set; } public bool Completo { get; set; } public DateTime? Data { get; set; } public DateTime? DataCredito { get; set; } public string Historico { get { string str = this._historico; if (str != null) { return str.ToUpper(); } return null; } set { this._historico = value; } } public long IdEmpresa { get; set; } public virtual long IdUsuario { get; set; } public decimal? Ir { get; set; } public decimal? Iss { get; set; } public decimal? Liquido { get; set; } public string Numero { get { string str = this._numero; if (str != null) { return str.ToUpper(); } return null; } set { this._numero = value; } } public string Observacao { get { string str = this._observacao; if (str != null) { return str.ToUpper(); } return null; } set { this._observacao = value; } } public decimal? Outro { get; set; } public Gestor.Model.Domain.Seguros.Seguradora Seguradora { get; set; } public bool Selecionado { get; set; } public StatusExtrato Status { get; set; } [JsonIgnore] public Func>> ValidationEvent { get { Extrato extrato = this; return new Func>>(extrato.Validate); } } public Extrato() { } public List> Validate() { List> keyValuePairs = ValidationHelper.AddValue(); if (!string.IsNullOrWhiteSpace(this.Numero) && this.Numero.Length > 50) { keyValuePairs.AddValue("Numero", string.Format(Messages.MaiorQueLimite, 50), true); } if (this.Data.HasValue && (DateTime.Compare(this.Data.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(this.Data.Value, new DateTime(9999, 12, 31)) > 0)) { keyValuePairs.AddValue("Data", string.Format(Messages.DataInvalida, Array.Empty()), true); } return keyValuePairs; } } }