diff options
Diffstat (limited to 'Gestor.Model/Gestor.Model.Domain.Ferramentas/Credencial.cs')
| -rw-r--r-- | Gestor.Model/Gestor.Model.Domain.Ferramentas/Credencial.cs | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/Gestor.Model/Gestor.Model.Domain.Ferramentas/Credencial.cs b/Gestor.Model/Gestor.Model.Domain.Ferramentas/Credencial.cs new file mode 100644 index 0000000..b6ef66d --- /dev/null +++ b/Gestor.Model/Gestor.Model.Domain.Ferramentas/Credencial.cs @@ -0,0 +1,198 @@ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Text.RegularExpressions; +using Gestor.Model.Attributes; +using Gestor.Model.Common; +using Gestor.Model.Domain.Generic; +using Gestor.Model.Domain.Seguros; +using Gestor.Model.Helper; +using Gestor.Model.Resources; +using Newtonsoft.Json; + +namespace Gestor.Model.Domain.Ferramentas; + +public class Credencial : DomainBase, IDomain +{ + private string _descricao; + + private string _assinatura; + + private string _header; + + private string _cabecalho; + + public long IdEmpresa { get; set; } + + public long IdUsuario { get; set; } + + [Log(true)] + public string Header + { + get + { + return _header; + } + set + { + _header = value; + } + } + + [Log(true)] + [Description("DESCRIÇÃO")] + public string Descricao + { + get + { + return _descricao?.ToUpper(); + } + set + { + _descricao = value; + } + } + + [Log(true)] + [Description("PORTA")] + public int? Porta { get; set; } + + [Log(true)] + [Description("E-MAIL")] + public string Email { get; set; } + + [Log(true)] + [Description("DOMÍNIO")] + public string Dominio { get; set; } + + [Log(true)] + [Description("SEGURO")] + public bool Seguro { get; set; } + + [Log(true)] + [Description("USUÁRIO")] + public string Usuario { get; set; } + + [Log(true)] + [Description("SENHA")] + public string Senha { get; set; } + + [Log(true)] + public TipoEmail Tipo { get; set; } + + public string Cabecalho + { + get + { + return _cabecalho; + } + set + { + _cabecalho = value ?? ""; + } + } + + [Log(true)] + [Description("ASSINATURA")] + public string Assinatura + { + get + { + return _assinatura; + } + set + { + _assinatura = value ?? ""; + } + } + + public string Replyto { get; set; } + + public bool Excluido { get; set; } + + [JsonIgnore] + public Func<List<KeyValuePair<string, string>>> ValidationEvent => Validate; + + public List<KeyValuePair<string, string>> Validate() + { + List<KeyValuePair<string, string>> list = ValidationHelper.AddValue(); + if (string.IsNullOrEmpty(Descricao)) + { + list.AddValue("Descricao|DESCRIÇÃO", Messages.Obrigatorio); + } + else if (Descricao.Length > 50) + { + list.AddValue("Descricao|DESCRIÇÃO", string.Format(Messages.MaiorQueLimite, 50)); + } + if (Tipo == TipoEmail.Outros) + { + if (!Porta.HasValue) + { + list.AddValue("Porta", Messages.Invalido); + } + if (string.IsNullOrWhiteSpace(Dominio)) + { + list.AddValue("Dominio|DOMÍNIO", Messages.Obrigatorio); + } + else if (Dominio.Length > 80) + { + list.AddValue("Dominio|DOMÍNIO", string.Format(Messages.MaiorQueLimite, 80)); + } + if (string.IsNullOrEmpty(Usuario)) + { + list.AddValue("Usuario|USUÁRIO", Messages.Obrigatorio); + } + else if (Usuario.Length > 50) + { + list.AddValue("Usuario|USUÁRIO", string.Format(Messages.MaiorQueLimite, 50)); + } + if (string.IsNullOrEmpty(Senha)) + { + list.AddValue("Senha", Messages.Obrigatorio); + } + else if (Senha.Length > 50) + { + list.AddValue("Senha", string.Format(Messages.MaiorQueLimite, 50)); + } + } + if (string.IsNullOrWhiteSpace(Email)) + { + list.AddValue("Email|E-MAIL", Messages.Obrigatorio); + } + else if (Email.Length > 80) + { + list.AddValue("Email|E-MAIL", string.Format(Messages.MaiorQueLimite, 80)); + } + else if (!Email.ValidacaoEmail()) + { + list.AddValue("Email|E-MAIL", Messages.Invalido); + } + if (!string.IsNullOrWhiteSpace(Replyto) && !Replyto.ValidacaoEmail()) + { + list.AddValue("Replyto|RESPONDER PARA", Messages.Obrigatorio); + } + return list; + } + + public List<TupleList> Log() + { + List<TupleList> list = new List<TupleList>(); + Assinatura = new Regex("<title>.*<\\/title>").Replace(Assinatura, "").Trim(); + Assinatura = new Regex("(<[^>]*>)|(p\\s?{[^}]*})|(\\r)|(\\n)").Replace(Assinatura, "").Trim(); + list.Add(new TupleList + { + Tuples = new ObservableCollection<Tuple<string, string, string>> + { + new Tuple<string, string, string>("DESCRIÇÃO", string.IsNullOrWhiteSpace(Descricao) ? "" : Descricao, ""), + new Tuple<string, string, string>("PORTA", (!Porta.HasValue) ? "" : Porta?.ToString(), ""), + new Tuple<string, string, string>("DOMÍNIO", string.IsNullOrWhiteSpace(Dominio) ? "" : Dominio, ""), + new Tuple<string, string, string>("E-MAIL", string.IsNullOrWhiteSpace(Email) ? "" : Email, ""), + new Tuple<string, string, string>("LOGIN", string.IsNullOrWhiteSpace(Usuario) ? "" : Usuario, ""), + new Tuple<string, string, string>("CERTIFICADO DE SEGURANÇA", Seguro ? "SIM" : "NÃO", ""), + new Tuple<string, string, string>("ASSINATURA", string.IsNullOrWhiteSpace(Assinatura) ? "" : Assinatura, "") + } + }); + return list; + } +} |