Exemple #1
0
        IEmailTemplate EmailTemplateObject(IModelApplicationEmail modelApplication, EmailRule emailRule,
                                           IObjectSpace objectSpace)
        {
            var modelEmailTemplate = modelApplication.Email.EmailTemplateContexts.First(
                emailTemplate => emailTemplate.GetValue <string>("Id") == emailRule.TemplateContext);

            return((IEmailTemplate)objectSpace.FindObject(modelEmailTemplate.EmailTemplate.TypeInfo.Type,
                                                          CriteriaOperator.Parse(modelEmailTemplate.Criteria)));
        }
        IEmailTemplate EmailTemplateObject(IModelApplicationEmail modelApplication, EmailRule emailRule,
                                           IObjectSpace objectSpace)
        {
            var modelEmailTemplate = modelApplication.Email.EmailTemplateContexts.FirstOrDefault(
                emailTemplate => emailTemplate.GetValue <string>("Id") == emailRule.TemplateContext);

            if (modelEmailTemplate != null)
            {
                return((IEmailTemplate)objectSpace.FindObject(modelEmailTemplate.EmailTemplate.TypeInfo.Type,
                                                              CriteriaOperator.Parse(modelEmailTemplate.Criteria)));
            }
            throw new NullReferenceException("TemplateContext " + emailRule.TemplateContext);
        }
 void AddReceipients(EmailRule emailRule, IModelApplicationEmail modelApplicationEmail, EmailTemplateEngine.Email email, object o) {
     var emailReceipientGroup =modelApplicationEmail.Email.EmailReceipients.First(
             @group => @group.GetValue<string>("Id") == emailRule.EmailReceipientsContext);
     foreach (var modelEmailReceipient in emailReceipientGroup) {
         var criteriaOperator = GetCriteriaOperator(modelEmailReceipient,o);
         var objects = ObjectSpace.GetObjects(modelEmailReceipient.EmailReceipient.TypeInfo.Type,                                                     criteriaOperator);
         var sendToCollection = GetSendToCollection(email, modelEmailReceipient);
         foreach (var obj in objects) {
             var item = modelEmailReceipient.EmailMember.MemberInfo.GetValue(obj) as string;
             sendToCollection.Add(item);
         }
     }
 }
 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;
 }
        protected virtual void AddReceipients(EmailRule emailRule, IModelApplicationEmail modelApplicationEmail, MailMessage email, object currentObject)
        {
            var emailReceipientGroup = modelApplicationEmail.Email.EmailReceipients.First(
                group => group.GetValue <string>("Id") == emailRule.EmailReceipientsContext);

            foreach (var modelEmailReceipient in emailReceipientGroup)
            {
                var criteriaOperator = GetCriteriaOperator(modelEmailReceipient, currentObject);
                var objects          = ObjectSpace.GetObjects(modelEmailReceipient.EmailReceipient.TypeInfo.Type, criteriaOperator);
                var sendToCollection = GetSendToCollection(email, modelEmailReceipient);
                foreach (var obj in objects)
                {
                    var item = modelEmailReceipient.EmailMember.MemberInfo.GetValue(obj) as string;
                    item?.Split(';').Each(s => sendToCollection.Add(s));
                }
            }
        }
Exemple #6
0
        void AddReceipients(EmailRule emailRule, IModelApplicationEmail modelApplicationEmail, EmailTemplateEngine.Email email, object o)
        {
            var emailReceipientGroup = modelApplicationEmail.Email.EmailReceipients.First(
                @group => @group.GetValue <string>("Id") == emailRule.EmailReceipientsContext);

            foreach (var modelEmailReceipient in emailReceipientGroup)
            {
                var criteriaOperator = GetCriteriaOperator(modelEmailReceipient, o);
                var objects          = ObjectSpace.GetObjects(modelEmailReceipient.EmailReceipient.TypeInfo.Type, criteriaOperator);
                var sendToCollection = GetSendToCollection(email, modelEmailReceipient);
                foreach (var obj in objects)
                {
                    var item = modelEmailReceipient.EmailMember.MemberInfo.GetValue(obj) as string;
                    sendToCollection.Add(item);
                }
            }
        }
Exemple #7
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);
        }
        protected virtual MailMessage CreateEmail(LogicRuleInfo logicRuleInfo, EmailRule emailRule, IModelSmtpClientContext modelSmtpClientContext, IEmailTemplate emailTemplateObject, IModelApplicationEmail modelApplicationEmail)
        {
            var body  = RazorEngineService.RunCompile(emailTemplateObject.Body, Guid.NewGuid().ToString(), null, logicRuleInfo.Object);
            var email = new MailMessage {
                IsBodyHtml = true,
                Subject    = RazorEngineService.RunCompile(emailTemplateObject.Subject, Guid.NewGuid().ToString(), null, logicRuleInfo.Object),
                Body       = body
            };
            var toEmail = emailRule.CurrentObjectEmailMember?.MemberInfo.GetValue(logicRuleInfo.Object) as string;

            toEmail?.Split(';').Each(s => email.To.Add(s));
            if (!string.IsNullOrEmpty(emailRule.EmailReceipientsContext))
            {
                AddReceipients(emailRule, modelApplicationEmail, email, logicRuleInfo.Object);
            }
            email.From = new MailAddress(modelSmtpClientContext.SenderEmail);
            modelSmtpClientContext.ReplyToEmails.Split(';').Each(s => email.ReplyToList.Add(s));
            return(email.To.Count == 0 ? null : email);
        }
 IEmailTemplate EmailTemplateObject(IModelApplicationEmail modelApplication, EmailRule emailRule,
                                           IObjectSpace objectSpace) {
     var modelEmailTemplate =modelApplication.Email.EmailTemplateContexts.First(
             emailTemplate => emailTemplate.GetValue<string>("Id") == emailRule.TemplateContext);
     return (IEmailTemplate)objectSpace.FindObject(modelEmailTemplate.EmailTemplate.TypeInfo.Type,
                                CriteriaOperator.Parse(modelEmailTemplate.Criteria));
 }