public virtual object CloneWithCounterparts(ICollectionSource sourceProvider, object originalMap, IReflectClass claxx, ICounterpartFinder elementCloner) { IDictionary original = (IDictionary)originalMap; IDictionary result = (IDictionary)EmptyClone(sourceProvider, original, claxx); CopyState(original, result, elementCloner); return result; }
public virtual void CopyState(object original, object destination, ICounterpartFinder counterpartFinder) { if (_mapHandler.CanHandle(original)) { _mapHandler.CopyState(original, destination, counterpartFinder); } else { ReplicationPlatform.CopyCollectionState(original, destination, counterpartFinder); } }
public static void CopyCollectionState(object original, object destination, ICounterpartFinder counterpartFinder) { IEnumerable originalCollection = (IEnumerable )original; ICollectionInitializer destinationCollection = CollectionInitializer.For(destination); destinationCollection.Clear(); foreach (object element in originalCollection) { object counterpart = counterpartFinder.FindCounterpart(element); destinationCollection.Add(counterpart); } }
public virtual void CopyState(object original, object destination, ICounterpartFinder counterpartFinder) { IDictionary originalMap = (IDictionary)original; IDictionary destinationMap = (IDictionary)destination; destinationMap.Clear(); IEnumerator it = originalMap.GetEnumerator(); while (it.MoveNext()) { DictionaryEntry entry = (DictionaryEntry)it.Current; object keyClone = counterpartFinder.FindCounterpart(entry.Key); object valueClone = counterpartFinder.FindCounterpart(entry.Value); destinationMap[keyClone] = valueClone; } }
public virtual object CloneWithCounterparts(ICollectionSource sourceProvider, object originalCollection, IReflectClass claxx, ICounterpartFinder counterpartFinder) { if (_mapHandler.CanHandleClass(claxx)) { return _mapHandler.CloneWithCounterparts(sourceProvider, originalCollection, claxx , counterpartFinder); } ICollection original = (ICollection)originalCollection; ICollection result = (ICollection)EmptyClone(sourceProvider, originalCollection, claxx); CopyState(original, result, counterpartFinder); return result; }
public virtual object CloneWithCounterparts(ICollectionSource sourceProvider, object originalCollection, IReflectClass claxx, ICounterpartFinder counterpartFinder) { if (_mapHandler.CanHandleClass(claxx)) { return(_mapHandler.CloneWithCounterparts(sourceProvider, originalCollection, claxx , counterpartFinder)); } ICollection original = (ICollection)originalCollection; ICollection result = (ICollection)EmptyClone(sourceProvider, originalCollection, claxx); CopyState(original, result, counterpartFinder); return(result); }
public virtual object CloneWithCounterparts(ICollectionSource sourceProvider, object originalMap, IReflectClass claxx, ICounterpartFinder elementCloner) { IDictionary original = (IDictionary)originalMap; IDictionary result = (IDictionary)EmptyClone(sourceProvider, original, claxx); CopyState(original, result, elementCloner); return(result); }