public static TInner Bind <TSource, TKey, TInner>(this IPartitionableSubscribable <TSource, TKey, TInner> source, TKey key, IEqualityComparer <TKey> keyComparer)
            where TInner : IImmutableBindingHolder <TInner, TSource>
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }

            return(source.Parent.AppendBindings(new[] { new KeyBinding <TSource, TKey>(source.Selector, key, keyComparer) }.Concat(source.Bindings).ToList()));
        }
        public static IPartitionableSubscribable <TSource, TNextKey, IPartitionableSubscribable <TSource, TKey, TInner> > AddPartition <TSource, TKey, TInner, TNextKey>(this IPartitionableSubscribable <TSource, TKey, TInner> source, IKeySelector <TSource, TNextKey> keySelector)
            where TInner : IImmutableBindingHolder <TInner, TSource>
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }
            if (keySelector == null)
            {
                throw new ArgumentNullException(nameof(keySelector));
            }

            return(new SimplePartitionableSubscribable <TSource, TNextKey, IPartitionableSubscribable <TSource, TKey, TInner> >(source, keySelector, null));
        }
Ejemplo n.º 3
0
 public static IPartitionableSubscribable <TSource, TNextKey, IPartitionableSubscribable <TSource, TKey, TInner> > AddPartition <TSource, TNextKey, TInner, TKey>(this IPartitionableSubscribable <TSource, TKey, TInner> source, Func <TSource, TNextKey> keySelector)
     where TInner : IImmutableBindingHolder <TInner, TSource>
 {
     return(source.AddPartition(new FuncKeySelector <TSource, TNextKey>(keySelector)));
 }
        public static IPartitionableSubscribable <TSource, TKey, IPartitionableSubscribable <TSource> > AddPartition <TSource, TKey>(this IPartitionableSubscribable <TSource> source, Expression <Func <TSource, TKey> > keySelector)
        {
            if (source == null)
            {
                throw new ArgumentNullException(nameof(source));
            }
            if (keySelector == null)
            {
                throw new ArgumentNullException(nameof(keySelector));
            }

            return(new SimplePartitionableSubscribable <TSource, TKey, IPartitionableSubscribable <TSource> >(source, new LambdaKeySelector <TSource, TKey>(keySelector), null));
        }
Ejemplo n.º 5
0
 public static IPartitionableSubscribable <TSource, TKey, IPartitionableSubscribable <TSource> > AddPartition <TSource, TKey>(this IPartitionableSubscribable <TSource> source, Func <TSource, TKey> keySelector)
 {
     return(source.AddPartition(new FuncKeySelector <TSource, TKey>(keySelector)));
 }