summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroEmailViewModel.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
commit225aa1499e37faf9d38257caabbadc68d78b427e (patch)
tree102bb7a40c58595348ae9d3c7076201759fe0720 /Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroEmailViewModel.cs
parent1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff)
downloadgestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz
gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroEmailViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroEmailViewModel.cs285
1 files changed, 285 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroEmailViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroEmailViewModel.cs
new file mode 100644
index 0000000..6aefb0b
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels.Ferramentas/CadastroEmailViewModel.cs
@@ -0,0 +1,285 @@
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Linq;
+using System.Threading.Tasks;
+using Gestor.Application.Helpers;
+using Gestor.Application.Servicos.Ferramentas;
+using Gestor.Application.Servicos.Generic;
+using Gestor.Application.ViewModels.Generic;
+using Gestor.Common.Helpers;
+using Gestor.Common.Validation;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Ferramentas;
+using Gestor.Model.Domain.Generic;
+
+namespace Gestor.Application.ViewModels.Ferramentas;
+
+public class CadastroEmailViewModel : BaseSegurosViewModel
+{
+ private readonly EmailServico _servico;
+
+ public Credencial CancelCredencial;
+
+ private Credencial _selectedCredencial;
+
+ private ObservableCollection<Credencial> _credenciaisFiltrados = new ObservableCollection<Credencial>();
+
+ private bool _isExpanded;
+
+ public Credencial SelectedCredencial
+ {
+ get
+ {
+ return _selectedCredencial;
+ }
+ set
+ {
+ _selectedCredencial = value;
+ WorkOnSelectedCredencial(value);
+ VerificarEnables((value != null) ? new long?(((DomainBase)value).Id) : null);
+ OnPropertyChanged("SelectedCredencial");
+ }
+ }
+
+ public ObservableCollection<Credencial> CredenciaisFiltrados
+ {
+ get
+ {
+ return _credenciaisFiltrados;
+ }
+ set
+ {
+ _credenciaisFiltrados = value;
+ IsExpanded = value != null && value.Count > 0;
+ OnPropertyChanged("CredenciaisFiltrados");
+ }
+ }
+
+ public bool IsExpanded
+ {
+ get
+ {
+ return _isExpanded;
+ }
+ set
+ {
+ _isExpanded = value;
+ OnPropertyChanged("IsExpanded");
+ }
+ }
+
+ public List<Credencial> Credenciais { get; set; }
+
+ public CadastroEmailViewModel()
+ {
+ _servico = new EmailServico();
+ base.EnableMenu = true;
+ Seleciona();
+ }
+
+ public void Incluir()
+ {
+ //IL_0001: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0006: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0016: Unknown result type (might be due to invalid IL or missing references)
+ //IL_002b: Expected O, but got Unknown
+ SelectedCredencial = new Credencial
+ {
+ IdEmpresa = Recursos.Usuario.IdEmpresa,
+ IdUsuario = ((DomainBase)Recursos.Usuario).Id
+ };
+ Alterar(alterar: true);
+ }
+
+ public async Task CancelarAlteracao()
+ {
+ await CarregarCredenciais();
+ if (CredenciaisFiltrados.Any())
+ {
+ Credencial cancelCredencial = CancelCredencial;
+ long id = ((cancelCredencial != null) ? ((DomainBase)cancelCredencial).Id : 0);
+ SelectedCredencial = ((IEnumerable<Credencial>)CredenciaisFiltrados).FirstOrDefault((Func<Credencial, bool>)((Credencial x) => ((DomainBase)x).Id == id));
+ }
+ else
+ {
+ SelectedCredencial = new Credencial();
+ Alterar(alterar: false);
+ base.EnableMenu = false;
+ }
+ Alterar(alterar: false);
+ }
+
+ public async Task<List<KeyValuePair<string, string>>> Salvar()
+ {
+ List<KeyValuePair<string, string>> list = SelectedCredencial.Validate();
+ list.AddRange(Validate());
+ if (list.Count > 0)
+ {
+ return list;
+ }
+ SelectedCredencial.Assinatura = SelectedCredencial.Assinatura.GetBody();
+ SelectedCredencial.Cabecalho = SelectedCredencial.Cabecalho.GetBody();
+ if (SelectedCredencial.Senha == null)
+ {
+ SelectedCredencial.Senha = "";
+ }
+ string acao = ((((DomainBase)SelectedCredencial).Id == 0L) ? "INCLUIU" : "ALTEROU");
+ Credencial value = await _servico.Save(SelectedCredencial);
+ if (!_servico.Sucesso)
+ {
+ return null;
+ }
+ RegistrarAcao(acao + " E-MAIL \"" + value.Email + "\"", ((DomainBase)value).Id, (TipoTela)17, $"E-MAIL: {value.Email}\nID: {((DomainBase)value).Id}");
+ await CarregarCredenciais();
+ SelectedCredencial = ((IEnumerable<Credencial>)CredenciaisFiltrados).FirstOrDefault((Func<Credencial, bool>)((Credencial x) => ((DomainBase)x).Id == ((DomainBase)value).Id));
+ Alterar(alterar: false);
+ ToggleSnackBar("E-MAIL SALVO COM SUCESSO");
+ return null;
+ }
+
+ public async Task Excluir()
+ {
+ if (SelectedCredencial == null || ((DomainBase)SelectedCredencial).Id == 0L || !(await ShowMessage("DESEJA REALMENTE EXCLUIR O E-MAIL " + SelectedCredencial.Email + " PERMANENTEMENTE?", "SIM", "NÃO")))
+ {
+ return;
+ }
+ Loading(isLoading: true);
+ if (!(await _servico.Delete(SelectedCredencial)))
+ {
+ Loading(isLoading: false);
+ return;
+ }
+ RegistrarAcao("EXCLUIU E-MAIL \"" + SelectedCredencial.Email + "\"", ((DomainBase)SelectedCredencial).Id, (TipoTela)17, $"E-MAIL: {SelectedCredencial.Email}\nID: {((DomainBase)SelectedCredencial).Id}");
+ await CarregarCredenciais();
+ if (CredenciaisFiltrados.Any())
+ {
+ SelectedCredencial = CredenciaisFiltrados.FirstOrDefault();
+ }
+ else
+ {
+ SelectedCredencial = new Credencial();
+ Alterar(alterar: false);
+ base.EnableMenu = false;
+ }
+ Loading(isLoading: false);
+ ToggleSnackBar("E-MAIL EXCLUÍDO COM SUCESSO");
+ }
+
+ public List<KeyValuePair<string, string>> Validate()
+ {
+ List<KeyValuePair<string, string>> list = new List<KeyValuePair<string, string>>();
+ if (Credenciais.Any((Credencial x) => ((DomainBase)x).Id != ((DomainBase)SelectedCredencial).Id && x.Descricao == SelectedCredencial.Descricao))
+ {
+ list.Add(new KeyValuePair<string, string>("Descricao", "UM E-MAIL COM A MESMA DESCRIÇÃO/NOME JÁ EXISTE."));
+ }
+ return list;
+ }
+
+ private async void Seleciona()
+ {
+ Loading(isLoading: true);
+ await PermissaoTela((TipoTela)17);
+ Loading(isLoading: false);
+ }
+
+ public async Task SelecionaCredenciais()
+ {
+ Loading(isLoading: true);
+ await CarregarCredenciais();
+ SelectedCredencial = CredenciaisFiltrados.FirstOrDefault();
+ Loading(isLoading: false);
+ }
+
+ private async Task CarregarCredenciais()
+ {
+ List<Credencial> list = await new BaseServico().BuscarCredenciais();
+ foreach (Credencial item in list)
+ {
+ if (item.Email.Contains("@gmail.com"))
+ {
+ item.Tipo = (TipoEmail)1;
+ }
+ item.Senha = EncryptionHelper.Decrypt(item.Senha);
+ }
+ Credenciais = list.OrderBy((Credencial x) => x.Descricao).ToList();
+ CredenciaisFiltrados = new ObservableCollection<Credencial>(Credenciais);
+ }
+
+ private void WorkOnSelectedCredencial(Credencial value, bool registrar = true)
+ {
+ //IL_002e: Unknown result type (might be due to invalid IL or missing references)
+ //IL_006a: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0071: Invalid comparison between Unknown and I4
+ //IL_00d7: Unknown result type (might be due to invalid IL or missing references)
+ CancelCredencial = (Credencial)((value == null || ((DomainBase)value).Id == 0L) ? ((object)CancelCredencial) : ((object)(Credencial)((DomainBase)value).Clone()));
+ if (value == null || ((DomainBase)value).Id == 0L || (LastAccessId == ((DomainBase)value).Id && (int)LastAccessTela == 17))
+ {
+ return;
+ }
+ if (registrar)
+ {
+ RegistrarAcao("ACESSOU E-MAIL \"" + value.Email + "\"", ((DomainBase)value).Id, (TipoTela)17, $"ID E-MAIL: {((DomainBase)value).Id}");
+ }
+ LastAccessId = ((DomainBase)value).Id;
+ LastAccessTela = (TipoTela)17;
+ Credencial selectedCredencial = SelectedCredencial;
+ if (((selectedCredencial != null) ? new long?(((DomainBase)selectedCredencial).Id) : null) != ((DomainBase)value).Id)
+ {
+ SelectedCredencial = ((IEnumerable<Credencial>)CredenciaisFiltrados).FirstOrDefault((Func<Credencial, bool>)((Credencial x) => ((DomainBase)x).Id == ((DomainBase)value).Id));
+ }
+ }
+
+ internal async Task<List<Credencial>> Filtrar(string value)
+ {
+ return await Task.Run(() => FiltrarCredenciais(value));
+ }
+
+ public List<Credencial> FiltrarCredenciais(string filter)
+ {
+ CredenciaisFiltrados = (string.IsNullOrWhiteSpace(filter) ? new ObservableCollection<Credencial>(Credenciais) : new ObservableCollection<Credencial>(Credenciais.Where((Credencial x) => ValidationHelper.RemoveDiacritics(x.Descricao.Trim()).ToUpper().Contains(ValidationHelper.RemoveDiacritics(filter)))));
+ SelectedCredencial = CredenciaisFiltrados.FirstOrDefault();
+ return CredenciaisFiltrados.ToList();
+ }
+
+ public void SelecionaCredencial(Credencial credencial)
+ {
+ SelectedCredencial = CredenciaisFiltrados.First((Credencial x) => ((DomainBase)x).Id == ((DomainBase)credencial).Id);
+ }
+
+ public async Task<bool> EnviarTesteEmail()
+ {
+ if (SelectedCredencial == null)
+ {
+ await ShowMessage("NECESSÁRIO CRIAR UM E-MAIL DE ENVIO PARA PROSSEGUIR.");
+ return false;
+ }
+ TipoEmail tipo = SelectedCredencial.Tipo;
+ if ((int)tipo != 0)
+ {
+ if (tipo - 1 <= 1 && string.IsNullOrWhiteSpace(SelectedCredencial.Email))
+ {
+ await ShowMessage("NECESSÁRIO PREENCHER O E-MAIL PARA ENVIAR UM E-MAIL DE TESTE");
+ return false;
+ }
+ }
+ else if (string.IsNullOrWhiteSpace(SelectedCredencial.Email) || !SelectedCredencial.Porta.HasValue || string.IsNullOrWhiteSpace(SelectedCredencial.Dominio))
+ {
+ await ShowMessage("NECESSÁRIO PREENCHER O E-MAIL, PORTA E DOMÍNIO PARA ENVIAR UM E-MAIL DE TESTE");
+ return false;
+ }
+ LogEnvio val = await new MailHelper().SendAsync(destinatario: new Destinatario
+ {
+ Assunto = "TESTE ENVIO E-MAIL",
+ Corpo = "TESTE DE ENVIO DE E-MAIL",
+ Email = SelectedCredencial.Email,
+ Nome = SelectedCredencial.Descricao
+ }, credencial: SelectedCredencial, filtro: null, maladireta: null, tela: (TipoTela)0);
+ if (!val.Enviado)
+ {
+ await ShowMessage(val.Erro);
+ return false;
+ }
+ return true;
+ }
+}