using Gestor.Model.Attributes; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Runtime.CompilerServices; namespace Gestor.Model.Domain.Financeiro { public class Saldo : DomainBase, IDomain { [Log(true)] public BancosContas Conta { get; set; } [Description("DATA FINAL")] [Log(true)] public DateTime? DataFinal { get; set; } [Description("DATA INÍCIO")] [Log(true)] public DateTime? DataInicio { get; set; } [Log(true)] public string Extrato { get; set; } [JsonIgnore] public Func>> ValidationEvent { get { Saldo saldo = this; return new Func>>(saldo.Validate); } } [Description("VALOR FINAL")] [Log(true)] public decimal? ValorFinal { get; set; } [Description("VALOR INÍCIO")] [Log(true)] public decimal ValorInicio { get; set; } public Saldo() { } public List> Validate() { List> keyValuePairs = ValidationHelper.AddValue(); if (this.DataInicio.HasValue && (DateTime.Compare(this.DataInicio.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(this.DataInicio.Value, new DateTime(9999, 12, 31)) > 0)) { keyValuePairs.AddValue("DataInicio|ABERTURA", string.Format(Messages.DataInvalida, Array.Empty()), true); } if (this.DataFinal.HasValue && (DateTime.Compare(this.DataFinal.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(this.DataFinal.Value, new DateTime(9999, 12, 31)) > 0)) { keyValuePairs.AddValue("DataFinal|FECHAMENTO", string.Format(Messages.DataInvalida, Array.Empty()), true); } return keyValuePairs; } } }