private async Task WriteToStream(Stream outputStream, IViewEngine viewEngine, IPageViewDefinition viewDefinition) { using (var writer = new StreamWriter(outputStream)) { SourceLocation errorLocation = null; Exception error = null; try { viewDefinition.Render(viewEngine, writer); } catch (VeilParserException ex) { error = ex; errorLocation = ex.Location; } catch (VeilCompilerException ex) { error = ex; errorLocation = ex.Node.Location; } catch (Exception ex) { error = ex; } if (error != null) await GetErrorPage(writer, error, errorLocation).ConfigureAwait(false); } }
private async Task WritePageDefinition(IPageViewDefinition viewDefinition, PathInfo fileName) { using (var stream = new StreamWriter(_fileSystem.OpenWrite(fileName))) { var value = JsonConvert.SerializeObject(viewDefinition, Formatting.Indented); await stream.WriteAsync(value).ConfigureAwait(false); } }
public async Task<bool> UpdateViewDefinitionForId(string id, IPageViewDefinition viewDefinition) { var fileId = PathInfo.Create(id); if (!_fileSystem.FileExists(fileId)) return false; await WritePageDefinition(viewDefinition, fileId).ConfigureAwait(false); return true; }
protected HttpResponseMessage View(IViewEngine viewEngine, IPageViewDefinition siteDefinition) { var message = new HttpResponseMessage(HttpStatusCode.OK) { Content = new PushStreamContent((o, c, t) => WriteToStream(o, viewEngine, siteDefinition), new MediaTypeHeaderValue("text/html")) }; return message; }
protected HttpResponseMessage View(IViewEngine viewEngine, IPageViewDefinition siteDefinition) { var message = new HttpResponseMessage(HttpStatusCode.OK) { Content = new PushStreamContent((o, c, t) => WriteToStream(o, viewEngine, siteDefinition), new MediaTypeHeaderValue("text/html")) }; return(message); }
public bool TryGetFromViewId(string id, out IPageViewDefinition viewDefinition) { var fileId = PathInfo.Create(id); if (_fileSystem.FileExists(fileId)) { if (TryReadPageDefinition(out viewDefinition, fileId)) return true; } viewDefinition = null; return false; }
public bool TryGetFromView(string path, out IPageViewDefinition viewDefinition) { var fileName = _fileSystem.Path.ChangeExtension(_fileSystem.Path.Combine(_viewPathInfo, PathInfo.Create(path)), "html.json"); if (_fileSystem.FileExists(fileName)) { if (TryReadPageDefinition(out viewDefinition, fileName)) return true; } viewDefinition = null; return false; }
public async Task <bool> UpdateViewDefinitionForId(string id, IPageViewDefinition viewDefinition) { var fileId = PathInfo.Create(id); if (!_fileSystem.FileExists(fileId)) { return(false); } await WritePageDefinition(viewDefinition, fileId).ConfigureAwait(false); return(true); }
private static TemplateItemModel GetViews(string section, IPageViewDefinition pageViewDefinition) { var schemaUrl = "/web/viewdefinition_schema.json"; var dataUrl = string.Format("/{0}model/{1}", section, pageViewDefinition.Id); var templateUrl = string.Format("/{0}{1}", section, pageViewDefinition.Id); return(new TemplateItemModel { Text = pageViewDefinition.Id, Url = string.Format("/web/module?id={0}&app={1}", pageViewDefinition.Id, section), EditUrl = string.Format("/web/edit?schema={0}&data={1}&template={2}&id={4}&app={3}", schemaUrl, dataUrl, templateUrl, section, pageViewDefinition.Id), PageEditUrl = string.Format("/web/page_edit?id={0}&app={1}", pageViewDefinition.Id, section) }); }
private bool TryReadPageDefinition(out IPageViewDefinition viewDefinition, PathInfo fileName) { using (var reader = new JsonTextReader(new StreamReader(_fileSystem.OpenRead(fileName)))) { viewDefinition = Deserialize(reader); if (viewDefinition == null) return false; viewDefinition.Id = fileName.ToString(); return true; } }
private static TemplateItemModel GetViews(string section, IPageViewDefinition pageViewDefinition) { var schemaUrl = "/web/viewdefinition_schema.json"; var dataUrl = string.Format("/{0}model/{1}", section, pageViewDefinition.Id); var templateUrl = string.Format("/{0}{1}", section, pageViewDefinition.Id); return new TemplateItemModel { Text = pageViewDefinition.Id, Url = string.Format("/web/module?id={0}&app={1}", pageViewDefinition.Id, section), EditUrl = string.Format("/web/edit?schema={0}&data={1}&template={2}&id={4}&app={3}", schemaUrl, dataUrl, templateUrl, section, pageViewDefinition.Id), PageEditUrl = string.Format("/web/page_edit?id={0}&app={1}", pageViewDefinition.Id, section) }; }
public bool TryGetFromViewId(string id, out IPageViewDefinition viewDefinition) { var fileId = PathInfo.Create(id); if (_fileSystem.FileExists(fileId)) { if (TryReadPageDefinition(out viewDefinition, fileId)) { return(true); } } viewDefinition = null; return(false); }
public bool TryGetFromView(string path, out IPageViewDefinition viewDefinition) { var fileName = _fileSystem.Path.ChangeExtension(_fileSystem.Path.Combine(_viewPathInfo, PathInfo.Create(path)), "html.json"); if (_fileSystem.FileExists(fileName)) { if (TryReadPageDefinition(out viewDefinition, fileName)) { return(true); } } viewDefinition = null; return(false); }
private bool TryReadPageDefinition(out IPageViewDefinition viewDefinition, PathInfo fileName) { using (var reader = new JsonTextReader(new StreamReader(_fileSystem.OpenRead(fileName)))) { viewDefinition = Deserialize(reader); if (viewDefinition == null) { return(false); } viewDefinition.Id = fileName.ToString(); return(true); } }
private static async Task <string> CreateSiteHtml(IView view, IPageViewDefinition siteDefinition) { var pageHtmlBuilder = new StringBuilder(); using (var writer = new StringWriter(pageHtmlBuilder)) { var context = new RenderingContext(writer); context.Data.Add("pageEditor", true); context.Data.Add("siteDefinition", siteDefinition); view.Render(JObject.FromObject(siteDefinition), context); } var html = pageHtmlBuilder.ToString(); html = html.Replace("<!DOCTYPE html>", "").Replace("<html>", "").Replace("</html>", ""); html = new Regex("<head>(.*)</head>", RegexOptions.Singleline).Replace(html, ""); html = new Regex("<script( src[=]\".*\")?>(.*)</script>", RegexOptions.Singleline).Replace(html, ""); return(html); }
private async Task WriteToStream(Stream outputStream, IViewEngine viewEngine, IPageViewDefinition viewDefinition) { using (var writer = new StreamWriter(outputStream)) { SourceLocation errorLocation = null; Exception error = null; try { viewDefinition.Render(viewEngine, writer); } catch (VeilParserException ex) { error = ex; errorLocation = ex.Location; } catch (VeilCompilerException ex) { error = ex; errorLocation = ex.Node.Location; } catch (Exception ex) { error = ex; } if (error != null) { await GetErrorPage(writer, error, errorLocation).ConfigureAwait(false); } } }
private static async Task<string> CreateSiteHtml(IView view, IPageViewDefinition siteDefinition) { var pageHtmlBuilder = new StringBuilder(); using (var writer = new StringWriter(pageHtmlBuilder)) { var context = new RenderingContext(writer); context.Data.Add("pageEditor", true); context.Data.Add("siteDefinition", siteDefinition); view.Render(JObject.FromObject(siteDefinition), context); } var html = pageHtmlBuilder.ToString(); html = html.Replace("<!DOCTYPE html>", "").Replace("<html>", "").Replace("</html>", ""); html = new Regex("<head>(.*)</head>", RegexOptions.Singleline).Replace(html, ""); html = new Regex("<script( src[=]\".*\")?>(.*)</script>", RegexOptions.Singleline).Replace(html, ""); return html; }
private HttpResponseMessage Get(IPageViewDefinition data) { return(View(_viewEngine, data)); }
private HttpResponseMessage Get(IPageViewDefinition data) { return View(_viewEngine, data); }