private SendTestMessageResult ExecuteDCTestMessageSending(SendTestMessageData data, BulkEmail bulkEmail, SendMessageData messageData, IEnumerable <DCReplicaModel> replicas) { var sentReplicaMasks = new List <int>(); var failedReplicaMasks = new List <int>(); var templates = TemplateFactory.CreateInstances(_userConnection, bulkEmail, replicas, BulkEmailMacroParser); var templatesWithMasks = templates.Select(t => new { Template = t, ReplicaMask = replicas.First(replica => replica.Id == ((IMailingTemplateReplica)t).ReplicaId).Mask }); var macroComposer = GetMacroComposer(data.ContactId, bulkEmail.Id); foreach (var template in templatesWithMasks) { var sentSuccessfully = SendTestMessageTemplate(bulkEmail.Id, data.ContactId, data.EmailRecipients, template.Template, messageData, macroComposer); if (sentSuccessfully) { sentReplicaMasks.Add(template.ReplicaMask); } else { failedReplicaMasks.Add(template.ReplicaMask); } } if (data.ReplicaMasks == null) { return(new SendTestMessageResult { Success = sentReplicaMasks.Count > 0, SentReplicaMasks = sentReplicaMasks.ToArray(), FailedReplicaMasks = failedReplicaMasks.ToArray() }); } foreach (var mask in data.ReplicaMasks) { if (!sentReplicaMasks.Contains(mask) && !failedReplicaMasks.Contains(mask)) { failedReplicaMasks.Add(mask); } } return(new SendTestMessageResult { Success = sentReplicaMasks.Count > 0, SentReplicaMasks = sentReplicaMasks.ToArray(), FailedReplicaMasks = failedReplicaMasks.ToArray() }); }
protected IEnumerable <IMailingTemplate> CreateTemplates(BulkEmail bulkEmail, BulkEmailMacroParser macroParser, IEnumerable <DCReplicaModel> replicasToProcess) { return(TemplateFactory.CreateInstances(UserConnection, bulkEmail, replicasToProcess, macroParser)); }