static public Microsoft.Samples.FeedSync.FeedItemNode CreateFromXmlElement(Microsoft.Samples.FeedSync.Feed i_Feed, System.Xml.XmlElement i_ItemXmlElement) { if (i_ItemXmlElement.OwnerDocument != i_Feed.XmlDocument) i_ItemXmlElement = (System.Xml.XmlElement)i_Feed.XmlDocument.ImportNode(i_ItemXmlElement, true); Microsoft.Samples.FeedSync.FeedItemNode FeedItemNode = new Microsoft.Samples.FeedSync.FeedItemNode ( i_Feed, i_ItemXmlElement ); return FeedItemNode; }
static public Microsoft.Samples.FeedSync.FeedItemNode CreateNewFromXmlElement(Microsoft.Samples.FeedSync.Feed i_Feed, System.Xml.XmlElement i_ItemXmlElement, string i_SyncNodeID) { // First create an element that works in this document System.Xml.XmlElement ImportedItemXmlElement = (System.Xml.XmlElement)i_Feed.XmlDocument.ImportNode(i_ItemXmlElement, true); Microsoft.Samples.FeedSync.FeedItemNode FeedItemNode = new Microsoft.Samples.FeedSync.FeedItemNode ( i_Feed, ImportedItemXmlElement, i_SyncNodeID ); return FeedItemNode; }
static public Microsoft.Samples.FeedSync.FeedItemNode CreateNewFromXmlElement(Microsoft.Samples.FeedSync.Feed i_Feed, System.Xml.XmlElement i_ItemXmlElement, string i_SyncNodeID, int i_Sequence, System.DateTime? i_WhenDateTime, string i_By, bool i_Deleted, bool i_NoConflicts, int i_Updates) { // First create an element that works in this document System.Xml.XmlElement ImportedItemXmlElement = (System.Xml.XmlElement)i_Feed.XmlDocument.ImportNode(i_ItemXmlElement, true); Microsoft.Samples.FeedSync.FeedItemNode FeedItemNode = new Microsoft.Samples.FeedSync.FeedItemNode ( i_Feed, ImportedItemXmlElement, i_SyncNodeID, i_Sequence, i_WhenDateTime, i_By, i_Deleted, i_NoConflicts, i_Updates ); return FeedItemNode; }
private SyncNode(Microsoft.Samples.FeedSync.FeedItemNode i_FeedItemNode, System.Xml.XmlElement i_SyncNodeXmlElement) { m_FeedItemNode = i_FeedItemNode; m_XmlElement = i_SyncNodeXmlElement; m_ID = m_XmlElement.GetAttribute(Microsoft.Samples.FeedSync.Constants.ID_ATTRIBUTE); m_Updates = System.Convert.ToInt32(m_XmlElement.GetAttribute(Microsoft.Samples.FeedSync.Constants.UPDATES_ATTRIBUTE)); if (m_XmlElement.HasAttribute(Microsoft.Samples.FeedSync.Constants.DELETED_ATTRIBUTE)) m_Deleted = (m_XmlElement.GetAttribute(Microsoft.Samples.FeedSync.Constants.DELETED_ATTRIBUTE) == "true"); if (m_XmlElement.HasAttribute(Microsoft.Samples.FeedSync.Constants.NO_CONFLICTS_ATTRIBUTE)) m_NoConflicts = (m_XmlElement.GetAttribute(Microsoft.Samples.FeedSync.Constants.NO_CONFLICTS_ATTRIBUTE) == "true"); string XPathQuery = System.String.Format ( "{0}:{1}", m_FeedItemNode.Feed.FeedSyncNamespacePrefix, Microsoft.Samples.FeedSync.Constants.HISTORY_ELEMENT_NAME ); System.Xml.XmlNodeList HistoryNodeList = i_SyncNodeXmlElement.SelectNodes ( XPathQuery, i_FeedItemNode.Feed.XmlNamespaceManager ); foreach (System.Xml.XmlElement HistoryNodeXmlElement in HistoryNodeList) { Microsoft.Samples.FeedSync.HistoryNode HistoryNode = Microsoft.Samples.FeedSync.HistoryNode.CreateFromXmlElement ( this, HistoryNodeXmlElement ); m_HistoryNodeList.Add(HistoryNode); } if (!m_NoConflicts) { XPathQuery = System.String.Format ( "{0}:{1}", m_FeedItemNode.Feed.FeedSyncNamespacePrefix, Microsoft.Samples.FeedSync.Constants.CONFLICTS_ELEMENT_NAME ); m_ConflictsNodeXmlElement = (System.Xml.XmlElement)i_SyncNodeXmlElement.SelectSingleNode ( XPathQuery, m_FeedItemNode.Feed.XmlNamespaceManager ); if (m_ConflictsNodeXmlElement != null) { System.Xml.XmlNodeList FeedItemXmlNodeList = m_ConflictsNodeXmlElement.SelectNodes ( m_FeedItemNode.Feed.FeedItemXPathQuery, m_FeedItemNode.Feed.XmlNamespaceManager ); foreach (System.Xml.XmlElement ConflictFeedItemNodeXmlElement in FeedItemXmlNodeList) { Microsoft.Samples.FeedSync.FeedItemNode ConflictFeedItemNode = this.CreateConflictItemNodeFromXmlElement(ConflictFeedItemNodeXmlElement); string Key = System.String.Format ( "{0}{1}{2}", ConflictFeedItemNode.SyncNode.Updates, ConflictFeedItemNode.SyncNode.TopMostHistoryNode.Sequence, ConflictFeedItemNode.SyncNode.TopMostHistoryNode.By ); if (ConflictFeedItemNode.SyncNode.TopMostHistoryNode.WhenDateTime != null) Key += ((System.DateTime)ConflictFeedItemNode.SyncNode.TopMostHistoryNode.WhenDateTime); if (!m_ConflictNodeList.ContainsKey(Key)) m_ConflictNodeList.Add(Key, ConflictFeedItemNode); } } } }