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>> ValidationEvent => Validate; public List> Validate() { List> 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 Log() { List list = new List(); Assinatura = new Regex(".*<\\/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; } }