internal void UnmergeExternalData(string thisAddinId, Hashtable addinsToUnmerge) { NodeSet.UnmergeExternalData(thisAddinId, addinsToUnmerge); var todel = new List <ConditionTypeDescription> (); foreach (ConditionTypeDescription cond in Conditions) { if (cond.AddinId != thisAddinId && (addinsToUnmerge == null || addinsToUnmerge.Contains(cond.AddinId))) { todel.Add(cond); } } foreach (ConditionTypeDescription cond in todel) { Conditions.Remove(cond); } if (addinsToUnmerge == null) { Addins.Clear(); } else { foreach (string s in addinsToUnmerge.Keys) { Addins.Remove(s); } } if (thisAddinId != null && !Addins.Contains(thisAddinId)) { Addins.Add(thisAddinId); } }
internal void MergeWith(string thisAddinId, ExtensionPoint ep) { NodeSet.MergeWith(thisAddinId, ep.NodeSet); foreach (ConditionTypeDescription cond in ep.Conditions) { if (cond.AddinId != thisAddinId && !Conditions.Contains(cond)) { Conditions.Add(cond); } } foreach (string s in ep.Addins) { if (!Addins.Contains(s)) { Addins.Add(s); } } }