public virtual void SendEmailWithDefaultSender(EmailMessage emailMessage, bool ignoreErrors) { var userConnectionArg = new ConstructorArgument("userConnection", UserConnection); var emailClientFactory = ClassFactory.Get <EmailClientFactory>(userConnectionArg); if (UserConnection.GetIsFeatureEnabled("EmailIntegrationV2")) { var sender = new ActivityEmailSender(emailClientFactory, UserConnection); sender.Send(emailMessage, true); } else { var credentials = new Terrasoft.Mail.MailCredentials { Host = (string)SysSettings.GetValue(UserConnection, "SmtpHost"), Port = int.Parse(SysSettings.GetValue(UserConnection, "SmtpPort").ToString()), UseSsl = (bool)SysSettings.GetValue(UserConnection, "SmtpEnableSsl"), UserName = (string)SysSettings.GetValue(UserConnection, "SmtpUserName"), UserPassword = (string)SysSettings.GetValue(UserConnection, "SmtpUserPassword") }; try { var emailClientFactoryArg = new ConstructorArgument("emailClientFactory", emailClientFactory); var emailSener = ClassFactory.Get <IEmailSender>(emailClientFactoryArg, userConnectionArg); emailSener.Send(emailMessage, credentials); } catch (Exception e) { _log.Error(e); if (!ignoreErrors) { throw; } } } }
public List <SendResult> Send(string ActivityId) { string SendEmailStatus = "InProgress"; bool hasFollowingProcessElement = false; try { var emailClientFactory = ClassFactory.Get <EmailClientFactory>(new ConstructorArgument("userConnection", UserConnection)); var activityEmailSender = new ActivityEmailSender(emailClientFactory, UserConnection); Activity activity = activityEmailSender.Send(Guid.Parse(ActivityId)); hasFollowingProcessElement = (bool)activity.Process.GetPropertyValue("NextProcessElementReady"); SendEmailStatus = "Sended"; } catch (EmailException e) { SendEmailStatus = e.EmailSendStatus; } var sendStatusESQ = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "EmailSendStatus"); sendStatusESQ.PrimaryQueryColumn.IsAlwaysSelect = true; sendStatusESQ.AddColumn("Name"); sendStatusESQ.AddColumn("Code"); sendStatusESQ.Filters.Add(sendStatusESQ.CreateFilterWithParameters( FilterComparisonType.Equal, "Code", SendEmailStatus )); var sendStatusEntityCollection = sendStatusESQ.GetEntityCollection(UserConnection); var sendResultList = new List <SendResult>(); if (sendStatusEntityCollection.Count > 0) { var item = sendStatusEntityCollection[0]; sendResultList.Add(new SendResult() { DisplayValue = item.PrimaryDisplayColumnValue, Value = item.PrimaryColumnValue.ToString(), Code = item.GetTypedColumnValue <string>("Code"), HasFollowingProcessElement = hasFollowingProcessElement }); } return(sendResultList); }