public void AddCompiledTemplateFile(string templateName, ViewModelTemplate file) { string content = file.GetSource(); Func <object, string> template = HandlebarsDotNet.Handlebars.Compile(content); Templates.AddMissing(templateName, template); }
/// <summary> /// This implementation returns the view model file id as the template name. /// </summary> /// <param name="request"></param> /// <returns></returns> protected override string GetTemplateName(IRequest request) { if (FileExists(request, out string absolutePath)) { FileInfo fileInfo = new FileInfo(absolutePath); ViewModelTemplate viewModelFile = new ViewModelTemplate { FileSystemPath = fileInfo.FullName }; viewModelFile.ParseActionProviderName(AppConf); return(viewModelFile.ViewModelId); } return(base.GetTemplateName(request)); }
protected override PageModel CreatePageModel(IRequest request) { if (FileExists(request, out string absolutePath)) { FileInfo fileInfo = new FileInfo(absolutePath); ViewModelTemplate viewModelFile = new ViewModelTemplate { FileSystemPath = fileInfo.FullName }; string relativeFilePath = $"{fileInfo.FullName.TruncateFront(AppRoot.Root.Length)}"; ViewModel viewModel = viewModelFile.Load(AppConf); PageModel pageModel = new PageModel(request, AppContentResponder) { ViewModel = viewModel }; viewModel.Url.RelativeFilePath = relativeFilePath; AddCompiledTemplateFile(GetTemplateName(request), viewModelFile); return(pageModel); } return(base.CreatePageModel(request)); }