Beispiel #1
0
        public static bool CompareCollectionsUsingSpecificLikeness
        <TSourceCollectionItem, TDestinationCollectionItem, TSourceCollectionItemSubType, TDestinationCollectionItemSubType>
        (
            this IEnumerable <TSourceCollectionItem> sourceCollection,
            IEnumerable <TDestinationCollectionItem> destCollection,
            Func <Likeness <TSourceCollectionItemSubType, TDestinationCollectionItemSubType>, Likeness <TSourceCollectionItemSubType, TDestinationCollectionItemSubType> > likenessDefFunc = null

        )
            where TSourceCollectionItemSubType : class, TSourceCollectionItem
            where TDestinationCollectionItemSubType : class, TDestinationCollectionItem
            where TSourceCollectionItem : class
            where TDestinationCollectionItem : class
        {
            return(CompareUtils.CompareCollectionsUsingLikeness(likenessDefFunc, sourceCollection, destCollection));
        }
Beispiel #2
0
        public static Likeness <TSource, TDestination> WithCollectionInnerSpecificLikeness
        <TSource, TDestination, TSourceProperty, TDestinationProperty, TSourcePropertySubType, TDestinationPropertySubType>
        (
            this Likeness <TSource, TDestination> likeness,
            Expression <Func <TDestination, IEnumerable <TDestinationProperty> > > propertyPicker,
            Expression <Func <TSource, IEnumerable <TSourceProperty> > > sourcePropertyPicker,
            Func <Likeness <TSourcePropertySubType, TDestinationPropertySubType>, Likeness <TSourcePropertySubType, TDestinationPropertySubType> > likenessDefFunc = null
        )
            where TSourcePropertySubType : class, TSourceProperty
            where TDestinationPropertySubType : class, TDestinationProperty
            where TSourceProperty : class
            where TDestinationProperty : class
        {
            return(likeness.With(propertyPicker)
                   .EqualsWhen((s, d) =>
            {
                DiagnosticsWriterLocator.DiagnosticsWriter.WriteMessage(String.Format("Comparing inner collections using likeness. Source: {0} Destination: {1}.", sourcePropertyPicker, propertyPicker));

                var sourceCollection = ExpressionUtils.GetValue(sourcePropertyPicker, s);
                var destCollection = ExpressionUtils.GetValue(propertyPicker, d);

                return CompareUtils.CompareCollectionsUsingLikeness(likenessDefFunc, sourceCollection, destCollection);
            }));
        }