Пример #1
0
        public ActionResult Item(int id)
        {
            var item = _repository.Get(id);

            if (item != null)
            {
                try
                {
                    var itemXmlWriter = new ItemXmlWriter(Context.Current.Definitions, null, null);
                    var exporter      = new Exporter(itemXmlWriter);
                    var ms            = new MemoryStream();
                    var tw            = new StreamWriter(ms);
                    {
                        exporter.Export(item, ExportOptions.ExcludeAttachments | ExportOptions.ExcludePages, tw);
                    }
                    ms.Position = 0;
                    return(new FileStreamResult(ms, "application/xml"));
                }
                catch (Exception ex)
                {
                    return(Content(ex.Message, "text/plain"));
                }
            }

            return(new EmptyResult());
        }
Пример #2
0
 public virtual void TestFixtureSetUp()
 {
     definitions = TestSupport.SetupDefinitions(typeof(Definitions.PersistableItem), typeof(Definitions.PersistablePart));
     writer      = new ItemXmlWriter(
         definitions,
         TestSupport.SetupFileSystem());
     reader = new ItemXmlReader(
         definitions,
         TestSupport.SetupContentActivator());
 }
        public void ExportItem(ContentItem item)
        {
            // no UrlParser and FS -> cannot export Attachments
            var itemXmlWriter = new ItemXmlWriter(_definitions, null, null);
            var exporter      = new Exporter(itemXmlWriter);
            var path          = _path + '/' + GetContentItemFilenameUnique(item.ID);

            using (var ms = new MemoryStream())
            {
                using (var tw = new StreamWriter(ms))
                {
                    lock (_syncLock)
                    {
                        // Nhibernate doesn't like parallel ?
                        exporter.Export(item, ExportOptions.ExcludeAttachments | ExportOptions.ExcludePages, tw);
                    }
                    // Save to FS
                    ms.Position = 0;
                    _fs.WriteFile(path, ms, item.Published);
                }
            }
        }
Пример #4
0
        private XPathNavigator WriteToStreamAndNavigate(ContentItem item)
        {
            ItemXmlWriter writer = CreateWriter();
            StringBuilder sb     = new StringBuilder();
            StringWriter  sw     = new StringWriter(sb);

            XmlTextWriter xmlOutput = new XmlTextWriter(sw);

            xmlOutput.Formatting = Formatting.Indented;
            xmlOutput.WriteStartDocument();
            xmlOutput.WriteStartElement("n2");

            writer.Write(item, ExportOptions.Default, xmlOutput);

            xmlOutput.WriteEndElement();
            xmlOutput.WriteEndDocument();

            XmlDocument xd = new XmlDocument();

            xd.LoadXml(sb.ToString());

            return(xd.CreateNavigator());
        }