protected virtual void RenderWithXslt(HtmlTextWriter writer) { // Get the model first to check if it's available var model = GetModel(); if (String.IsNullOrEmpty(Renderer)) { throw new InvalidOperationException("Renderer property is empty."); } var xsltTransform = PinnedXsltContext ?? Xslt.GetXslt(Renderer, false); var xsltArguments = GetXsltArgumentList(); var timer = Stopwatch.StartNew(); IXPathNavigable xml = null; bool withNav = false; PrepareXsltRendering(model); var contentModel = model as SenseNet.ContentRepository.Content; if (contentModel != null && SenseNet.ContentRepository.Content.ContentNavigatorEnabled) { withNav = true; xml = new SenseNet.ContentRepository.Xpath.NavigableContent(contentModel); } else { xml = GetXmlModel(model); if (xml == null) { xml = GetXmlModel(SerializeModel(model)); } if (xml == null) { throw new InvalidOperationException("Serialized model is of unknown type"); } } xsltTransform.Transform(xml, xsltArguments, writer); timer.Stop(); Debug.WriteLine(String.Format("#xslt> Rendering time with {0}: {1} ms ({2} ticks)", withNav ? "ContentNavigator" : "serialization", timer.ElapsedMilliseconds, timer.ElapsedTicks)); }
protected virtual void RenderWithXslt(HtmlTextWriter writer) { // Get the model first to check if it's available var model = GetModel(); if (String.IsNullOrEmpty(Renderer)) throw new InvalidOperationException("Renderer property is empty."); var xsltTransform = PinnedXsltContext ?? Xslt.GetXslt(Renderer, false); var xsltArguments = GetXsltArgumentList(); var timer = Stopwatch.StartNew(); IXPathNavigable xml = null; bool withNav = false; PrepareXsltRendering(model); var contentModel = model as SenseNet.ContentRepository.Content; if (contentModel != null && SenseNet.ContentRepository.Content.ContentNavigatorEnabled) { withNav = true; xml = new SenseNet.ContentRepository.Xpath.NavigableContent(contentModel); } else { xml = GetXmlModel(model); if (xml == null) xml = GetXmlModel(SerializeModel(model)); if (xml == null) throw new InvalidOperationException("Serialized model is of unknown type"); } xsltTransform.Transform(xml, xsltArguments, writer); timer.Stop(); Debug.WriteLine(String.Format("#xslt> Rendering time with {0}: {1} ms ({2} ticks)", withNav ? "ContentNavigator" : "serialization", timer.ElapsedMilliseconds, timer.ElapsedTicks)); }