Action<Stream> RenderView(Template location, TemplateModel model) { return stream => { var result = engine.CreateView(new TemplateViewFolder(templates), location); using (var writer = new StreamWriter(stream)) { result.View.Bind(model); result.View.Execute(writer); writer.Flush(); } }; }
public TemplateViewResult CreateView(ITemplateViewFolder finder, Template template) { var viewPath = template.Folder; var viewName = template.Name; var searchedLocations = new List<string>(); var descriptorParams = new DescriptorParameters( viewPath, viewName, null, true, null); engine.ViewFolder = finder; var descriptor = descriptorBuilder.BuildDescriptor( descriptorParams, searchedLocations); if (descriptor == null) return new TemplateViewResult(searchedLocations); var entry = engine.CreateEntry(descriptor); var view = entry.CreateInstance() as TemplateView; return new TemplateViewResult(view); }
bool IsTemplateInPath(Template template, string path) { return repository.IsTemplateInPath(template, path); }
bool IsTemplateInFolder(Template template, string path) { return repository.IsTemplateInFolder(template, path); }
public virtual IDictionary<string, object> GetExtraParameters(Template template) { var extra = new Dictionary<string, object>(); foreach (var filter in Filters) { filter.ExtraParameters(template, extra); } return extra; }
public bool IsTemplateInPath(Template template, string path) { if (path.Contains(@"\")) path = path.Replace(@"\", "/"); return string.Compare(path, template.Path, StringComparison.InvariantCultureIgnoreCase) == 0; }
public TemplateViewFile(Template template) { this.template = template; }