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; using System; using System.Collections.Generic; using System.Runtime.CompilerServices; namespace Gestor.Model.Domain.Seguros { public class SeguradoraEndereco : EnderecoBase, IDomain { public Gestor.Model.Domain.Common.Empresa Empresa { get; set; } public Gestor.Model.Domain.Seguros.Seguradora Seguradora { get; set; } public TipoEndereco Tipo { get; set; } [JsonIgnore] public Func>> ValidationEvent { get { SeguradoraEndereco seguradoraEndereco = this; return new Func>>(seguradoraEndereco.Validate); } } public SeguradoraEndereco() { } public List> Validate() { bool length; List> keyValuePairs = ValidationHelper.AddValue(); if (string.IsNullOrWhiteSpace(base.Cep)) { keyValuePairs.AddValue("Cep", Messages.Obrigatorio, true); } else if (!base.Cep.ValidacaoCep()) { keyValuePairs.AddValue("Cep", Messages.Invalido, true); } if (string.IsNullOrWhiteSpace(base.Estado)) { keyValuePairs.AddValue("Estado", Messages.Obrigatorio, true); } else if (!base.Estado.ValidacaoEstado()) { keyValuePairs.AddValue("Estado", Messages.Invalido, true); } if (string.IsNullOrWhiteSpace(base.Endereco)) { keyValuePairs.AddValue("Endereco", Messages.Obrigatorio, true); } else if (base.Endereco.Length > 60) { keyValuePairs.AddValue("Endereco", string.Format(Messages.MaiorQueLimite, 60), true); } if (string.IsNullOrWhiteSpace(base.Numero)) { keyValuePairs.AddValue("Numero", Messages.Obrigatorio, true); } else if (base.Numero.Length > 5) { keyValuePairs.AddValue("Numero", string.Format(Messages.MaiorQueLimite, 5), true); } if (string.IsNullOrWhiteSpace(base.Bairro)) { keyValuePairs.AddValue("Bairro", Messages.Obrigatorio, true); } else if (base.Bairro.Length > 60) { keyValuePairs.AddValue("Bairro", string.Format(Messages.MaiorQueLimite, 60), true); } if (string.IsNullOrWhiteSpace(base.Cidade)) { keyValuePairs.AddValue("Cidade", Messages.Obrigatorio, true); } else if (base.Cidade.Length > 30) { keyValuePairs.AddValue("Cidade", string.Format(Messages.MaiorQueLimite, 30), true); } string complemento = base.Complemento; if (complemento != null) { length = complemento.Length > 30; } else { length = false; } if (length) { keyValuePairs.AddValue("Complemento", string.Format(Messages.MaiorQueLimite, 30), true); } return keyValuePairs; } } }