Example #1
0
        private void sync(XmlDocument xDoc, XmlNode node, TreeElement element)
        {
            if (element.Equality == Equality.ToLeft)
            {
                if (fromR)
                {
                    insertChildNodes(xDoc, node, element);
                    foreach (var treeAtr in element.Attributes)
                    {
                        var atr = xDoc.CreateAttribute(treeAtr.Name);
                        atr.Value = treeAtr.Right;
                        node.Attributes.Append(atr);
                    }
                    if (element.RightText != null)
                    {
                        var textChild = xDoc.CreateTextNode(element.RightText);
                        node.AppendChild(textChild);
                    }
                }
                return;
            }


            if (element.Equality == Equality.ToRight)
            {
                if (fromL)
                {
                    insertChildNodes(xDoc, node, element);
                    foreach (var treeAtr in element.Attributes)
                    {
                        var atr = xDoc.CreateAttribute(treeAtr.Name);
                        atr.Value = treeAtr.Left;
                        node.Attributes.Append(atr);
                    }
                    if (element.LeftText != null)
                    {
                        var textChild = xDoc.CreateTextNode(element.LeftText);
                        node.AppendChild(textChild);
                    }
                }
                return;
            }
            if (element.Equality != Equality.NotEqual)
            {
                insertChildNodes(xDoc, node, element);
                foreach (var treeAtr in element.Attributes)
                {
                    var atr = xDoc.CreateAttribute(treeAtr.Name);
                    atr.Value = treeAtr.Left;
                    node.Attributes.Append(atr);
                }
                if (element.LeftText != null)
                {
                    var textChild = xDoc.CreateTextNode(element.LeftText);
                    node.AppendChild(textChild);
                }
                return;
            }
            if (!Unequal)
            {
                return;
            }

            insertChildNodes(xDoc, node, element);
            foreach (var treeAtr in element.Attributes)
            {
                if (treeAtr.Equality == Equality.ToLeft && UnequalFromLeft)
                {
                    continue;
                }
                if (treeAtr.Equality == Equality.ToRight && !UnequalFromLeft)
                {
                    continue;
                }
                var atr = xDoc.CreateAttribute(treeAtr.Name);
                atr.Value = UnequalFromLeft ? treeAtr.Left : treeAtr.Right;
                node.Attributes.Append(atr);
            }
            if (element.LeftText != null)
            {
                var textChild = xDoc.CreateTextNode(UnequalFromLeft ? element.LeftText : element.RightText);
                node.AppendChild(textChild);
            }
            return;
        }
Example #2
0
 public SyncDialog(TreeElement toSave)
 {
     InitializeComponent();
     TreeElement = toSave;
 }