summaryrefslogtreecommitdiff
path: root/Codemerx/Gestor.Application/Helpers/MailHelper.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Codemerx/Gestor.Application/Helpers/MailHelper.cs')
-rw-r--r--Codemerx/Gestor.Application/Helpers/MailHelper.cs745
1 files changed, 745 insertions, 0 deletions
diff --git a/Codemerx/Gestor.Application/Helpers/MailHelper.cs b/Codemerx/Gestor.Application/Helpers/MailHelper.cs
new file mode 100644
index 0000000..e9f2cde
--- /dev/null
+++ b/Codemerx/Gestor.Application/Helpers/MailHelper.cs
@@ -0,0 +1,745 @@
+using CsQuery.ExtensionMethods.Internal;
+using Gestor.Application.ViewModels;
+using Gestor.Common.Helpers;
+using Gestor.Common.Validation;
+using Gestor.Infrastructure.Repository.Interface;
+using Gestor.Infrastructure.UnitOfWork.Generic;
+using Gestor.Infrastructure.UnitOfWork.Logic;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Common;
+using Gestor.Model.Domain.Ferramentas;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.MalaDireta;
+using Gestor.Model.Domain.Seguros;
+using Gestor.Model.Helper;
+using Google.Apis.Auth.OAuth2;
+using Google.Apis.Gmail.v1;
+using Google.Apis.Gmail.v1.Data;
+using Google.Apis.Requests;
+using Google.Apis.Services;
+using Microsoft.Identity.Client;
+using MimeKit;
+using System;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.Collections.Specialized;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Net.Http.Headers;
+using System.Net.Mail;
+using System.Net.Mime;
+using System.Net.Sockets;
+using System.Runtime.CompilerServices;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Gestor.Application.Helpers
+{
+ public class MailHelper
+ {
+ public MailHelper()
+ {
+ }
+
+ private static StringContent ConverteMailMessageParaStringContent(MailMessage message)
+ {
+ StringContent stringContent;
+ MimeMessage mimeMessage = (MimeMessage)message;
+ using (MemoryStream memoryStream = new MemoryStream())
+ {
+ mimeMessage.WriteTo(memoryStream, new CancellationToken());
+ memoryStream.Position = (long)0;
+ using (StreamReader streamReader = new StreamReader(memoryStream))
+ {
+ string end = streamReader.ReadToEnd();
+ stringContent = new StringContent(Convert.ToBase64String(Encoding.ASCII.GetBytes(end)), Encoding.UTF8, "text/plain");
+ }
+ }
+ return stringContent;
+ }
+
+ public static AlternateView CreateAlternateView(string mailBody)
+ {
+ int i;
+ List<LinkedResource> linkedResources = new List<LinkedResource>();
+ string[] array = (
+ from Match m in Regex.Matches(mailBody, "<img(.*?)src=\"file:(///).*?>", RegexOptions.IgnoreCase)
+ select m.Groups[0].Value).ToArray<string>();
+ for (i = 0; i < (int)array.Length; i++)
+ {
+ string value = Regex.Match(array[i], "(?<=src=\")(.*?)(?=\")", RegexOptions.IgnoreCase).Value;
+ string str = Regex.Match(value, "file:(///).*\\.(.*)", RegexOptions.IgnoreCase).Groups[2].Value;
+ if (str == "jpg")
+ {
+ str = "jpeg";
+ }
+ if (Uri.IsWellFormedUriString(value, UriKind.Absolute))
+ {
+ Uri uri = new Uri(value);
+ if (File.Exists(uri.LocalPath))
+ {
+ mailBody = mailBody.Replace(value, string.Concat("data:image/", str, ";base64,", Convert.ToBase64String(File.ReadAllBytes(uri.LocalPath))));
+ }
+ }
+ }
+ array = (
+ from Match m in Regex.Matches(mailBody, "<img.*?>", RegexOptions.IgnoreCase)
+ select m.Groups[0].Value).ToArray<string>();
+ for (i = 0; i < (int)array.Length; i++)
+ {
+ string str1 = array[i];
+ string value1 = Regex.Match(str1, "(?<=src=\").*(?=\")", RegexOptions.IgnoreCase).Value;
+ string value2 = Regex.Match(value1, "(?<=data:).*(?=;)", RegexOptions.IgnoreCase).Value;
+ if (Gestor.Common.Validation.ValidationHelper.IsNullOrEmpty(value2) || Gestor.Common.Validation.ValidationHelper.IsNullOrEmpty(value1))
+ {
+ mailBody = mailBody.Replace(str1, string.Empty);
+ }
+ else
+ {
+ byte[] numArray = Convert.FromBase64String(Regex.Match(value1, "(?<=base64,)[^\"]*", RegexOptions.IgnoreCase).Value);
+ string str2 = Guid.NewGuid().ToString();
+ linkedResources.Add(new LinkedResource(new MemoryStream(numArray), value2)
+ {
+ ContentId = str2,
+ TransferEncoding = TransferEncoding.Base64
+ });
+ string str3 = string.Concat("cid:", str2);
+ mailBody = mailBody.Replace(value1, str3);
+ }
+ }
+ AlternateView alternateView = AlternateView.CreateAlternateViewFromString(mailBody, null, "text/html");
+ ExtensionMethods.AddRange<LinkedResource>(alternateView.LinkedResources, linkedResources);
+ return alternateView;
+ }
+
+ public static string Encode(string text)
+ {
+ return Convert.ToBase64String(Encoding.UTF8.GetBytes(text)).Replace('+', '-').Replace('/', '\u005F').Replace("=", "");
+ }
+
+ public List<LogEnvio> Send(Credencial credencial, List<Destinatario> destinatarios, TipoTela tela, long id)
+ {
+ List<LogEnvio> logEnvios1 = new List<LogEnvio>();
+ int num = 100;
+ destinatarios.ForEach(async (Destinatario i) => {
+ if (num == 0)
+ {
+ num = 100;
+ await Task.Delay(1000);
+ }
+ List<LogEnvio> logEnvios = logEnvios1;
+ logEnvios.Add(await this.SendAsync(credencial, i, null, null, 0, false));
+ logEnvios = null;
+ num--;
+ });
+ return logEnvios1;
+ }
+
+ public async Task<LogEnvio> SendAsync(Credencial credencial, Destinatario destinatario, FiltroArquivoDigital filtro = null, List<MalaDireta> maladireta = null, TipoTela tela = 0, bool confirmarLeitura = false)
+ {
+ TipoTela tipoTela = new TipoTela();
+ IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
+ LogEnvio logEnvio2 = await Task.Run<LogEnvio>(() => {
+ AuthenticationResult result;
+ List<string> strs;
+ string str;
+ long id;
+ string str1;
+ string str2;
+ string str3;
+ string str4;
+ string str5;
+ string str6;
+ Action<string> action2 = null;
+ Action<string> action3 = null;
+ LogEnvio logEnvio = new LogEnvio();
+ logEnvio.set_Credencial(credencial);
+ logEnvio.set_Destinatario(destinatario);
+ LogEnvio logEnvio1 = logEnvio;
+ AlternateView alternateView = MailHelper.CreateAlternateView(destinatario.get_Corpo());
+ try
+ {
+ MailMessage mailMessage = new MailMessage()
+ {
+ From = new MailAddress(credencial.get_Email(), (string.IsNullOrWhiteSpace(credencial.get_Header()) ? Recursos.Empresa.get_Nome() : credencial.get_Header())),
+ BodyEncoding = Encoding.UTF8,
+ Subject = destinatario.get_Assunto()
+ };
+ mailMessage.AlternateViews.Add(alternateView);
+ mailMessage.ReplyToList.Add(new MailAddress((string.IsNullOrWhiteSpace(credencial.get_Replyto()) ? credencial.get_Email() : credencial.get_Replyto())));
+ mailMessage.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
+ mailMessage.IsBodyHtml = true;
+ MailMessage mailMessage1 = mailMessage;
+ if (confirmarLeitura)
+ {
+ mailMessage1.Headers.Add("Disposition-Notification-To", credencial.get_Email());
+ }
+ destinatario.get_Email().Split(new char[] { ';' }).ToList<string>().ForEach((string s) => {
+ if (!Gestor.Model.Helper.ValidationHelper.ValidacaoEmail(s))
+ {
+ return;
+ }
+ mailMessage1.To.Add(new MailAddress(s));
+ });
+ List<string> strs1 = new List<string>();
+ List<string> encaminharOculto = destinatario.get_EncaminharOculto();
+ if (encaminharOculto != null)
+ {
+ encaminharOculto.ForEach((string x) => {
+ if (string.IsNullOrEmpty(x))
+ {
+ return;
+ }
+ if (!x.Contains(";"))
+ {
+ if (!Gestor.Model.Helper.ValidationHelper.ValidacaoEmail(x))
+ {
+ return;
+ }
+ strs1.Add(x);
+ return;
+ }
+ List<string> list = x.Split(new char[] { ';' }).ToList<string>();
+ Action<string> u003cu003e9_6 = action2;
+ if (u003cu003e9_6 == null)
+ {
+ Action<string> action = (string s) => {
+ if (!Gestor.Model.Helper.ValidationHelper.ValidacaoEmail(s))
+ {
+ return;
+ }
+ strs1.Add(s);
+ };
+ Action<string> action1 = action;
+ action2 = action;
+ u003cu003e9_6 = action1;
+ }
+ list.ForEach(u003cu003e9_6);
+ });
+ }
+ else
+ {
+ }
+ List<string> encaminhar = destinatario.get_Encaminhar();
+ if (encaminhar != null)
+ {
+ encaminhar.ForEach((string x) => {
+ if (string.IsNullOrEmpty(x))
+ {
+ return;
+ }
+ if (!x.Contains(";"))
+ {
+ if (!Gestor.Model.Helper.ValidationHelper.ValidacaoEmail(x))
+ {
+ return;
+ }
+ strs1.Add(x);
+ return;
+ }
+ List<string> list = x.Split(new char[] { ';' }).ToList<string>();
+ Action<string> u003cu003e9_7 = action3;
+ if (u003cu003e9_7 == null)
+ {
+ Action<string> action = (string s) => {
+ if (!Gestor.Model.Helper.ValidationHelper.ValidacaoEmail(s))
+ {
+ return;
+ }
+ strs1.Add(s);
+ };
+ Action<string> action1 = action;
+ action3 = action;
+ u003cu003e9_7 = action1;
+ }
+ list.ForEach(u003cu003e9_7);
+ });
+ }
+ else
+ {
+ }
+ strs1.ForEach((string x) => mailMessage1.Bcc.Add(new MailAddress(x)));
+ List<Gestor.Model.Domain.Common.ArquivoDigital> anexos = destinatario.get_Anexos();
+ if (anexos != null)
+ {
+ anexos.ForEach((Gestor.Model.Domain.Common.ArquivoDigital x) => {
+ Attachment attachment = new Attachment(new MemoryStream(x.get_Arquivo()), string.Concat(x.get_Descricao(), Gestor.Common.Validation.ValidationHelper.GetDefaultExtension(x.get_Extensao())));
+ mailMessage1.Attachments.Add(attachment);
+ });
+ }
+ else
+ {
+ }
+ if (credencial.get_Email().Contains("@gmail.com"))
+ {
+ credencial.set_Tipo(1);
+ }
+ TipoEmail tipo = credencial.get_Tipo();
+ if (tipo == 1)
+ {
+ ClientSecrets clientSecret = new ClientSecrets();
+ clientSecret.set_ClientId("378618252089-fm92uqgnk2jivf25mk2tv9s735n4nf6u.apps.googleusercontent.com");
+ clientSecret.set_ClientSecret("kUiTfSuwZLLfteqwX7x6glsu");
+ UserCredential userCredential = GoogleWebAuthorizationBroker.AuthorizeAsync(clientSecret, new string[] { GmailService.Scope.GmailSend }, credencial.get_Email(), CancellationToken.None, null, null).Result;
+ Google.Apis.Gmail.v1.Data.Message message = new Google.Apis.Gmail.v1.Data.Message();
+ message.set_Raw(MailHelper.Encode(MimeMessage.CreateFromMailMessage(mailMessage1).ToString()));
+ Google.Apis.Gmail.v1.Data.Message message1 = message;
+ BaseClientService.Initializer initializer = new BaseClientService.Initializer();
+ initializer.set_HttpClientInitializer(userCredential);
+ initializer.set_ApplicationName("AGGER GESTOR");
+ UsersResource.MessagesResource.SendRequest sendRequest = (new GmailService(initializer)).get_Users().get_Messages().Send(message1, credencial.get_Email());
+ logEnvio1.set_Enviado(false);
+ if (sendRequest.Execute().get_LabelIds().Contains("SENT"))
+ {
+ logEnvio1.set_Enviado(true);
+ }
+ }
+ else if (tipo == 2)
+ {
+ StringContent stringContent = new StringContent("");
+ PublicClientApplicationBuilder publicClientApplicationBuilder = PublicClientApplicationBuilder.Create("8d1c32fe-4c17-4d5b-a21b-55b5529c3e12").WithDefaultRedirectUri();
+ CacheOptions cacheOption = new CacheOptions();
+ cacheOption.set_UseSharedCache(true);
+ IPublicClientApplication publicClientApplication = publicClientApplicationBuilder.WithCacheOptions(cacheOption).Build();
+ string[] strArrays = new string[] { "user.read", "https://graph.microsoft.com/Mail.Send" };
+ try
+ {
+ stringContent = MailHelper.ConverteMailMessageParaStringContent(mailMessage1);
+ IEnumerable<IAccount> accounts = publicClientApplication.GetAccountsAsync().Result;
+ result = (accounts == null || accounts.Count<IAccount>() == 0 ? publicClientApplication.AcquireTokenInteractive(strArrays).ExecuteAsync().Result : publicClientApplication.AcquireTokenSilent(strArrays, (accounts != null ? accounts.FirstOrDefault<IAccount>() : null)).ExecuteAsync().Result);
+ }
+ catch
+ {
+ result = publicClientApplication.AcquireTokenInteractive(strArrays).ExecuteAsync().Result;
+ }
+ using (HttpClient httpClient = new HttpClient())
+ {
+ httpClient.get_DefaultRequestHeaders().Clear();
+ httpClient.get_DefaultRequestHeaders().Add("Authorization", string.Concat("Bearer ", (result != null ? result.get_AccessToken() : null)));
+ logEnvio1.set_Enviado(httpClient.PostAsync("https://graph.microsoft.com/v1.0/me/sendMail", stringContent).Result.get_IsSuccessStatusCode());
+ }
+ }
+ else
+ {
+ NetworkCredential networkCredential = new NetworkCredential()
+ {
+ Password = EncryptionHelper.Decrypt(credencial.get_Senha()),
+ UserName = credencial.get_Usuario() ?? credencial.get_Email()
+ };
+ SmtpClient smtpClient = new SmtpClient()
+ {
+ EnableSsl = credencial.get_Seguro(),
+ Host = credencial.get_Dominio(),
+ Port = credencial.get_Porta().GetValueOrDefault(587),
+ UseDefaultCredentials = false,
+ Credentials = networkCredential
+ };
+ smtpClient.SendCompleted += new SendCompletedEventHandler((object sender, AsyncCompletedEventArgs args) => {
+ logEnvio1.set_Enviado((!args.Cancelled ? true : args.Error != null));
+ if (args.Error != null)
+ {
+ logEnvio1.set_Erro(args.Error.ToString());
+ }
+ });
+ smtpClient.Send(mailMessage1);
+ logEnvio1.set_Enviado(true);
+ }
+ }
+ catch (Exception exception1)
+ {
+ Exception exception = exception1;
+ logEnvio1.set_Enviado(false);
+ logEnvio1.set_Erro((exception.InnerException == null ? exception.Message : string.Concat(exception.Message, " | ", exception.InnerException.Message)));
+ }
+ if (tela == 40)
+ {
+ return logEnvio1;
+ }
+ using (UnitOfWork commited = Instancia.Commited)
+ {
+ List<string> strs2 = new List<string>()
+ {
+ destinatario.get_Email()
+ };
+ if (destinatario.get_Encaminhar() != null)
+ {
+ strs2.AddRange(destinatario.get_Encaminhar());
+ }
+ List<string> strs3 = new List<string>();
+ if (destinatario.get_EncaminharOculto() != null)
+ {
+ strs3.AddRange(destinatario.get_EncaminharOculto());
+ }
+ List<Gestor.Model.Domain.Common.ArquivoDigital> arquivoDigitals = destinatario.get_Anexos();
+ if (arquivoDigitals != null)
+ {
+ Func<Gestor.Model.Domain.Common.ArquivoDigital, string> u003cu003e9_09 = MailHelper.u003cu003ec.u003cu003e9__0_9;
+ if (u003cu003e9_09 == null)
+ {
+ u003cu003e9_09 = (Gestor.Model.Domain.Common.ArquivoDigital x) => string.Concat(x.get_Descricao(), Gestor.Common.Validation.ValidationHelper.GetDefaultExtension(x.get_Extensao()));
+ MailHelper.u003cu003ec.u003cu003e9__0_9 = u003cu003e9_09;
+ }
+ strs = arquivoDigitals.Select<Gestor.Model.Domain.Common.ArquivoDigital, string>(u003cu003e9_09).ToList<string>();
+ }
+ else
+ {
+ strs = null;
+ }
+ List<string> strs4 = strs;
+ DateTime networkTime = Funcoes.GetNetworkTime();
+ if (filtro != null)
+ {
+ switch (filtro.get_Tipo())
+ {
+ case 1:
+ {
+ tipoTela = 1;
+ break;
+ }
+ case 2:
+ {
+ tipoTela = 2;
+ break;
+ }
+ case 3:
+ {
+ tipoTela = 5;
+ break;
+ }
+ case 4:
+ {
+ tipoTela = 3;
+ break;
+ }
+ case 5:
+ {
+ tipoTela = 7;
+ break;
+ }
+ case 6:
+ {
+ tipoTela = 15;
+ break;
+ }
+ case 7:
+ {
+ tipoTela = 23;
+ break;
+ }
+ case 8:
+ {
+ tipoTela = 13;
+ break;
+ }
+ case 9:
+ {
+ tipoTela = 25;
+ break;
+ }
+ case 10:
+ {
+ tipoTela = 24;
+ break;
+ }
+ case 11:
+ {
+ tipoTela = 33;
+ break;
+ }
+ case 12:
+ {
+ tipoTela = 16;
+ break;
+ }
+ case 13:
+ {
+ tipoTela = 18;
+ break;
+ }
+ default:
+ {
+ tipoTela = 0;
+ break;
+ }
+ }
+ if (strs4 != null && logEnvio1.get_Enviado())
+ {
+ LogEmail logEmail = new LogEmail();
+ logEmail.set_Credencial(credencial);
+ logEmail.set_EntityId(filtro.get_Id());
+ logEmail.set_Usuario(Recursos.Usuario);
+ logEmail.set_Data(networkTime);
+ logEmail.set_Tela(tipoTela);
+ logEmail.set_Destinatarios(string.Join(";", strs2));
+ logEmail.set_Cco(string.Join(";", strs3));
+ logEmail.set_Assunto(destinatario.get_Assunto());
+ logEmail.set_Corpo(destinatario.get_Corpo());
+ logEmail.set_Anexos(string.Join(";", strs4));
+ logEmail.set_Versao(LoginViewModel.VersaoAtual);
+ logEmail.set_NomeMaquina(Environment.MachineName);
+ logEmail.set_UsuarioMaquina(Environment.UserName);
+ IPAddress[] addressList = hostEntry.AddressList;
+ Func<IPAddress, bool> u003cu003e9_010 = MailHelper.u003cu003ec.u003cu003e9__0_10;
+ if (u003cu003e9_010 == null)
+ {
+ u003cu003e9_010 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork;
+ MailHelper.u003cu003ec.u003cu003e9__0_10 = u003cu003e9_010;
+ }
+ IPAddress pAddress = ((IEnumerable<IPAddress>)addressList).FirstOrDefault<IPAddress>(u003cu003e9_010);
+ if (pAddress != null)
+ {
+ str6 = pAddress.ToString();
+ }
+ else
+ {
+ str6 = null;
+ }
+ logEmail.set_Ip(str6);
+ commited.get_RegistroLogRepository().SaveOrUpdate(logEmail);
+ }
+ commited.Commit();
+ }
+ else if (maladireta == null)
+ {
+ if (strs4 != null)
+ {
+ LogEmail logEmail1 = new LogEmail();
+ logEmail1.set_Credencial(credencial);
+ logEmail1.set_Usuario(Recursos.Usuario);
+ logEmail1.set_Data(networkTime);
+ logEmail1.set_Tela(tela);
+ logEmail1.set_Destinatarios(string.Join(";", strs2));
+ logEmail1.set_Cco(string.Join(";", strs3));
+ logEmail1.set_Assunto(destinatario.get_Assunto());
+ logEmail1.set_Corpo(destinatario.get_Corpo());
+ logEmail1.set_Anexos(string.Join(";", strs4));
+ logEmail1.set_Versao(LoginViewModel.VersaoAtual);
+ logEmail1.set_NomeMaquina(Environment.MachineName);
+ logEmail1.set_UsuarioMaquina(Environment.UserName);
+ IPAddress[] pAddressArray = hostEntry.AddressList;
+ Func<IPAddress, bool> u003cu003e9_016 = MailHelper.u003cu003ec.u003cu003e9__0_16;
+ if (u003cu003e9_016 == null)
+ {
+ u003cu003e9_016 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork;
+ MailHelper.u003cu003ec.u003cu003e9__0_16 = u003cu003e9_016;
+ }
+ IPAddress pAddress1 = ((IEnumerable<IPAddress>)pAddressArray).FirstOrDefault<IPAddress>(u003cu003e9_016);
+ if (pAddress1 != null)
+ {
+ str = pAddress1.ToString();
+ }
+ else
+ {
+ str = null;
+ }
+ logEmail1.set_Ip(str);
+ commited.get_RegistroLogRepository().SaveOrUpdate(logEmail1);
+ }
+ commited.Commit();
+ }
+ else
+ {
+ foreach (MalaDireta maladiretum in maladireta)
+ {
+ if (maladiretum.get_Tela() == 1)
+ {
+ LogEmail logEmail2 = new LogEmail();
+ logEmail2.set_Credencial(credencial);
+ logEmail2.set_Usuario(Recursos.Usuario);
+ logEmail2.set_EntityId(maladiretum.get_Cliente().get_Id());
+ logEmail2.set_Data(networkTime);
+ logEmail2.set_Tela(maladiretum.get_Tela());
+ logEmail2.set_Destinatarios(string.Join(";", strs2));
+ logEmail2.set_Cco(string.Join(";", strs3));
+ logEmail2.set_Assunto(destinatario.get_Assunto());
+ logEmail2.set_Corpo(destinatario.get_Corpo());
+ logEmail2.set_Anexos(string.Join(";", strs4));
+ logEmail2.set_Versao(LoginViewModel.VersaoAtual);
+ logEmail2.set_NomeMaquina(Environment.MachineName);
+ logEmail2.set_UsuarioMaquina(Environment.UserName);
+ IPAddress[] addressList1 = hostEntry.AddressList;
+ Func<IPAddress, bool> u003cu003e9_011 = MailHelper.u003cu003ec.u003cu003e9__0_11;
+ if (u003cu003e9_011 == null)
+ {
+ u003cu003e9_011 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork;
+ MailHelper.u003cu003ec.u003cu003e9__0_11 = u003cu003e9_011;
+ }
+ IPAddress pAddress2 = ((IEnumerable<IPAddress>)addressList1).FirstOrDefault<IPAddress>(u003cu003e9_011);
+ if (pAddress2 != null)
+ {
+ str5 = pAddress2.ToString();
+ }
+ else
+ {
+ str5 = null;
+ }
+ logEmail2.set_Ip(str5);
+ logEmail2.set_Relatorio(maladiretum.get_Relatorio());
+ commited.get_RegistroLogRepository().SaveOrUpdate(logEmail2);
+ }
+ else if (maladiretum.get_Tela() == 2)
+ {
+ LogEmail logEmail3 = new LogEmail();
+ logEmail3.set_Credencial(credencial);
+ logEmail3.set_Usuario(Recursos.Usuario);
+ logEmail3.set_EntityId(maladiretum.get_Apolice().get_Id());
+ logEmail3.set_Data(networkTime);
+ logEmail3.set_Tela(maladiretum.get_Tela());
+ logEmail3.set_Destinatarios(string.Join(";", strs2));
+ logEmail3.set_Cco(string.Join(";", strs3));
+ logEmail3.set_Assunto(destinatario.get_Assunto());
+ logEmail3.set_Corpo(destinatario.get_Corpo());
+ logEmail3.set_Anexos(string.Join(";", strs4));
+ logEmail3.set_Versao(LoginViewModel.VersaoAtual);
+ logEmail3.set_NomeMaquina(Environment.MachineName);
+ logEmail3.set_UsuarioMaquina(Environment.UserName);
+ IPAddress[] pAddressArray1 = hostEntry.AddressList;
+ Func<IPAddress, bool> u003cu003e9_012 = MailHelper.u003cu003ec.u003cu003e9__0_12;
+ if (u003cu003e9_012 == null)
+ {
+ u003cu003e9_012 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork;
+ MailHelper.u003cu003ec.u003cu003e9__0_12 = u003cu003e9_012;
+ }
+ IPAddress pAddress3 = ((IEnumerable<IPAddress>)pAddressArray1).FirstOrDefault<IPAddress>(u003cu003e9_012);
+ if (pAddress3 != null)
+ {
+ str4 = pAddress3.ToString();
+ }
+ else
+ {
+ str4 = null;
+ }
+ logEmail3.set_Ip(str4);
+ logEmail3.set_Relatorio(maladiretum.get_Relatorio());
+ commited.get_RegistroLogRepository().SaveOrUpdate(logEmail3);
+ }
+ else if (maladiretum.get_Tela() == 5)
+ {
+ LogEmail logEmail4 = new LogEmail();
+ logEmail4.set_Credencial(credencial);
+ logEmail4.set_Usuario(Recursos.Usuario);
+ logEmail4.set_EntityId(maladiretum.get_Parcela().get_Id());
+ logEmail4.set_Data(networkTime);
+ logEmail4.set_Tela(maladiretum.get_Tela());
+ logEmail4.set_Destinatarios(string.Join(";", strs2));
+ logEmail4.set_Cco(string.Join(";", strs3));
+ logEmail4.set_Assunto(destinatario.get_Assunto());
+ logEmail4.set_Corpo(destinatario.get_Corpo());
+ logEmail4.set_Anexos(string.Join(";", strs4));
+ logEmail4.set_Versao(LoginViewModel.VersaoAtual);
+ logEmail4.set_NomeMaquina(Environment.MachineName);
+ logEmail4.set_UsuarioMaquina(Environment.UserName);
+ IPAddress[] addressList2 = hostEntry.AddressList;
+ Func<IPAddress, bool> u003cu003e9_013 = MailHelper.u003cu003ec.u003cu003e9__0_13;
+ if (u003cu003e9_013 == null)
+ {
+ u003cu003e9_013 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork;
+ MailHelper.u003cu003ec.u003cu003e9__0_13 = u003cu003e9_013;
+ }
+ IPAddress pAddress4 = ((IEnumerable<IPAddress>)addressList2).FirstOrDefault<IPAddress>(u003cu003e9_013);
+ if (pAddress4 != null)
+ {
+ str3 = pAddress4.ToString();
+ }
+ else
+ {
+ str3 = null;
+ }
+ logEmail4.set_Ip(str3);
+ logEmail4.set_Relatorio(maladiretum.get_Relatorio());
+ commited.get_RegistroLogRepository().SaveOrUpdate(logEmail4);
+ }
+ else if (maladiretum.get_Tela() != 7)
+ {
+ if (maladiretum.get_Tela() != null)
+ {
+ continue;
+ }
+ LogEmail logEmail5 = new LogEmail();
+ logEmail5.set_Credencial(credencial);
+ logEmail5.set_Usuario(Recursos.Usuario);
+ Documento apolice = maladiretum.get_Apolice();
+ id = (apolice != null ? apolice.get_Id() : (long)0);
+ logEmail5.set_EntityId(id);
+ logEmail5.set_Data(networkTime);
+ logEmail5.set_Tela(2);
+ logEmail5.set_Destinatarios(string.Join(";", strs2));
+ logEmail5.set_Cco(string.Join(";", strs3));
+ logEmail5.set_Assunto(destinatario.get_Assunto());
+ logEmail5.set_Corpo(destinatario.get_Corpo());
+ logEmail5.set_Anexos(string.Join(";", strs4));
+ logEmail5.set_Versao(LoginViewModel.VersaoAtual);
+ logEmail5.set_NomeMaquina(Environment.MachineName);
+ logEmail5.set_UsuarioMaquina(Environment.UserName);
+ IPAddress[] pAddressArray2 = hostEntry.AddressList;
+ Func<IPAddress, bool> u003cu003e9_015 = MailHelper.u003cu003ec.u003cu003e9__0_15;
+ if (u003cu003e9_015 == null)
+ {
+ u003cu003e9_015 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork;
+ MailHelper.u003cu003ec.u003cu003e9__0_15 = u003cu003e9_015;
+ }
+ IPAddress pAddress5 = ((IEnumerable<IPAddress>)pAddressArray2).FirstOrDefault<IPAddress>(u003cu003e9_015);
+ if (pAddress5 != null)
+ {
+ str1 = pAddress5.ToString();
+ }
+ else
+ {
+ str1 = null;
+ }
+ logEmail5.set_Ip(str1);
+ logEmail5.set_Relatorio(maladiretum.get_Relatorio());
+ commited.get_RegistroLogRepository().SaveOrUpdate(logEmail5);
+ }
+ else
+ {
+ LogEmail logEmail6 = new LogEmail();
+ logEmail6.set_Credencial(credencial);
+ logEmail6.set_Usuario(Recursos.Usuario);
+ logEmail6.set_EntityId(maladiretum.get_Sinistro().get_Id());
+ logEmail6.set_Data(networkTime);
+ logEmail6.set_Tela(maladiretum.get_Tela());
+ logEmail6.set_Destinatarios(string.Join(";", strs2));
+ logEmail6.set_Cco(string.Join(";", strs3));
+ logEmail6.set_Assunto(destinatario.get_Assunto());
+ logEmail6.set_Corpo(destinatario.get_Corpo());
+ logEmail6.set_Anexos(string.Join(";", strs4));
+ logEmail6.set_Versao(LoginViewModel.VersaoAtual);
+ logEmail6.set_NomeMaquina(Environment.MachineName);
+ logEmail6.set_UsuarioMaquina(Environment.UserName);
+ IPAddress[] addressList3 = hostEntry.AddressList;
+ Func<IPAddress, bool> u003cu003e9_014 = MailHelper.u003cu003ec.u003cu003e9__0_14;
+ if (u003cu003e9_014 == null)
+ {
+ u003cu003e9_014 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork;
+ MailHelper.u003cu003ec.u003cu003e9__0_14 = u003cu003e9_014;
+ }
+ IPAddress pAddress6 = ((IEnumerable<IPAddress>)addressList3).FirstOrDefault<IPAddress>(u003cu003e9_014);
+ if (pAddress6 != null)
+ {
+ str2 = pAddress6.ToString();
+ }
+ else
+ {
+ str2 = null;
+ }
+ logEmail6.set_Ip(str2);
+ logEmail6.set_Relatorio(maladiretum.get_Relatorio());
+ commited.get_RegistroLogRepository().SaveOrUpdate(logEmail6);
+ }
+ }
+ commited.Commit();
+ }
+ }
+ return logEnvio1;
+ });
+ return logEnvio2;
+ }
+ }
+} \ No newline at end of file