示例#1
0
 private static void GetOldAndNewValues(IXmlChange xmlChange, out string property, out string oldValue, out string newValue)
 {
     if (xmlChange.Action == XObjectChange.Name)
     {
         var nodeNameChange = xmlChange as IXmlNodeNameChange;
         newValue = nodeNameChange.NewName.LocalName;
         oldValue = nodeNameChange.OldName.LocalName;
         property = string.Empty;
     }
     else if (xmlChange.Action == XObjectChange.Value)
     {
         var nodeValueChange = xmlChange as IXmlNodeValueChange;
         var xattr           = nodeValueChange.Node as XAttribute;
         Debug.Assert(xattr != null);
         property = xattr.Name.LocalName;
         newValue = nodeValueChange.NewValue;
         oldValue = nodeValueChange.OldValue;
     }
     else
     {
         newValue = String.Empty;
         oldValue = String.Empty;
         property = String.Empty;
     }
 }
示例#2
0
 public ExternalXMLModelChange(IXmlChange xmlChange, ExpectEFObjectParentForXObject assertDelegate)
 {
     _xmlChange       = xmlChange;
     _changedEFObject = ModelItemAnnotation.GetModelItem(_xmlChange.Node);
     _expectEFObjectParentForXObject = assertDelegate;
     ResolveParentEFObject();
 }
        private IXmlChange GetXmlChange(XmlModelChange modelChange)
        {
            IXmlChange result = null;

            if (_changeMap.TryGetValue(modelChange, out result))
            {
                return(result);
            }

            if (result == null)
            {
                var addChange = modelChange as AddNodeChange;
                if (addChange != null)
                {
                    result = new VSXmlAddNodeChange(addChange);
                }
            }

            if (result == null)
            {
                var removeChange = modelChange as RemoveNodeChange;
                if (removeChange != null)
                {
                    result = new VSXmlRemoveNodeChange(removeChange);
                }
            }

            if (result == null)
            {
                var nodeNameChange = modelChange as NodeNameChange;
                if (nodeNameChange != null)
                {
                    result = new VSXmlNodeNameChange(nodeNameChange);
                }
            }

            if (result == null)
            {
                var nodeValueChange = modelChange as NodeValueChange;
                if (nodeValueChange != null)
                {
                    result = new VSXmlNodeValueChange(nodeValueChange);
                }
            }

            if (result != null)
            {
                _changeMap[modelChange] = result;
            }

            return(result);
        }
示例#4
0
        private static EfiChange.EfiChangeType GetChangeType(IXmlChange xmlChange)
        {
            switch (xmlChange.Action)
            {
            case XObjectChange.Add:
                return(EfiChange.EfiChangeType.Create);

            case XObjectChange.Remove:
                return(EfiChange.EfiChangeType.Delete);

            case XObjectChange.Name:
            case XObjectChange.Value:
                return(EfiChange.EfiChangeType.Update);

            default:
                Debug.Assert(false, "Unexpected type of XObjectChange");
                return(EfiChange.EfiChangeType.Update);
            }
        }
示例#5
0
 private static void GetOldAndNewValues(IXmlChange xmlChange, out string property, out string oldValue, out string newValue)
 {
     if (xmlChange.Action == XObjectChange.Name)
     {
         var nodeNameChange = xmlChange as IXmlNodeNameChange;
         newValue = nodeNameChange.NewName.LocalName;
         oldValue = nodeNameChange.OldName.LocalName;
         property = string.Empty;
     }
     else if (xmlChange.Action == XObjectChange.Value)
     {
         var nodeValueChange = xmlChange as IXmlNodeValueChange;
         var xattr = nodeValueChange.Node as XAttribute;
         Debug.Assert(xattr != null);
         property = xattr.Name.LocalName;
         newValue = nodeValueChange.NewValue;
         oldValue = nodeValueChange.OldValue;
     }
     else
     {
         newValue = String.Empty;
         oldValue = String.Empty;
         property = String.Empty;
     }
 }
示例#6
0
 private static EfiChange.EfiChangeType GetChangeType(IXmlChange xmlChange)
 {
     switch (xmlChange.Action)
     {
         case XObjectChange.Add:
             return EfiChange.EfiChangeType.Create;
         case XObjectChange.Remove:
             return EfiChange.EfiChangeType.Delete;
         case XObjectChange.Name:
         case XObjectChange.Value:
             return EfiChange.EfiChangeType.Update;
         default:
             Debug.Assert(false, "Unexpected type of XObjectChange");
             return EfiChange.EfiChangeType.Update;
     }
 }
示例#7
0
 public ExternalXMLModelChange(IXmlChange xmlChange, ExpectEFObjectParentForXObject assertDelegate)
 {
     _xmlChange = xmlChange;
     _changedEFObject = ModelItemAnnotation.GetModelItem(_xmlChange.Node);
     _expectEFObjectParentForXObject = assertDelegate;
     ResolveParentEFObject();
 }