using System; using System.Collections.Generic; using System.ComponentModel; using Gestor.Model.Attributes; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; namespace Gestor.Model.Domain.Seguros; public class ControleSinistro : DomainBase, IDomain { private DateTime? _dataSinistro; private DateTime? _horaSinistro; public Item Item { get; set; } [Log(true)] [Name(true)] [Description("DATA SINISTRO")] public DateTime? DataSinistro { get { return _dataSinistro; } set { if (value.HasValue) { if (!HoraSinistro.HasValue) { HoraSinistro = value; } _dataSinistro = DateTime.Parse($"{value.Value:d} {HoraSinistro.Value:T}"); } else { _dataSinistro = null; } } } public DateTime? HoraSinistro { get { return _horaSinistro; } set { _horaSinistro = value; if (value.HasValue) { DataSinistro = ((DataSinistro.HasValue && value.HasValue) ? new DateTime?(DateTime.Parse($"{DataSinistro.Value:d} {value:T}")) : null); } } } public List Sinistros { get; set; } [JsonIgnore] public Func>> ValidationEvent => Validate; public List> Validate() { List> list = ValidationHelper.AddValue(); if (!DataSinistro.HasValue) { list.AddValue("DataSinistro", Messages.Obrigatorio); } if (DataSinistro.HasValue && (DateTime.Compare(DataSinistro.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(DataSinistro.Value, new DateTime(9999, 12, 31)) > 0)) { list.AddValue("DataSinistro", string.Format(Messages.DataInvalida)); } if (HoraSinistro.HasValue && (DateTime.Compare(HoraSinistro.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(HoraSinistro.Value, new DateTime(9999, 12, 31)) > 0)) { list.AddValue("HoraSinistro", string.Format(Messages.DataInvalida)); } return list; } }