public static DataSourceStandardStandard <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], ItemCountValidator <TValue>, UniqueValidator <TValue> > Unique <TSource, TValue>(this DataSourceStandard <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], ItemCountValidator <TValue> > source) => source.Add(new UniqueValidator <TValue>());
public static DataSourceStandardInverted <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], UniqueValidator <TValue>, TValueValidator> Not <TSource, TValue, TValueValidator>(this DataSourceStandard <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], UniqueValidator <TValue> > source, Func <DataSourceStandard <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], UniqueValidator <TValue> >, DataSourceStandardStandard <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], UniqueValidator <TValue>, TValueValidator> > validatorFactory) where TValueValidator : struct, IValueValidator <TValue[]> => validatorFactory.Invoke(source).InvertTwo();
public static DataSourceStandardStandard <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], ItemCountValidator <TValue>, CustomValidator <TValue[]> > Assert <TSource, TValue>(this DataSourceStandard <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], ItemCountValidator <TValue> > source, string description, Func <TValue[], bool> validator) => source.Add(new CustomValidator <TValue[]>(description, validator));
public static DataSourceStandardStandard <CollectionNullableDataContainerFactory <DefaultedNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue>[], Option <TValue>[], UniqueValidator <Option <TValue> >, CustomValidator <Option <TValue>[]> > Assert <TSource, TValue>(this DataSourceStandard <CollectionNullableDataContainerFactory <DefaultedNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue>[], Option <TValue>[], UniqueValidator <Option <TValue> > > source, string description, Func <Option <TValue>[], bool> validator) => source.Add(new CustomValidator <Option <TValue>[]>(description, validator));
public static DataSourceStandardStandard <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], UniqueValidator <TValue>, ItemCountValidator <TValue> > ItemCount <TSource, TValue>(this DataSourceStandard <CollectionDataContainerFactory <DefaultedCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], UniqueValidator <TValue> > source, int?minimumItems = null, int?maximumItems = null) => source.Add(new ItemCountValidator <TValue>(minimumItems, maximumItems));
public static DataSourceStandardStandard <NullableCollectionDataContainerFactory <NullableOptionalCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue[]>, TValue[], ItemCountValidator <TValue>, UniqueValidator <TValue> > Unique <TSource, TValue>(this DataSourceStandard <NullableCollectionDataContainerFactory <NullableOptionalCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue[]>, TValue[], ItemCountValidator <TValue> > source) => source.Add(new UniqueValidator <TValue>());
public static DataSourceStandardInverted <CollectionNullableDataContainerFactory <DefaultedNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue>[], Option <TValue>[], ItemCountValidator <Option <TValue> >, TValueValidator> Not <TSource, TValue, TValueValidator>(this DataSourceStandard <CollectionNullableDataContainerFactory <DefaultedNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue>[], Option <TValue>[], ItemCountValidator <Option <TValue> > > source, Func <DataSourceStandard <CollectionNullableDataContainerFactory <DefaultedNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue>[], Option <TValue>[], ItemCountValidator <Option <TValue> > >, DataSourceStandardStandard <CollectionNullableDataContainerFactory <DefaultedNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue>[], Option <TValue>[], ItemCountValidator <Option <TValue> >, TValueValidator> > validatorFactory) where TValueValidator : struct, IValueValidator <Option <TValue>[]> => validatorFactory.Invoke(source).InvertTwo();
public static DataSourceStandardStandard <DefaultedCollectionStateValidator <TValue>, ItemCountValidator <TValue>, UniqueValidator <TValue>, TValue[]> Unique <TValue>(this DataSourceStandard <DefaultedCollectionStateValidator <TValue>, ItemCountValidator <TValue>, TValue[]> source) => source.Add(new UniqueValidator <TValue>());
public static DataSourceStandardInverted <DefaultedCollectionStateValidator <TValue>, ItemCountValidator <TValue>, TValueValidator, TValue[]> Not <TValueValidator, TValue>(this DataSourceStandard <DefaultedCollectionStateValidator <TValue>, ItemCountValidator <TValue>, TValue[]> source, Func <DataSourceStandard <DefaultedCollectionStateValidator <TValue>, ItemCountValidator <TValue>, TValue[]>, DataSourceStandardStandard <DefaultedCollectionStateValidator <TValue>, ItemCountValidator <TValue>, TValueValidator, TValue[]> > validatorFactory) where TValueValidator : IValueValidator <TValue[]> => validatorFactory.Invoke(source).InvertTwo();
public static DataSourceStandardStandard <DefaultedCollectionStateValidator <TValue>, UniqueValidator <TValue>, CustomValidator <TValue[]>, TValue[]> Assert <TValue>(this DataSourceStandard <DefaultedCollectionStateValidator <TValue>, UniqueValidator <TValue>, TValue[]> source, string description, Func <TValue[], bool> validator) => source.Add(new CustomValidator <TValue[]>(description, validator));
public static DataSourceStandardStandard <NullableCollectionNullableDataContainerFactory <OptionalNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <Option <TValue>[]>, Option <TValue>[], UniqueValidator <Option <TValue> >, ItemCountValidator <Option <TValue> > > ItemCount <TSource, TValue>(this DataSourceStandard <NullableCollectionNullableDataContainerFactory <OptionalNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <Option <TValue>[]>, Option <TValue>[], UniqueValidator <Option <TValue> > > source, int?minimumItems = null, int?maximumItems = null) => source.Add(new ItemCountValidator <Option <TValue> >(minimumItems, maximumItems));
/// <summary> /// Elements are Unique /// </summary> public static DataSourceStandardStandard <CollectionDataContainerFactory <RequiredCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], ItemCountValidator <TValue>, CustomValidator <TValue[]> > ElementsUnique <TSource, TValue, TProperty>( this DataSourceStandard <CollectionDataContainerFactory <RequiredCollectionStateValidator <TValue>, TSource, TValue>, TValue[], TValue[], ItemCountValidator <TValue> > collection, Func <TValue, Option <TProperty> > propertyComparison, string validationMessage) => collection.Assert(validationMessage, coll => ValidateElements(coll, propertyComparison));
public static DataSourceStandardStandard <CollectionNullableDataContainerFactory <RequiredNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue>[], Option <TValue>[], ItemCountValidator <Option <TValue> >, UniqueValidator <Option <TValue> > > Unique <TSource, TValue>(this DataSourceStandard <CollectionNullableDataContainerFactory <RequiredNullableCollectionStateValidator <TValue>, TSource, TValue>, Option <TValue>[], Option <TValue>[], ItemCountValidator <Option <TValue> > > source) => source.Add(new UniqueValidator <Option <TValue> >());
public static DataSourceStandardStandard <RequiredCollectionStateValidator <TValue>, UniqueValidator <TValue>, ItemCountValidator <TValue>, TValue[]> ItemCount <TValue>(this DataSourceStandard <RequiredCollectionStateValidator <TValue>, UniqueValidator <TValue>, TValue[]> source, int?minimumItems = null, int?maximumItems = null) => source.Add(new ItemCountValidator <TValue>(minimumItems, maximumItems));