using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using Gestor.Model.Common; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Gestor.Model.Validation; using Newtonsoft.Json; namespace Gestor.Model.Domain.Seguros; public class Patrimonial : EnderecoBase, IDomain { private string _bens; private string _imobiliaria; private string _locatario; private string _locatario2; private string _locatario3; private string _cpfLocatario1; private string _cpfLocatario2; private string _cpfLocatario3; private string _contato; private string _prefixo; private string _telefone; private TipoMoradia _tipoResidencia; public Item Item { get; set; } public string Bens { get { return _bens?.ToUpper(); } set { _bens = value; } } public TipoMoradia TipoMoradia { get { return _tipoResidencia; } set { _tipoResidencia = value; } } public Utilizacao? Utilizacao { get; set; } public string Imobiliaria { get { return _imobiliaria?.ToUpper(); } set { _imobiliaria = value; } } public string Contato { get { return _contato?.ToUpper(); } set { _contato = value; } } public TipoTelefone? Tipo { get; set; } public string Prefixo { get { return _prefixo?.ToUpper().Trim(); } set { _prefixo = value; } } public string Telefone { get { return _telefone?.ToUpper().Trim(); } set { _telefone = value; } } public string Locatario1 { get { return _locatario?.ToUpper(); } set { _locatario = value; } } public string CpfLocatario1 { get { return _cpfLocatario1?.ToUpper(); } set { _cpfLocatario1 = value; } } public string PrefixoLocatario1 { get; set; } public string TelefoneLocatario1 { get; set; } public string Locatario2 { get { return _locatario2?.ToUpper(); } set { _locatario2 = value; } } public string CpfLocatario2 { get { return _cpfLocatario2?.ToUpper(); } set { _cpfLocatario2 = value; } } public string PrefixoLocatario2 { get; set; } public string TelefoneLocatario2 { get; set; } public string Locatario3 { get { return _locatario3?.ToUpper(); } set { _locatario3 = value; } } public string CpfLocatario3 { get { return _cpfLocatario3?.ToUpper(); } set { _cpfLocatario3 = value; } } public string PrefixoLocatario3 { get; set; } public string TelefoneLocatario3 { get; set; } [JsonIgnore] public Func>> ValidationEvent => Validate; public List> Validate() { List> list = ValidationHelper.AddValue(); if (!string.IsNullOrWhiteSpace(Imobiliaria) && Imobiliaria.Length > 60) { list.AddValue("Imobiliaria", string.Format(Messages.MaiorQueLimite, 60)); } if (!string.IsNullOrWhiteSpace(Locatario1) && Locatario1.Length > 100) { list.AddValue("Locatario1", string.Format(Messages.MaiorQueLimite, 100)); } if (!string.IsNullOrWhiteSpace(Locatario2) && Locatario2.Length > 100) { list.AddValue("Locatario2", string.Format(Messages.MaiorQueLimite, 100)); } if (!string.IsNullOrWhiteSpace(Locatario3) && Locatario3.Length > 100) { list.AddValue("Locatario3", string.Format(Messages.MaiorQueLimite, 100)); } if (!string.IsNullOrWhiteSpace(CpfLocatario1) && !CpfLocatario1.ValidacaoDocumento()) { list.AddValue("CpfLocatario1", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(CpfLocatario2) && !CpfLocatario2.ValidacaoDocumento()) { list.AddValue("CpfLocatario2", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(CpfLocatario3) && !CpfLocatario3.ValidacaoDocumento()) { list.AddValue("CpfLocatario3", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(Contato) && Contato.Length > 60) { list.AddValue("Contato", string.Format(Messages.MaiorQueLimite, 60)); } if (!string.IsNullOrWhiteSpace(Prefixo) && !Prefixo.ValidacaoPrefixo()) { list.AddValue("Prefixo", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(Telefone) && !Telefone.ValidacaoTelefone()) { list.AddValue("Telefone", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(PrefixoLocatario1) && !PrefixoLocatario1.ValidacaoPrefixo()) { list.AddValue("PrefixoLocatario1", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(TelefoneLocatario1) && !TelefoneLocatario1.ValidacaoTelefone()) { list.AddValue("TelefoneLocatario1", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(PrefixoLocatario2) && !PrefixoLocatario2.ValidacaoPrefixo()) { list.AddValue("PrefixoLocatario2", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(TelefoneLocatario2) && !TelefoneLocatario2.ValidacaoTelefone()) { list.AddValue("TelefoneLocatario2", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(PrefixoLocatario3) && !PrefixoLocatario3.ValidacaoPrefixo()) { list.AddValue("PrefixoLocatario3", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(TelefoneLocatario3) && !TelefoneLocatario3.ValidacaoTelefone()) { list.AddValue("TelefoneLocatario3", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(base.Bairro) && base.Bairro.Length > 60) { list.AddValue("Bairro", string.Format(Messages.MaiorQueLimite, 60)); } if (!string.IsNullOrWhiteSpace(base.Cidade) && base.Cidade.Length > 30) { list.AddValue("Cidade", string.Format(Messages.MaiorQueLimite, 30)); } if (!string.IsNullOrWhiteSpace(base.Numero) && base.Numero.Length > 10) { list.AddValue("Numero", string.Format(Messages.MaiorQueLimite, 10)); } if (string.IsNullOrWhiteSpace(base.Cep)) { list.AddValue("Cep", Messages.Obrigatorio); } else if (!base.Cep.ValidacaoCep()) { list.AddValue("Cep", Messages.Invalido); } if (string.IsNullOrWhiteSpace(base.Endereco)) { list.AddValue("Endereco", Messages.Obrigatorio); } if (string.IsNullOrWhiteSpace(base.Numero)) { list.AddValue("Numero", Messages.Obrigatorio); } if (string.IsNullOrWhiteSpace(base.Bairro)) { list.AddValue("Bairro", Messages.Obrigatorio); } if (string.IsNullOrWhiteSpace(base.Cidade)) { list.AddValue("Cidade", Messages.Obrigatorio); } if (string.IsNullOrWhiteSpace(base.Estado)) { list.AddValue("Estado", Messages.Obrigatorio); } else if (!base.Estado.ValidacaoEstado()) { list.AddValue("Estado", Messages.Invalido); } return list; } public List> ValidateGarantia() { List> list = ValidationHelper.AddValue(); if (!string.IsNullOrWhiteSpace(Locatario1) && Locatario1.Length > 100) { list.AddValue("Locatario1", string.Format(Messages.MaiorQueLimite, 100)); } if (!string.IsNullOrWhiteSpace(Locatario2) && Locatario2.Length > 100) { list.AddValue("Locatario2", string.Format(Messages.MaiorQueLimite, 100)); } if (!string.IsNullOrWhiteSpace(Locatario3) && Locatario3.Length > 100) { list.AddValue("Locatario3", string.Format(Messages.MaiorQueLimite, 100)); } if (!string.IsNullOrWhiteSpace(CpfLocatario1) && !CpfLocatario1.ValidacaoDocumento()) { list.AddValue("CpfLocatario1", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(CpfLocatario2) && !CpfLocatario2.ValidacaoDocumento()) { list.AddValue("CpfLocatario2", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(CpfLocatario3) && !CpfLocatario3.ValidacaoDocumento()) { list.AddValue("CpfLocatario3", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(PrefixoLocatario1) && !PrefixoLocatario1.ValidacaoPrefixo()) { list.AddValue("PrefixoLocatario1", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(TelefoneLocatario1) && !TelefoneLocatario1.ValidacaoTelefone()) { list.AddValue("TelefoneLocatario1", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(PrefixoLocatario2) && !PrefixoLocatario2.ValidacaoPrefixo()) { list.AddValue("PrefixoLocatario2", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(TelefoneLocatario2) && !TelefoneLocatario2.ValidacaoTelefone()) { list.AddValue("TelefoneLocatario2", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(PrefixoLocatario3) && !PrefixoLocatario3.ValidacaoPrefixo()) { list.AddValue("PrefixoLocatario3", Messages.Invalido); } if (!string.IsNullOrWhiteSpace(TelefoneLocatario3) && !TelefoneLocatario3.ValidacaoTelefone()) { list.AddValue("TelefoneLocatario3", Messages.Invalido); } return list; } public static List Log(Item item) { List list = new List { new TupleList { Tuples = new ObservableCollection> { new Tuple("CEP", string.IsNullOrWhiteSpace(item.Patrimonial.Cep) ? "" : item.Patrimonial.Cep, ""), new Tuple("ENDEREÇO", string.IsNullOrWhiteSpace(item.Patrimonial.Endereco) ? "" : item.Patrimonial.Endereco.ToUpper(), ""), new Tuple("NÚMERO", string.IsNullOrWhiteSpace(item.Patrimonial.Numero) ? "" : item.Patrimonial.Numero, ""), new Tuple("COMPLEMENTO", string.IsNullOrWhiteSpace(item.Patrimonial.Complemento) ? "" : item.Patrimonial.Complemento.ToUpper(), ""), new Tuple("BAIRRO", string.IsNullOrWhiteSpace(item.Patrimonial.Bairro) ? "" : item.Patrimonial.Bairro.ToUpper(), ""), new Tuple("CIDADE", string.IsNullOrWhiteSpace(item.Patrimonial.Cidade) ? "" : item.Patrimonial.Cidade.ToUpper(), ""), new Tuple("ESTADO", string.IsNullOrWhiteSpace(item.Patrimonial.Estado) ? "" : item.Patrimonial.Estado.ToUpper(), ""), new Tuple("BENS", string.IsNullOrWhiteSpace(item.Patrimonial.Bens) ? "" : item.Patrimonial.Bens.ToUpper(), ""), new Tuple("OBSERVAÇÕES", string.IsNullOrWhiteSpace(item.Patrimonial.Item.Observacao) ? "" : item.Patrimonial.Item.Observacao.ToUpper(), "") } } }; if (item.Documento.Controle.Ramo.Id == 15) { ObservableCollection> tuples = list[0].Tuples; object item2; if (item.Patrimonial.Utilizacao.HasValue) { Utilizacao? utilizacao = item.Patrimonial.Utilizacao; item2 = (utilizacao.HasValue ? utilizacao.GetValueOrDefault().GetDescription() : null); } else { item2 = ""; } tuples.Add(new Tuple("UTILIZAÇÃO", (string)item2, "")); list[0].Tuples.Add(new Tuple("IMOBILIÁRIA", string.IsNullOrWhiteSpace(item.Patrimonial.Imobiliaria) ? "" : item.Patrimonial.Imobiliaria.ToUpper(), "")); list[0].Tuples.Add(new Tuple("CONTATO", string.IsNullOrWhiteSpace(item.Patrimonial.Contato) ? "" : item.Patrimonial.Contato.ToUpper(), "")); ObservableCollection> tuples2 = list[0].Tuples; object item3; if (item.Patrimonial.Tipo.HasValue) { TipoTelefone? tipo = item.Patrimonial.Tipo; item3 = (tipo.HasValue ? tipo.GetValueOrDefault().GetDescription() : null); } else { item3 = ""; } tuples2.Add(new Tuple("TIPO TELEFONE", (string)item3, "")); list[0].Tuples.Add(new Tuple("PREFIXO", string.IsNullOrWhiteSpace(item.Patrimonial.Prefixo) ? "" : item.Patrimonial.Prefixo.ToUpper(), "")); list[0].Tuples.Add(new Tuple("NÚMERO", string.IsNullOrWhiteSpace(item.Patrimonial.Telefone) ? "" : item.Patrimonial.Telefone.ToUpper(), "")); list[0].Tuples.Add(new Tuple("LOCATÁRIO 1", string.IsNullOrWhiteSpace(item.Patrimonial.Locatario1) ? "" : item.Patrimonial.Locatario1.ToUpper(), "")); list[0].Tuples.Add(new Tuple("PREFIXO LOCATÁRIO 1", string.IsNullOrWhiteSpace(item.Patrimonial.PrefixoLocatario1) ? "" : item.Patrimonial.PrefixoLocatario1, "")); list[0].Tuples.Add(new Tuple("NÚMERO LOCATÁRIO 1", string.IsNullOrWhiteSpace(item.Patrimonial.TelefoneLocatario1) ? "" : item.Patrimonial.TelefoneLocatario1, "")); list[0].Tuples.Add(new Tuple("LOCATÁRIO 2", string.IsNullOrWhiteSpace(item.Patrimonial.Locatario2) ? "" : item.Patrimonial.Locatario2.ToUpper(), "")); list[0].Tuples.Add(new Tuple("PREFIXO LOCATÁRIO 2", string.IsNullOrWhiteSpace(item.Patrimonial.PrefixoLocatario2) ? "" : item.Patrimonial.PrefixoLocatario2, "")); list[0].Tuples.Add(new Tuple("NÚMERO LOCATÁRIO 2", string.IsNullOrWhiteSpace(item.Patrimonial.TelefoneLocatario2) ? "" : item.Patrimonial.TelefoneLocatario2, "")); list[0].Tuples.Add(new Tuple("LOCATÁRIO 3", string.IsNullOrWhiteSpace(item.Patrimonial.Locatario3) ? "" : item.Patrimonial.Locatario3.ToUpper(), "")); list[0].Tuples.Add(new Tuple("PREFIXO LOCATÁRIO 3", string.IsNullOrWhiteSpace(item.Patrimonial.PrefixoLocatario3) ? "" : item.Patrimonial.PrefixoLocatario3, "")); list[0].Tuples.Add(new Tuple("NÚMERO LOCATÁRIO 3", string.IsNullOrWhiteSpace(item.Patrimonial.TelefoneLocatario3) ? "" : item.Patrimonial.TelefoneLocatario3, "")); } ObservableCollection> observableCollection = new ObservableCollection> { new Tuple("COBERTURAS$", "", "") }; foreach (Cobertura cobertura in item.Coberturas) { observableCollection.Add(new Tuple($" COBERTURA {item.Coberturas.IndexOf(cobertura) + 1}$", "", "")); observableCollection.Add(new Tuple(" OBSERVAÇÃO", string.IsNullOrWhiteSpace(cobertura.Observacao) ? "" : cobertura.Observacao.ToUpper(), "")); observableCollection.Add(new Tuple(" PRÊMIO", cobertura.Premio.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), "")); observableCollection.Add(new Tuple(" FRANQUIA", cobertura.Franquia.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), "")); observableCollection.Add(new Tuple(" L.M.I.", cobertura.Lmi.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), "")); } list.Add(new TupleList { Tuples = observableCollection }); return list; } }