object BuildModel(CommonViewModel model, string page, ICollection<string> stylesheets, ICollection<string> scripts) { if (model == null) throw new ArgumentNullException("model"); if (stylesheets == null) throw new ArgumentNullException("stylesheets"); if (scripts == null) throw new ArgumentNullException("scripts"); var applicationPath = new Uri(model.SiteUrl).AbsolutePath; if (applicationPath.EndsWith("/")) applicationPath = applicationPath.Substring(0, applicationPath.Length - 1); var json = Newtonsoft.Json.JsonConvert.SerializeObject(model, Newtonsoft.Json.Formatting.None, new Newtonsoft.Json.JsonSerializerSettings() { ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() } ); var additionalStylesheets = BuildTags("<link href='{0}' rel='stylesheet'>", applicationPath, stylesheets); var additionalScripts = BuildTags("<script src='{0}'></script>", applicationPath, scripts); return new { siteName = model.SiteName, applicationPath, model = json, page, stylesheets = additionalStylesheets, scripts = additionalScripts }; }
protected virtual Task<Stream> Render(CommonViewModel model, string page, string clientName = null) { var html = AssetManager.LoadLayoutWithPage(page); var data = BuildModel(model, page, _config.Stylesheets, _config.Scripts); html = AssetManager.Format(html, data); return Task.FromResult(ToStream(html)); }
protected virtual Task<Stream> Render(CommonViewModel model, string page) { string html = this.config.GetLoader().Load(page); var data = BuildModel(model, page, config.Stylesheets, config.Scripts); html = AssetManager.Format(html, data); return Task.FromResult(html.ToStream()); }
protected virtual Task<System.IO.Stream> Render(CommonViewModel model, string page, string clientName = null) { var json = Newtonsoft.Json.JsonConvert.SerializeObject(model, Newtonsoft.Json.Formatting.None, new Newtonsoft.Json.JsonSerializerSettings() { ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver() }); string html = LoadHtml(page); html = Replace(html, new { siteName = Microsoft.Security.Application.Encoder.HtmlEncode(model.SiteName), model = Microsoft.Security.Application.Encoder.HtmlEncode(json), clientName = clientName }); return Task.FromResult(StringToStream(html)); }
object BuildModel(CommonViewModel model, string page, ICollection<string> stylesheets, ICollection<string> scripts) { if (model == null) throw new ArgumentNullException("model"); if (stylesheets == null) throw new ArgumentNullException("stylesheets"); if (scripts == null) throw new ArgumentNullException("scripts"); var applicationPath = new Uri(model.SiteUrl).AbsolutePath; if (applicationPath.EndsWith("/")) applicationPath = applicationPath.Substring(0, applicationPath.Length - 1); var json = Newtonsoft.Json.JsonConvert.SerializeObject(model, Newtonsoft.Json.Formatting.None, settings); var additionalStylesheets = BuildTags("<link href='{0}' rel='stylesheet'>", applicationPath, stylesheets); var additionalScripts = BuildTags("<script src='{0}'></script>", applicationPath, scripts); return new { siteName = Microsoft.Security.Application.Encoder.HtmlEncode(model.SiteName), applicationPath, model = Microsoft.Security.Application.Encoder.HtmlEncode(json), page, stylesheets = additionalStylesheets, scripts = additionalScripts }; }