Exemplo n.º 1
0
 EmailTemplateEngine.Email CreateEmail(LogicRuleInfo logicRuleInfo, EmailRule emailRule, IModelSmtpClientContext modelSmtpClientContext, IEmailTemplate emailTemplateObject, IModelApplicationEmail modelApplicationEmail) {
     var templateEngine = new EmailTemplateEngine.EmailTemplateEngine(emailTemplateObject);
     var email = templateEngine.Execute(logicRuleInfo.Object, emailRule.ID);
     if (emailRule.CurrentObjectEmailMember != null) {
         var toEmail = emailRule.CurrentObjectEmailMember.MemberInfo.GetValue(logicRuleInfo.Object) as string;
         email.To.Add(toEmail);
     }
     if (!string.IsNullOrEmpty(emailRule.EmailReceipientsContext)) {
         AddReceipients(emailRule, modelApplicationEmail, email,logicRuleInfo.Object);
     }
     email.From = modelSmtpClientContext.SenderEmail;
     modelSmtpClientContext.ReplyToEmails.Split(';').Each(s => email.ReplyTo.Add(s));
     return email.To.Count == 0 ? null : email;
 }
Exemplo n.º 2
0
        EmailTemplateEngine.Email CreateEmail(EmailTemplateEngine.EmailTemplateEngine templateEngine, LogicRuleInfo logicRuleInfo, EmailRule emailRule, IModelSmtpClientContext modelSmtpClientContext, IEmailTemplate emailTemplateObject, IModelApplicationEmail modelApplicationEmail)
        {
            var email = templateEngine.Execute(logicRuleInfo.Object, emailRule.ID);

            if (emailRule.CurrentObjectEmailMember != null)
            {
                var toEmail = emailRule.CurrentObjectEmailMember.MemberInfo.GetValue(logicRuleInfo.Object) as string;
                email.To.Add(toEmail);
            }
            if (!string.IsNullOrEmpty(emailRule.EmailReceipientsContext))
            {
                AddReceipients(emailRule, modelApplicationEmail, email, logicRuleInfo.Object);
            }
            email.From    = modelSmtpClientContext.SenderEmail;
            email.Subject = emailTemplateObject.Subject;
            modelSmtpClientContext.ReplyToEmails.Split(';').Each(s => email.ReplyTo.Add(s));
            return(email.To.Count == 0 ? null : email);
        }
Exemplo n.º 3
0
 void LogicRuleExecutorOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs) {
     var logicRuleInfo = logicRuleExecuteEventArgs.LogicRuleInfo;
     var emailRule = logicRuleInfo.Rule as EmailRule;
     if (emailRule != null && !logicRuleInfo.InvertCustomization) {
         var modelApplicationEmail = (IModelApplicationEmail) Application.Model;
         var emailTemplateObject = EmailTemplateObject(modelApplicationEmail, emailRule, ObjectSpace);
         var templateEngine =new EmailTemplateEngine.EmailTemplateEngine(
                 new StreamEmailTemplateContentReader(emailTemplateObject.Body));
         var modelSmtpClientContext = modelApplicationEmail.Email.SmtpClientContexts.First(emailTemplate => emailTemplate.GetValue<string>("Id") == emailRule.SmtpClientContext);
         var email = CreateEmail(templateEngine, logicRuleInfo, emailRule, modelSmtpClientContext,emailTemplateObject,modelApplicationEmail);
         if (email!=null) {
             var emailSender = new EmailSender{
                 CreateClientFactory =
                     () => new SmtpClientWrapper(CreateSmtpClient(modelSmtpClientContext))
             };
             emailSender.Send(email);
         }
     }
 }
Exemplo n.º 4
0
        void LogicRuleExecutorOnLogicRuleExecute(object sender, LogicRuleExecuteEventArgs logicRuleExecuteEventArgs)
        {
            var logicRuleInfo = logicRuleExecuteEventArgs.LogicRuleInfo;
            var emailRule     = logicRuleInfo.Rule as EmailRule;

            if (emailRule != null && !logicRuleInfo.InvertCustomization)
            {
                var modelApplicationEmail = (IModelApplicationEmail)Application.Model;
                var emailTemplateObject   = EmailTemplateObject(modelApplicationEmail, emailRule, ObjectSpace);
                var templateEngine        = new EmailTemplateEngine.EmailTemplateEngine(
                    new StreamEmailTemplateContentReader(emailTemplateObject.Body));
                var modelSmtpClientContext = modelApplicationEmail.Email.SmtpClientContexts.First(emailTemplate => emailTemplate.GetValue <string>("Id") == emailRule.SmtpClientContext);
                var email = CreateEmail(templateEngine, logicRuleInfo, emailRule, modelSmtpClientContext, emailTemplateObject, modelApplicationEmail);
                if (email != null)
                {
                    var emailSender = new EmailSender {
                        CreateClientFactory =
                            () => new SmtpClientWrapper(CreateSmtpClient(modelSmtpClientContext))
                    };
                    emailSender.Send(email);
                }
            }
        }