static ICollection <string> GetSendToCollection(EmailTemplateEngine.Email email, IModelEmailReceipient modelEmailReceipient) { var collection = email.To; if (modelEmailReceipient.EmailType != EmailType.Normal) { collection = modelEmailReceipient.EmailType == EmailType.BCC ? email.Bcc : email.CC; } return(collection); }
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); } } }