public void handleAction_Xsl(string data, string xsltToUse) { //if (this.TmWebServices.tmAuthentication.sessionID. UserRole.ReadArticles var xstlFile = context.Server.MapPath("\\xslt\\" + xsltToUse); if (xstlFile.fileExists()) { var guid = tmWebServices.getGuidForMapping(data); if (guid != Guid.Empty) { var xmlContent = tmWebServices.XmlDatabase_GetGuidanceItemXml(guid); //.add_Xslt(xsltToUse); if (xmlContent.valid()) { //var xslTransform = new System.Xml.Xsl.XslTransform(); var xslTransform = new System.Xml.Xsl.XslCompiledTransform(); xslTransform.Load(xstlFile); var xmlReader = new System.Xml.XmlTextReader(new StringReader(xmlContent)); var xpathNavigator = new System.Xml.XPath.XPathDocument(xmlReader); var stringWriter = new StringWriter(); xslTransform.Transform(xpathNavigator, new System.Xml.Xsl.XsltArgumentList(), stringWriter); context.Response.ContentType = "text/html"; context.Response.Write(stringWriter.str()); var article = tmWebServices.GetGuidanceItemById(guid); switch (xsltToUse) { case "Notepad_Edit.xslt": tmWebServices.RBAC_Demand_EditArticles(); // will trigger an Security exception if the user if not authorized tmWebServices.logUserActivity("Edit Article (Notepad)", "{0} ({1})".format(article.Metadata.Title, guid)); break; case "TeamMentor_Article.xslt": tmWebServices.logUserActivity("View Article (xslt)", "{0} ({1})".format(article.Metadata.Title, guid)); break; case "JsCreole_Article.xslt": tmWebServices.logUserActivity("View Article (wiki)", "{0} ({1})".format(article.Metadata.Title, guid)); break; default: tmWebServices.logUserActivity("View Article ({0})", "{1} ({2})".format(xsltToUse, data, xsltToUse)); break; } endResponse(); } } else { transfer_Request("articleViewer"); // will trigger exception } } }