using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Globalization; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; namespace Gestor.Model.Domain.Seguros; public class Granizo : EnderecoBase, IDomain { private string _cultura; private string _sitio; private string _observacao; public Item Item { get; set; } public string Cultura { get { return _cultura?.ToUpper(); } set { _cultura = value; } } public string Sitio { get { return _sitio?.ToUpper(); } set { _sitio = value; } } public decimal? SubsidioEstadual { get; set; } public decimal? SubsidioFederal { get; set; } public string Area { get; set; } public string Observacao { get { return _observacao?.ToUpper(); } set { _observacao = value; } } [JsonIgnore] public Func>> ValidationEvent => Validate; public List> Validate() { List> list = ValidationHelper.AddValue(); if (string.IsNullOrWhiteSpace(base.Cep)) { list.AddValue("Cep", Messages.Obrigatorio); } else if (!base.Cep.ValidacaoCep()) { list.AddValue("Cep", Messages.Invalido); } if (string.IsNullOrWhiteSpace(Cultura)) { list.AddValue("Cultura", Messages.Obrigatorio); } if (!string.IsNullOrWhiteSpace(Cultura) && Cultura.Length > 60) { list.AddValue("Cultura", string.Format(Messages.MaiorQueLimite, 60)); } if (string.IsNullOrWhiteSpace(Sitio)) { list.AddValue("Sitio", Messages.Obrigatorio); } if (!string.IsNullOrWhiteSpace(Sitio) && Sitio.Length > 100) { list.AddValue("Sitio", string.Format(Messages.MaiorQueLimite, 100)); } 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 static List Log(Item item) { List list = new List { new TupleList { Tuples = new ObservableCollection> { new Tuple("CEP", string.IsNullOrWhiteSpace(item.Granizo.Cep) ? "" : item.Granizo.Cep, ""), new Tuple("ENDEREÇO", string.IsNullOrWhiteSpace(item.Granizo.Endereco) ? "" : item.Granizo.Endereco.ToUpper(), ""), new Tuple("NÚMERO", string.IsNullOrWhiteSpace(item.Granizo.Numero) ? "" : item.Granizo.Numero, ""), new Tuple("COMPLEMENTO", string.IsNullOrWhiteSpace(item.Granizo.Complemento) ? "" : item.Granizo.Complemento.ToUpper(), ""), new Tuple("BAIRRO", string.IsNullOrWhiteSpace(item.Granizo.Bairro) ? "" : item.Granizo.Bairro.ToUpper(), ""), new Tuple("CIDADE", string.IsNullOrWhiteSpace(item.Granizo.Cidade) ? "" : item.Granizo.Cidade.ToUpper(), ""), new Tuple("ESTADO", string.IsNullOrWhiteSpace(item.Granizo.Estado) ? "" : item.Granizo.Estado.ToUpper(), ""), new Tuple("CULTURA", string.IsNullOrWhiteSpace(item.Granizo.Cultura) ? "" : item.Granizo.Cultura.ToUpper(), ""), new Tuple("SÍTIO", string.IsNullOrWhiteSpace(item.Granizo.Sitio) ? "" : item.Granizo.Sitio.ToUpper(), ""), new Tuple("SUBSÍDIO FEDERAL", (!item.Granizo.SubsidioFederal.HasValue) ? "" : item.Granizo.SubsidioFederal?.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""), new Tuple("SUBSÍDIO ESTADUAL", (!item.Granizo.SubsidioEstadual.HasValue) ? "" : item.Granizo.SubsidioEstadual?.ToString("C", new CultureInfo("pt-BR", useUserOverride: false)), ""), new Tuple("OBSERVAÇÕES", string.IsNullOrWhiteSpace(item.Granizo.Observacao) ? "" : item.Granizo.Observacao.ToUpper(), "") } } }; 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; } }