public virtual IImportRecord Read(TextReader input) { XPathNavigator navigator = CreateNavigator(input); navigator.MoveToRoot(); if (!navigator.MoveToFirstChild()) { throw new DeserializationException("Expected root node 'n2' not found"); } int version = ReadExportVersion(navigator); if (2 != version) { throw new WrongVersionException("Invalid export version, expected 2 but was " + version); } var record = reader.Read(navigator); foreach (var item in record.ReadItems) { item.VersionOf.ValueAccessor = Persister.Repository.Get; } return(record); }
protected override ContentItem Deserialize(string xml) { if (string.IsNullOrEmpty(xml)) { throw new ArgumentNullException("xml"); } var doc = new XmlDocument(); doc.LoadXml(xml); var record = reader.Read(doc.CreateNavigator()); var parentRelation = record.UnresolvedLinks.FirstOrDefault(ul => ul.RelationType == "parent" && ul.ReferencingItem == record.RootItem); var item = record.RootItem; if (parentRelation != null && record.RootItem.Parent == null) { item.Parent = new UnresolvedRelation { ID = parentRelation.ReferencedItemID } } ; notifier.NotifiyCreated(item); return(item); }
private ContentItem Mangle(ContentItem item) { XPathNavigator navigator = SerializeAndReadOutput(item); IItemXmlReader reader = CreateReader(); return(reader.Read(navigator).RootItem); }
public void CanReReadBasicProperties() { XmlableItem item = CreateOneItem <XmlableItem>(1, "the item", null); XPathNavigator sr = SerializeAndReadOutput(item); IItemXmlReader reader = CreateReader(); ContentItem readItem = reader.Read(sr).RootItem; Assert.AreNotSame(item, readItem); Assert.AreEqual(typeof(XmlableItem), readItem.GetContentType()); Assert.AreEqual(1, readItem.ID); Assert.AreEqual("the item", readItem.Name); }
public virtual IImportRecord Read(TextReader input) { XPathNavigator navigator = CreateNavigator(input); navigator.MoveToRoot(); if (!navigator.MoveToFirstChild()) { throw new DeserializationException("Expected root node 'n2' not found"); } int version = ReadExportVersion(navigator); if (2 != version) { throw new WrongVersionException("Invalid export version, expected 2 but was " + version); } return(_reader.Read(navigator)); }
public void CanReReadProperties_WithStrangeCharacters() { string weirdo = "<[{zuuuuagh}]> & co?!=!"; XmlableItem item = CreateOneItem <XmlableItem>(1, "<[{zuuuuagh}]> co!=!", null); item.Title = weirdo; item.ZoneName = weirdo; item.SavedBy = weirdo; XPathNavigator sr = SerializeAndReadOutput(item); IItemXmlReader reader = CreateReader(); ContentItem readItem = reader.Read(sr).RootItem; Assert.AreNotSame(item, readItem); Assert.AreEqual(typeof(XmlableItem), readItem.GetContentType()); Assert.AreEqual(1, readItem.ID); Assert.AreEqual("<[{zuuuuagh}]> co!=!", readItem.Name); Assert.AreEqual(weirdo, readItem.Title); Assert.AreEqual(weirdo, readItem.ZoneName); Assert.AreEqual(weirdo, readItem.SavedBy); }