using System; using System.Collections.Generic; using Gestor.Model.Attributes; using Gestor.Model.Common; using Gestor.Model.Domain.Common; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; namespace Gestor.Model.Domain.Seguros; public class MaisContato : DomainBase, IDomain { private string _nome; private string _documento; private string _identidade; private string _prefixo; private string _telefone; private string _email; private string _habilitacao; private string _banco; private string _agencia; private string _conta; public Cliente Cliente { get; set; } public TipoTelefone? Tipo { get; set; } [Log(true)] public string Nome { get { return _nome?.ToUpper(); } set { _nome = value; } } [Log(true)] public DateTime? Nascimento { get; set; } [Log(true)] public string Documento { get { return _documento?.ToUpper().Trim(); } set { _documento = value; } } [Log(true)] public string Identidade { get { return _identidade?.ToUpper().Trim(); } set { _identidade = value; } } [Log(true)] public DateTime? Expedicao { get; set; } [Log(true)] public Parentesco? Parentesco { get; set; } [Log(true)] public string Prefixo { get { return _prefixo?.ToUpper().Trim(); } set { _prefixo = value; } } [Log(true)] public string Telefone { get { return _telefone?.ToUpper().Trim(); } set { _telefone = value; } } [Log(true)] public string Email { get { return _email?.ToLower().Trim(); } set { _email = value; } } [Log(true)] public string Habilitacao { get { return _habilitacao?.ToUpper().Trim(); } set { _habilitacao = value; } } [Log(true)] public DateTime? PrimeiraHabilitacao { get; set; } [Log(true)] public Profissao Profissao { get; set; } public string Banco { get { return _banco?.ToUpper(); } set { _banco = value; } } [Log(true)] public string Agencia { get { return _agencia?.ToUpper().Trim(); } set { _agencia = value; } } [Log(true)] public string Conta { get { return _conta?.ToUpper().Trim(); } set { _conta = value; } } public bool Excluido { get; set; } [JsonIgnore] public Func>> ValidationEvent => Validate; public List> Validate() { List> list = ValidationHelper.AddValue(); if (!string.IsNullOrWhiteSpace(Nome) && Nome.Length > 90) { list.AddValue("Nome", string.Format(Messages.MaiorQueLimite, 90)); } if (PrimeiraHabilitacao.HasValue && (DateTime.Compare(PrimeiraHabilitacao.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(PrimeiraHabilitacao.Value, new DateTime(9999, 12, 31)) > 0)) { list.AddValue("PrimeiraHabilitacao|PRIMEIRA HABILITAÇÃO", string.Format(Messages.DataInvalida)); } if (Expedicao.HasValue && (DateTime.Compare(Expedicao.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(Expedicao.Value, new DateTime(9999, 12, 31)) > 0)) { list.AddValue("Expedicao|EXPEDIÇÃO", string.Format(Messages.DataInvalida)); } if (Nascimento.HasValue && (DateTime.Compare(Nascimento.Value, new DateTime(1753, 1, 1)) < 0 || DateTime.Compare(Nascimento.Value, new DateTime(9999, 12, 31)) > 0)) { list.AddValue("Nascimento", string.Format(Messages.DataInvalida)); } if (!string.IsNullOrWhiteSpace(Documento) && Documento.Length > 30) { list.AddValue("Documento", string.Format(Messages.MaiorQueLimite, 30)); } if (!string.IsNullOrWhiteSpace(Identidade) && Identidade.Length > 40) { list.AddValue("Identidade", string.Format(Messages.MaiorQueLimite, 40)); } if (!string.IsNullOrWhiteSpace(Prefixo) && Prefixo.Length > 6) { list.AddValue("Prefixo", string.Format(Messages.MaiorQueLimite, 6)); } if (!string.IsNullOrWhiteSpace(Telefone) && Telefone.Length > 11) { list.AddValue("Telefone", string.Format(Messages.MaiorQueLimite, 11)); } if (!string.IsNullOrWhiteSpace(Email) && Email.Length > 80) { list.AddValue("Email|E-MAIL", string.Format(Messages.MaiorQueLimite, 80)); } if (!string.IsNullOrWhiteSpace(Habilitacao) && Habilitacao.Length > 40) { list.AddValue("Habilitacao|HABILITAÇÃO", string.Format(Messages.MaiorQueLimite, 40)); } if (!string.IsNullOrWhiteSpace(Banco) && Banco.Length > 15) { list.AddValue("Banco", string.Format(Messages.MaiorQueLimite, 15)); } if (!string.IsNullOrWhiteSpace(Agencia) && Agencia.Length > 15) { list.AddValue("Agencia|AGÊNCIA", string.Format(Messages.MaiorQueLimite, 15)); } if (!string.IsNullOrWhiteSpace(Conta) && Conta.Length > 20) { list.AddValue("Conta", string.Format(Messages.MaiorQueLimite, 20)); } return list; } }