コード例 #1
0
ファイル: FeedItemNode.cs プロジェクト: xxjeng/nuxleus
        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;
        }
コード例 #2
0
ファイル: FeedItemNode.cs プロジェクト: xxjeng/nuxleus
        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;
        }
コード例 #3
0
ファイル: FeedItemNode.cs プロジェクト: xxjeng/nuxleus
        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;
        }
コード例 #4
0
ファイル: SyncNode.cs プロジェクト: xxjeng/nuxleus
        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);
                    }
                }
            }
        }