public static void IsUnique <TOwnerVM, TItemVM>( this CollectionValidatorBuilder <TOwnerVM, TItemVM> builder, string errorMessage, object details = null ) where TOwnerVM : IViewModel where TItemVM : IViewModel { IsUnique( builder, x => x, errorMessage, details ); }
public static void IsUnique <TOwnerVM, TItemDescriptor, T>( this CollectionValidatorBuilder <TOwnerVM, TItemDescriptor, T> builder, // TODO string errorMessage, object details = null ) where TOwnerVM : IViewModel where TItemDescriptor : IVMDescriptor { builder.Custom <IViewModel <TItemDescriptor> >((args) => { args .Items .GroupBy(x => x.Kernel.GetValue(args.TargetProperty)) .Where(g => g.Count() > 1) .SelectMany(g => g) .ForEach(item => { args.AddError(item, errorMessage, details); }); }); }
public static void IsUnique <TOwnerVM, TItemVM, TKey>( this CollectionValidatorBuilder <TOwnerVM, TItemVM> builder, Func <TItemVM, TKey> keySelector, string errorMessage, object details = null ) where TOwnerVM : IViewModel where TItemVM : IViewModel { builder.Custom(args => { args .Items .GroupBy(keySelector) .Where(g => g.Count() > 1) .SelectMany(g => g) .ForEach(item => { args.AddError(item, errorMessage, details); }); }); }