Example #1
0
        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);
                }
            }
        }
Example #2
0
        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));
        }