private void WriteXhtmlItem(Mvc5RQ.Models.RQItem rqItem, Stream writeStream) { if (rqItem != null) { var dSer = new DataContractSerializer(typeof(Mvc5RQ.Models.RQItem)); try { System.IO.MemoryStream ms = new System.IO.MemoryStream(); var xTrf = new System.Xml.Xsl.XslCompiledTransform(); var xSet = new System.Xml.Xsl.XsltSettings(enableDocumentFunction: true, enableScript: true); dSer.WriteObject(ms, rqItem); System.IO.TextReader tr = new System.IO.StringReader(System.Text.Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Position)); xTrf.Load(rqItem.FormatPreprocessor.XmlTransformPath, xSet, new System.Xml.XmlUrlResolver()); xTrf.Transform(new System.Xml.XPath.XPathDocument(tr), rqItem.FormatPreprocessor.XslTransformArg, writeStream); } catch { throw new NotImplementedException("Could not find a RiQuest item with requested document number."); } } }
private Task GetWriteTask(Stream writeStream, Mvc5RQ.Models.RQItem value) { return(new Task(() => WriteXhtmlItem(value, writeStream))); }