private IEnumerable <EmailMessage> GetEmailMessages( long templateId, IEnumerable <RecipientData> recipients, EventDataForEntity data, IReadOnlyDictionary <string, FileHolder[]> files, long?userId, EventType type) { var application = _applications.Get(data.EntityId); foreach (var recipient in recipients) { var localization = _templates.GetLocalization(templateId, recipient.Culture); if (localization == null) { continue; } var filesToSend = GetFiles(type, recipient, files); yield return(GetEmailMessage( recipient.Email, recipient.Culture, localization, application, data.Data, type, filesToSend, userId)); } }
private Dictionary<string, EmailTemplateLocalizationData> GetLocalizationData( EventDataForEntity eventData, IEnumerable<string> languages, long templateId) { return languages.ToDictionary( x => x, language => { var template = _templates.GetLocalization(templateId, language); var localizedData = _localizedHelper.Get(language, eventData); return new EmailTemplateLocalizationData { IsBodyHtml = template.IsBodyHtml, Subject = _textBuilder.GetText(template.Subject, language, localizedData), Body = _textBuilder.GetText(template.Body, language, localizedData) }; }); }