using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Text.RegularExpressions; using Gestor.Model.Attributes; using Gestor.Model.Common; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; namespace Gestor.Model.Domain.Seguros; public class Parceiro : DomainBase, IDomain { private string _nome; private string _cep; private string _endereco; private string _numero; private string _complemento; private string _bairro; private string _cidade; private string _uf; private string _cgccpf; private string _contato; private string _email; private string _ddd1; private string _telefone1; private string _ddd2; private string _telefone2; private string _ddd3; private string _telefone3; private string _obs; public TipoPerda? TipoPerda { get; set; } [Log(true)] [Name(true)] public string Nome { get { return _nome?.ToUpper(); } set { _nome = value; } } [Log(true)] public string Cep { get { if (_cep == null || !Regex.IsMatch(_cep, "[0-9]+")) { return ""; } return _cep.Trim(); } set { _cep = value; } } [Log(true)] public string Endereco { get { return _endereco?.ToUpper(); } set { _endereco = value; } } [Log(true)] [Description("NÚMERO")] public string Numero { get { return _numero?.ToUpper(); } set { _numero = value; } } [Log(true)] public string Complemento { get { return _complemento?.ToUpper(); } set { _complemento = value; } } [Log(true)] public string Bairro { get { return _bairro?.ToUpper(); } set { _bairro = value; } } [Log(true)] public string Cidade { get { return _cidade?.ToUpper(); } set { _cidade = value; } } [Log(true)] [Description("ESTADO")] public string Uf { get { return _uf?.ToUpper().Trim(); } set { _uf = value; } } [Log(true)] [Description("DOCUMENTO")] public string Cgccpf { get { return _cgccpf?.ToUpper().Trim(); } set { _cgccpf = value; } } [Log(true)] public string Contato { get { return _contato?.ToUpper(); } set { _contato = value; } } [Log(true)] public string Email { get { return _email?.ToLower().Trim(); } set { _email = value; } } [Log(true)] [Description("PREFIXO 1")] public string Ddd1 { get { return _ddd1?.ToUpper().Trim(); } set { _ddd1 = value; } } [Log(true)] [Description("TELEFONE 1")] public string Telefone1 { get { return _telefone1?.ToUpper().Trim(); } set { _telefone1 = value; } } [Log(true)] [Description("PREFIXO 2")] public string Ddd2 { get { return _ddd2?.ToUpper().Trim(); } set { _ddd2 = value; } } [Log(true)] [Description("TELEFONE 2")] public string Telefone2 { get { return _telefone2?.ToUpper().Trim(); } set { _telefone2 = value; } } [Log(true)] [Description("PREFIXO 3")] public string Ddd3 { get { return _ddd3?.ToUpper().Trim(); } set { _ddd3 = value; } } [Log(true)] [Description("TELEFONE 3")] public string Telefone3 { get { return _telefone3?.ToUpper().Trim(); } set { _telefone3 = value; } } [Log(true)] [Description("OBSERVAÇÃO")] public string Obs { get { return _obs?.ToUpper(); } set { _obs = value; } } [JsonIgnore] public Func>> ValidationEvent => Validate; public List> Validate() { List> list = ValidationHelper.AddValue(); if (!(Nome?.Trim().Split(new char[1] { ' ' }).Length).HasValue) { list.AddValue("Nome", Messages.Obrigatorio); } else if (Nome.Length > 100) { list.AddValue("Nome", string.Format(Messages.MaiorQueLimite, 100)); } if (!string.IsNullOrEmpty(Cgccpf) && !Cgccpf.ValidacaoDocumento()) { list.AddValue("Cgccpf", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(Ddd1) && !Ddd1.ValidacaoPrefixo()) { list.AddValue("Ddd1|PRIMEIRO DDD", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(Telefone1) && !Telefone1.ValidacaoTelefone()) { list.AddValue("Telefone1|PRIMEIRO TELEFONE", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(Ddd2) && !Ddd2.ValidacaoPrefixo()) { list.AddValue("Ddd2|SEGUNDO DDD", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(Telefone2) && !Telefone2.ValidacaoTelefone()) { list.AddValue("Telefone2|SEGUNDO TELEFONE", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(Ddd3) && !Ddd3.ValidacaoPrefixo()) { list.AddValue("Ddd3|TERCEIRO DDD", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(Telefone3) && !Telefone3.ValidacaoTelefone()) { list.AddValue("Telefone3|TERCEIRO TELEFONE", Messages.Invalido); } if (!string.IsNullOrEmpty(Email) && Email.Length > 100) { list.AddValue("Email|E-MAIL", string.Format(Messages.MaiorQueLimite, 100)); } if (!string.IsNullOrEmpty(Email) && !Email.ValidacaoEmail()) { list.AddValue("Email|E-MAIL", Messages.Invalido); } if (!string.IsNullOrEmpty(Cep) && !Cep.ValidacaoCep()) { list.AddValue("Cep|CEP", Messages.Invalido); } if (!string.IsNullOrEmpty(Uf) && !Uf.ValidacaoEstado()) { list.AddValue("Uf|ESTADO", Messages.Invalido); } if (!string.IsNullOrEmpty(Numero) && !int.TryParse(Numero, out var _)) { list.AddValue("Numero|NÚMERO", Messages.Invalido); } if (!string.IsNullOrEmpty(Numero)) { string numero = Numero; if (numero != null && numero.Count() > 5) { list.AddValue("Numero|NÚMERO", Messages.Invalido); } } return list; } public List Log() { return new List { new TupleList { Tuples = new ObservableCollection> { new Tuple("NOME", string.IsNullOrWhiteSpace(Nome) ? "" : Nome, ""), new Tuple("DOCUMENTO", string.IsNullOrWhiteSpace(Cgccpf) ? "" : Cgccpf, ""), new Tuple("PRIMEIRO PREFIXO", string.IsNullOrWhiteSpace(Ddd1) ? "" : Ddd1, ""), new Tuple("PRIMEIRO TELEFONE", string.IsNullOrWhiteSpace(Telefone1) ? "" : Telefone1, ""), new Tuple("SEGUNDO PREFIXO", string.IsNullOrWhiteSpace(Ddd2) ? "" : Ddd2, ""), new Tuple("SEGUNDO TELEFONE", string.IsNullOrWhiteSpace(Telefone2) ? "" : Telefone2, ""), new Tuple("TERCEIRO PREFIXO", string.IsNullOrWhiteSpace(Ddd3) ? "" : Ddd3, ""), new Tuple("TERCEIRO TELEFONE", string.IsNullOrWhiteSpace(Telefone3) ? "" : Telefone3, ""), new Tuple("E-MAIL", string.IsNullOrWhiteSpace(Email) ? "" : Email, ""), new Tuple("CEP", string.IsNullOrWhiteSpace(Cep) ? "" : Cep, ""), new Tuple("ENDEREÇO", string.IsNullOrWhiteSpace(Endereco) ? "" : Endereco, ""), new Tuple("NÚMERO", string.IsNullOrWhiteSpace(Numero) ? "" : Numero, ""), new Tuple("COMPLEMENTO", string.IsNullOrWhiteSpace(Complemento) ? "" : Complemento, ""), new Tuple("BAIRRO", string.IsNullOrWhiteSpace(Bairro) ? "" : Bairro, ""), new Tuple("CIDADE", string.IsNullOrWhiteSpace(Cidade) ? "" : Cidade, ""), new Tuple("ESTADO", string.IsNullOrWhiteSpace(Uf) ? "" : Uf, "") } } }; } }