internal void RefactorActionPropertyRemoved(Property item) { if (item.PropertyType == PropertyType.Attribute) { DynamicEntityValues.Remove(item.Name); } else { DynamicEntityLinks.Remove(item.Name); } }
internal void RefactorActionPropertyRenamed(string oldname, Property item, MergeAlgorithm mergeAlgorithm = MergeAlgorithm.NotApplicable) { if (item.PropertyType == PropertyType.Attribute) { switch (mergeAlgorithm) { case MergeAlgorithm.NotApplicable: case MergeAlgorithm.ThrowOnConflict: { object?oldvalue; if (DynamicEntityValues.TryGetValue(oldname, out oldvalue)) { DynamicEntityValues.Add(item.Name, oldvalue); DynamicEntityValues.Remove(oldname); } break; } case MergeAlgorithm.PreferSource: { object?oldvalue; if (DynamicEntityValues.TryGetValue(oldname, out oldvalue)) { if (DynamicEntityValues.ContainsKey(item.Name)) { DynamicEntityValues[item.Name] = oldvalue; } else { DynamicEntityValues.Add(item.Name, oldvalue); } DynamicEntityValues.Remove(oldname); } break; } case MergeAlgorithm.PreferTarget: { if (!DynamicEntityValues.ContainsKey(item.Name)) { object?oldvalue; if (DynamicEntityValues.TryGetValue(oldname, out oldvalue)) { DynamicEntityValues.Add(item.Name, oldvalue); DynamicEntityValues.Remove(oldname); } } break; } default: throw new NotImplementedException(); } } else { switch (mergeAlgorithm) { case MergeAlgorithm.NotApplicable: case MergeAlgorithm.ThrowOnConflict: { EntityCollectionBase <DynamicEntity>?oldvalue; if (DynamicEntityLinks.TryGetValue(oldname, out oldvalue)) { DynamicEntityLinks.Add(item.Name, oldvalue); DynamicEntityLinks.Remove(oldname); } break; } case MergeAlgorithm.PreferSource: { EntityCollectionBase <DynamicEntity>?oldvalue; if (DynamicEntityLinks.TryGetValue(oldname, out oldvalue)) { if (DynamicEntityLinks.ContainsKey(item.Name)) { DynamicEntityLinks[item.Name] = oldvalue; } else { DynamicEntityLinks.Add(item.Name, oldvalue); } DynamicEntityLinks.Remove(oldname); } break; } case MergeAlgorithm.PreferTarget: { if (!DynamicEntityLinks.ContainsKey(item.Name)) { EntityCollectionBase <DynamicEntity>?oldvalue; if (DynamicEntityLinks.TryGetValue(oldname, out oldvalue)) { DynamicEntityLinks.Add(item.Name, oldvalue); DynamicEntityLinks.Remove(oldname); } } break; } default: throw new NotImplementedException(); } } }