using Gestor.Model.Attributes; using Gestor.Model.Domain.Generic; using Gestor.Model.Helper; using Gestor.Model.Resources; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Threading; namespace Gestor.Model.Domain.Seguros { public class ClienteEndereco : EnderecoBase, IDomain, INotifyPropertyChanged { private bool _selecionado; private string _observacao; public Gestor.Model.Domain.Seguros.Cliente Cliente { get; set; } [Log(true)] public string Observacao { get { string str = this._observacao; if (str != null) { return str.ToUpper(); } return null; } set { this._observacao = value; } } public int? Ordem { get; set; } public bool Selecionado { get { return this._selecionado; } set { if (value == this._selecionado) { return; } this._selecionado = value; this.OnPropertyChanged("Selecionado"); } } [JsonIgnore] public Func>> ValidationEvent { get { ClienteEndereco clienteEndereco = this; return new Func>>(clienteEndereco.Validate); } } public ClienteEndereco() { } protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChangedEventHandler propertyChangedEventHandler = this.PropertyChanged; if (propertyChangedEventHandler == null) { return; } propertyChangedEventHandler(this, new PropertyChangedEventArgs(propertyName)); } public List> Validate() { 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.Endereco)) { keyValuePairs.AddValue("Endereco", Messages.Obrigatorio, true); } else if (base.Endereco.Length > 150) { keyValuePairs.AddValue("Endereco", string.Format(Messages.MaiorQueLimite, 150), true); } if (string.IsNullOrWhiteSpace(base.Numero)) { keyValuePairs.AddValue("Numero", Messages.Obrigatorio, true); } else if (base.Numero.Length > 6) { keyValuePairs.AddValue("Numero", string.Format(Messages.MaiorQueLimite, 6), true); } if (!string.IsNullOrWhiteSpace(base.Complemento) && base.Complemento.Length > 45) { keyValuePairs.AddValue("Complemento", string.Format(Messages.MaiorQueLimite, 45), true); } if (string.IsNullOrWhiteSpace(base.Bairro)) { keyValuePairs.AddValue("Bairro", Messages.Obrigatorio, true); } else if (base.Bairro.Length > 100) { keyValuePairs.AddValue("Bairro", string.Format(Messages.MaiorQueLimite, 100), true); } if (string.IsNullOrWhiteSpace(base.Cidade)) { keyValuePairs.AddValue("Cidade", Messages.Obrigatorio, true); } else if (base.Cidade.Length > 50) { keyValuePairs.AddValue("Cidade", string.Format(Messages.MaiorQueLimite, 50), 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(this.Observacao) && this.Observacao.Length > 255) { keyValuePairs.AddValue("Observacao", string.Format(Messages.MaiorQueLimite, 255), true); } return keyValuePairs; } public event PropertyChangedEventHandler PropertyChanged; } }