RazorMailMessage.TemplateResolvers.DefaultTemplateResolver.ResolveTemplate C# (CSharp) Method

ResolveTemplate() public method

public ResolveTemplate ( string templateName, bool isPlainText ) : string
templateName string
isPlainText bool
return string
        public virtual string ResolveTemplate(string templateName, bool isPlainText)
        {
            if (string.IsNullOrWhiteSpace(templateName))
            {
                throw new ArgumentNullException("templateName");
            }

            var templateNameParts = templateName.Split('.').ToList();

            // Add assembly
            templateNameParts.Insert(0, _assemblyName);

            // Addname namespace
            if (!string.IsNullOrWhiteSpace(_nameSpace))
            {
                templateNameParts.Insert(1, _nameSpace);
            }

            // Add text to filename in case of text version
            if (isPlainText)
            {
                templateNameParts.Insert(templateNameParts.Count - 1, "text");
            }

            // Construct full resource name
            var fullResourceName = string.Join(".", templateNameParts);

            using (var template = _assembly.GetManifestResourceStream(fullResourceName))
            {
                if (template == null)
                {
                    return null;
                }

                using (var streamReader = new StreamReader(template))
                {
                    return streamReader.ReadToEnd();
                }
            }
        }

Usage Example

        public void CanResolveTemplateWithSpecificAssemblyNameAndSpecificNameSpace()
        {
            var templateResolver = new DefaultTemplateResolver("RazorMailMessage.Tests", "TestTemplates");

            var template = templateResolver.ResolveTemplate("TestTemplate.cshtml", false);
            var textTemplate = templateResolver.ResolveTemplate("TestTemplate.cshtml", true);
            var layout = templateResolver.ResolveLayout("TestLayout.cshtml");

            Assert.AreEqual("<b>This is a test</b>", template);
            Assert.AreEqual("This is a test", textTemplate);
            Assert.AreEqual("Start layout @RenderBody End layout", layout);
        }
All Usage Examples Of RazorMailMessage.TemplateResolvers.DefaultTemplateResolver::ResolveTemplate