using Gestor.Application.Helpers; using Gestor.Application.Servicos.Generic; using Gestor.Common.Helpers; using Gestor.Infrastructure.Repository.Interface; using Gestor.Infrastructure.UnitOfWork.Generic; using Gestor.Infrastructure.UnitOfWork.Logic; using Gestor.Model.Domain.Common; using Gestor.Model.Domain.Ferramentas; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; using System; using System.Collections.Generic; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace Gestor.Application.Servicos.Ferramentas { internal class EmailServico : BaseServico { public EmailServico() { } internal async Task> BuscarEmail(string email) { int num = 3; List clienteEmails1 = await Task.Run>(() => { List clienteEmails; while (num > 0) { try { using (UnitOfWork read = Instancia.Read) { clienteEmails = read.get_ClienteEmailRepository().FindEmailCliente(email, (Recursos.Usuario.get_IdEmpresa() == (long)1 ? (long)0 : Recursos.Usuario.get_IdEmpresa())); } } catch (Exception exception) { num = base.Registrar(exception, 109, num, email, true); continue; } return clienteEmails; } return new List(); }); return clienteEmails1; } public async Task Delete(Credencial email) { int num = 3; bool flag1 = await Task.Run(() => { bool flag; while (num > 0) { List registroLogs = new List(); try { using (UnitOfWork commited = Instancia.Commited) { registroLogs.Add(base.CreateLog(email.get_Id(), email.GetValorOriginal(), 17, 2)); commited.get_CredencialRepository().Delete(email.get_Id()); base.SaveLog(registroLogs, commited); commited.Commit(); flag = true; } } catch (Exception exception) { num = base.Registrar(exception, 218, num, email, true); continue; } return flag; } return false; }); return flag1; } public async Task Save(Credencial credencial) { int num = 3; base.Sucesso = true; Credencial credencial1 = credencial; Credencial credencial2 = await Task.Run(() => { Credencial credencial3; bool flag; List registroLogs = new List(); credencial = credencial1; while (num > 0) { credencial = credencial1; try { using (UnitOfWork commited = Instancia.Commited) { flag = (credencial.get_Id() == 0 ? false : true); credencial.set_Senha(EncryptionHelper.Encrypt(credencial.get_Senha())); if (flag) { registroLogs.Add(base.CreateLog(credencial.get_Id(), credencial, 17)); } credencial = (credencial.get_Id() == 0 ? commited.get_CredencialRepository().SaveOrUpdate(credencial) : commited.get_CredencialRepository().Merge(credencial)); if (!flag) { registroLogs.Add(base.CreateLog(credencial.get_Id(), credencial.GetValorOriginal(), 17, 0)); } base.SaveLog(registroLogs, commited); commited.Commit(); credencial3 = credencial; } } catch (Exception exception) { num = base.Registrar(exception, 217, num, credencial, true); continue; } return credencial3; } return credencial1; }); return credencial2; } } }