private static bool CheckCollectionOverride(object currentValue, object parentValue) { if (parentValue == null) { return(true); } else { var current = ((IEnumerable)currentValue).OfType <object>(); var parent = ((IEnumerable)parentValue).OfType <object>(); if (current.Count() != parent.Count()) { return(true); } else { foreach (var currentItem in current) { if (ActionRefComparer.CanHandle(currentItem)) // Il faudrait rendre la behavior modulaire pour gérer ce type de comportement spécifique { if (!parent.OfType <IReferentialActionLink>().Any(parentItem => ActionRefComparer.AreEquivalents(currentItem, parentItem))) { return(true); } } } return(false); } } }
private static bool CheckVectorObjectsOverride(object currentValue, object parentValue) { if (currentValue == null) { return(parentValue != null); } else if (ActionRefComparer.CanHandle(currentValue)) { return(!ActionRefComparer.AreEquivalents(currentValue, parentValue)); } return(!currentValue.Equals(parentValue)); }