Welcome to the navigation

Tempor exercitation velit adipisicing ipsum ea lorem qui fugiat anim eu laboris nisi sint laborum, aliquip commodo voluptate cillum do minim ut est veniam, nostrud. Ipsum ut aute ut elit, in eiusmod id fugiat non aliqua, excepteur anim laborum, dolor culpa quis lorem duis esse laboris cillum sed proident, irure

Yeah, this will be replaced... But please enjoy the search!

Programmatically register a display template in EPiServer Commerce [Snippet]

This is quite simple and follow the general behind the scenes pattern Mediachase use.

Expected result

To programmatically register template references in the commerce manager

Code

// Get all templates
Mediachase.Cms.Dto.TemplateDto templateDto = Mediachase.Cms.Managers.DictionaryManager.GetTemplateDto();

string newTemplateName = "PromotionTemplate";
string newTemplateFriendlyName = "Promotion Template";

// Check if the template exist
if (!templateDto.main_Templates.Any(x => x.Name.Equals(newTemplateName, StringComparison.InvariantCultureIgnoreCase)))
{
    // Create empty template dto
    templateDto = new Mediachase.Cms.Dto.TemplateDto();
    Mediachase.Cms.Dto.TemplateDto.main_TemplatesRow row = null;

    row = templateDto.main_Templates.Newmain_TemplatesRow();
    row.ApplicationId = Mediachase.Cms.CmsConfiguration.Instance.ApplicationId;

    row.Name = newTemplateName;
    row.FriendlyName = newTemplateFriendlyName;
    row.Path = string.Format("~/Templates/DisplayTemplates/{0}.ascx", newTemplateName);
    row.TemplateType = "Entry";
    row.LanguageCode = "en-us";

    if (row.RowState == DataRowState.Detached)
        templateDto.main_Templates.Rows.Add(row);

    // Save any changes
    if (templateDto.HasChanges())
        Mediachase.Cms.Managers.DictionaryManager.SaveTemplateDto(templateDto);
}