public virtual void SaveChangeLog(ApplicationChangeLog changeLog, string outputPath) { var viewModel = new ApplicationChangeLogViewModel(m_Configuration, changeLog); var templateLoader = new FileSystemTemplateLoader(FileSystem); var templateContext = new TemplateContext() { TemplateLoader = templateLoader }; var rootScriptObject = new ScriptObject() { { "model", viewModel }, { "enumerable", new EnumerableFunctions() }, { "textelement", new TextElementFunctions() }, { "html_utilities", new HtmlUtilities() }, { "changelog", new ChangeLogFunctions() }, { "template_settings", TemplateSettings } }; templateContext.PushGlobal(rootScriptObject); try { var template = templateLoader.Load($"/main{TemplateFileExtension}"); var rendered = template.Render(templateContext); File.WriteAllText(outputPath, rendered); } catch (ScriptRuntimeException ex) { throw new TemplateExecutionException(ex.Message, ex); } }
public static ChangeLogEntryViewModel?FindEntry(ApplicationChangeLogViewModel model, GitId commit) { return(model.ChangeLogs.SelectMany(x => x.AllEntries).SingleOrDefault(x => x.Commit == commit)); }