示例#1
0
        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.");
                }
            }
        }
示例#2
0
 private Task GetWriteTask(Stream writeStream, Mvc5RQ.Models.RQItem value)
 {
     return(new Task(() =>
                     WriteXhtmlItem(value, writeStream)));
 }