/// <summary> /// Processes the template. /// </summary> /// <param name="templateName">Name of the template.</param> /// <param name="context">The context.</param> /// <param name="culture">The culture.</param> /// <returns>IProcessedTemplate.</returns> public IProcessedTemplate ProcessTemplate(string templateName, IDictionary <string, object> context, CultureInfo culture) { IProcessedTemplate returnMessage = new ProcessedTemplate(); var template = LoadTemplateFromRepository(templateName); if (template == null) { // TODO: write log that template was not found return(null); } var templateBody = template.Body; returnMessage.Subject = template.Subject; // get an appropriate language if (template.EmailTemplateLanguages.Any()) { var langTemplate = template.EmailTemplateLanguages.Where(t => t.LanguageCode == culture.Name) .OrderBy(t => t.Priority).FirstOrDefault(); if (langTemplate != null) { templateBody = langTemplate.Body; returnMessage.Subject = langTemplate.Subject; } } try { returnMessage.Type = (EmailTemplateTypes)Enum.Parse(typeof(EmailTemplateTypes), template.Type); switch (returnMessage.Type) { case EmailTemplateTypes.Xsl: returnMessage.Body = ProcessXslTemplate(templateBody, context); break; case EmailTemplateTypes.Html: returnMessage.Body = ProcessHtmlTemplate(templateBody, context); break; case EmailTemplateTypes.Razor: returnMessage.Body = ProcessRazorTemplate(templateBody, context); break; case EmailTemplateTypes.Text: returnMessage.Body = ProcessTextTemplate(templateBody, context); break; } } catch (Exception ex) { Trace.TraceError(ex.ToString()); } return(returnMessage); }
/// <summary> /// Processes the template. /// </summary> /// <param name="templateName">Name of the template.</param> /// <param name="context">The context.</param> /// <param name="culture">The culture.</param> /// <returns>IProcessedTemplate.</returns> public IProcessedTemplate ProcessTemplate(string templateName, IDictionary<string, object> context, CultureInfo culture) { IProcessedTemplate returnMessage = new ProcessedTemplate(); var template = LoadTemplateFromRepository(templateName); if (template == null) { // TODO: write log that template was not found return null; } var templateBody = template.Body; returnMessage.Subject = template.Subject; // get an appropriate language if (template.EmailTemplateLanguages.Any()) { var langTemplate = template.EmailTemplateLanguages.Where(t => t.LanguageCode == culture.Name) .OrderBy(t => t.Priority).FirstOrDefault(); if (langTemplate != null) { templateBody = langTemplate.Body; returnMessage.Subject = langTemplate.Subject; } } try { returnMessage.Type = (EmailTemplateTypes)Enum.Parse(typeof(EmailTemplateTypes), template.Type); switch (returnMessage.Type) { case EmailTemplateTypes.Xsl: returnMessage.Body = ProcessXslTemplate(templateBody, context); break; case EmailTemplateTypes.Html: returnMessage.Body = ProcessHtmlTemplate(templateBody, context); break; case EmailTemplateTypes.Text: returnMessage.Body = ProcessTextTemplate(templateBody, context); break; } } catch(Exception ex) { Trace.TraceError(ex.ToString()); } return returnMessage; }