Exemplo n.º 1
0
        public static string GenerateEmailBody(MailTemplateTypes templateType, string subject, object model)
        {
            var templateContent = TemplatePath(templateType);

            
            var viewbag = new DynamicViewBag();
            
            //viewbag.AddValue("Url", Url);

            string templateCacheName = $"{templateType}-{subject}";
            
            
            var body = Engine.Razor.IsTemplateCached(templateCacheName, null)
                ? Engine.Razor.Run(templateCacheName, null, model, viewbag)
                : Engine.Razor.RunCompile(templateContent, templateCacheName, null, model, viewbag);


            return body;
        }
Exemplo n.º 2
0
        private static string TemplatePath(MailTemplateTypes templateType)
        {
            var assembly = Assembly.GetExecutingAssembly();

            //  var imageStream = assembly.GetManifestResourceStream("ClientImport.Infrastructure.Messaging.pagebanner.jpg");
            string templatePath;
            switch (templateType)
            {
                case MailTemplateTypes.Success:
                    var rawFile = assembly.GetManifestResourceStream("ClientImport.Infrastructure.Messaging.Templates.SuccessTemplate.html");
                    var reader = new StreamReader(rawFile);
                    string result = reader.ReadToEnd();
                    return result;
                    
                case MailTemplateTypes.MissingOrganizations:
                    rawFile = assembly.GetManifestResourceStream("ClientImport.Infrastructure.Messaging.Templates.MissingMapping.html");
                    reader = new StreamReader(rawFile);
                    result = reader.ReadToEnd();
                    return result;
                case MailTemplateTypes.MultipleOrganizatonMatches:
                    rawFile = assembly.GetManifestResourceStream("ClientImport.Infrastructure.Messaging.Templates.MultipleMatches.html");
                    reader = new StreamReader(rawFile);
                    result = reader.ReadToEnd();
                    return result;
                default:
                    throw new ArgumentOutOfRangeException(nameof(templateType), templateType, null);
            }
           
        }
Exemplo n.º 3
0
        public void SendMailFromTemplate(MailTemplateTypes templateType, string toEmail, string subject, object model)
        {
            if (SuppressEmailMessages) return;

            var body = GenerateEmailBody(templateType, subject, model);

            try
            {
                SendEmail(toEmail, subject, body, null);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                throw;
            }



        }