コード例 #1
0
 public static AsyncFuncBuilder <TContext> WithAsyncConditions <TContext>(
     this AsyncFuncBuilder <TContext> asyncFuncBuilder,
     IEnumerable <IAsyncCondition <TContext> > asyncConditions)
 {
     asyncFuncBuilder.AddStrategy(new AsyncConditions <TContext>(asyncConditions));
     return(asyncFuncBuilder);
 }
コード例 #2
0
 public static AsyncFuncBuilder <TContext> WithCondition <TContext>(
     this AsyncFuncBuilder <TContext> asyncFuncBuilder,
     System.Func <TContext, bool> condition)
 {
     asyncFuncBuilder.AddStrategy(new Condition <TContext>(Conditions.Func <TContext> .Create(condition)));
     return(asyncFuncBuilder);
 }
コード例 #3
0
 public static AsyncFuncBuilder <TContext> WithAsyncCondition <TContext>(
     this AsyncFuncBuilder <TContext> asyncFuncBuilder,
     IAsyncCondition <TContext> asyncCondition)
 {
     asyncFuncBuilder.AddStrategy(new AsyncCondition <TContext>(asyncCondition));
     return(asyncFuncBuilder);
 }
コード例 #4
0
 public static AsyncFuncBuilder <TContext> WithAsyncCondition <TContext>(
     this AsyncFuncBuilder <TContext> asyncFuncBuilder,
     System.Func <TContext, Task <bool> > asyncCondition)
 {
     asyncFuncBuilder.AddStrategy(
         new AsyncCondition <TContext>(AsyncFunc <TContext> .Create(asyncCondition)));
     return(asyncFuncBuilder);
 }
コード例 #5
0
        public static AsyncFuncBuilder <TContext> WithAction <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            IAction <TContext> action)
        {
            asyncFuncBuilder.AddStrategy(new Visitors.Action <TContext>(action));

            return(asyncFuncBuilder);
        }
コード例 #6
0
        public static AsyncFuncBuilder <TContext> WithAsyncFunc <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            IAsyncResultFunc <TContext> asyncResultFunc)
        {
            asyncFuncBuilder.AddStrategy(new AsyncResultFunc <TContext>(asyncResultFunc));

            return(asyncFuncBuilder);
        }
コード例 #7
0
        public static AsyncFuncBuilder <TContext> WithFunc <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            System.Func <TContext, Result> func)
        {
            asyncFuncBuilder.AddStrategy(new Visitors.Func <TContext>(func.ToResultFunc()));

            return(asyncFuncBuilder);
        }
コード例 #8
0
        public static AsyncFuncBuilder <TContext> WithAction <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            System.Action <TContext> action)
        {
            asyncFuncBuilder.AddStrategy(new Visitors.Func <TContext>(action.ToResultFunc()));

            return(asyncFuncBuilder);
        }
コード例 #9
0
        public static AsyncFuncBuilder <TContext> WithFunc <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            IResultFunc <TContext> resultFunc)
        {
            asyncFuncBuilder.AddStrategy(new Visitors.Func <TContext>(resultFunc));

            return(asyncFuncBuilder);
        }
コード例 #10
0
 public static AsyncFuncBuilder <TContext> WithAsyncConditions <TContext>(
     this AsyncFuncBuilder <TContext> asyncFuncBuilder,
     IEnumerable <System.Func <TContext, Task <bool> > > asyncConditions)
 {
     asyncFuncBuilder.AddStrategy(
         new AsyncConditions <TContext>(asyncConditions.Select(AsyncFunc <TContext> .Create)));
     return(asyncFuncBuilder);
 }
コード例 #11
0
        public static AsyncFuncBuilder <TContext> WithEnumerating <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            IEnumerable <System.Action <AsyncFuncBuilder <TContext> > > configuration,
            IFactory <TContext> factory)
        {
            asyncFuncBuilder.AddStrategy(new BuildAsyncActionBuilders <TContext>(configuration, factory));

            return(asyncFuncBuilder);
        }
コード例 #12
0
        public static AsyncFuncBuilder <TContext> WithEnumerating <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            IEnumerable <System.Func <IAsyncResultFunc <TContext> > > asyncActions,
            IFactory <TContext> factory)
        {
            asyncFuncBuilder.AddStrategy(new LazyEnumerator <TContext>(asyncActions, factory));

            return(asyncFuncBuilder);
        }
コード例 #13
0
        public static AsyncFuncBuilder <TContext> WithAsyncFunc <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            System.Func <TContext, Task <Result> > asyncFunc)
        {
            asyncFuncBuilder.AddStrategy(
                new AsyncResultFunc <TContext>(asyncFunc.ToAsyncResultFunc()));

            return(asyncFuncBuilder);
        }
コード例 #14
0
        public static AsyncFuncBuilder <TContext> WithAsyncFunc <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            Func <TContext, CancellationToken, Task> asyncFunc)
        {
            asyncFuncBuilder.AddStrategy(
                new AsyncResultFunc <TContext>(asyncFunc.ToAsyncFunc().ToAsyncResultFunc()));

            return(asyncFuncBuilder);
        }
コード例 #15
0
 public static AsyncFuncBuilder <TInput> WithAdapter <TInput, TOutput>(
     this AsyncFuncBuilder <TInput> asyncFuncBuilder,
     IAsyncAbortableTypeParser <TInput, TOutput> asyncAbortableTypeParser,
     System.Action <AsyncFuncBuilder <TOutput> > configuration)
 {
     asyncFuncBuilder.AddStrategy(
         new AsyncAdapter <TInput, TOutput>(asyncAbortableTypeParser, configuration));
     return(asyncFuncBuilder);
 }
コード例 #16
0
 public static AsyncFuncBuilder <TInput> WithAdapter <TInput, TOutput>(
     this AsyncFuncBuilder <TInput> asyncFuncBuilder,
     Func <TInput, CancellationToken, Task <Option <Option <TOutput> > > > asyncTypeParser,
     System.Action <AsyncFuncBuilder <TOutput> > configuration)
 {
     asyncFuncBuilder.AddStrategy(
         new AsyncAdapter <TInput, TOutput>(
             AsyncFunc <TInput, TOutput> .Create(asyncTypeParser),
             configuration));
     return(asyncFuncBuilder);
 }
コード例 #17
0
 public static AsyncFuncBuilder <TInput> WithAdapter <TInput, TOutput>(
     this AsyncFuncBuilder <TInput> asyncFuncBuilder,
     System.Func <TInput, Option <Option <TOutput> > > typeParser,
     System.Action <AsyncFuncBuilder <TOutput> > configuration)
 {
     asyncFuncBuilder.AddStrategy(
         new Adapter <TInput, TOutput>(
             Parser.Func <TInput, TOutput> .Create(typeParser),
             configuration));
     return(asyncFuncBuilder);
 }
コード例 #18
0
        public static AsyncFuncBuilder <TContext> Any <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            IEnumerable <System.Action <AsyncFuncBuilder <TContext> > > configuration,
            System.Func <Result, bool> predicate)
        {
            asyncFuncBuilder.AddStrategy(
                new BuildAsyncActionBuilders <TContext>(
                    configuration,
                    new AnyFactory <TContext>(predicate)));

            return(asyncFuncBuilder);
        }
コード例 #19
0
        public static AsyncFuncBuilder <TContext> Any <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            IEnumerable <IAsyncResultFunc <TContext> > asyncActions,
            System.Func <Result, bool> predicate)
        {
            asyncFuncBuilder.AddStrategy(
                new Visitors.Enumerator <TContext>(
                    asyncActions,
                    new AnyFactory <TContext>(predicate)));

            return(asyncFuncBuilder);
        }
コード例 #20
0
        public static AsyncFuncBuilder <TContext> All <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            IEnumerable <System.Action <AsyncFuncBuilder <TContext> > > configuration,
            System.Func <Result, bool> predicate,
            bool shortCircuiting = true)
        {
            IFactory <TContext> factory;

            if (shortCircuiting)
            {
                factory = new AllFactory <TContext>(predicate);
            }
            else
            {
                factory = new ContinuingAllFactory <TContext>(predicate);
            }

            asyncFuncBuilder.AddStrategy(new BuildAsyncActionBuilders <TContext>(configuration, factory));

            return(asyncFuncBuilder);
        }
コード例 #21
0
        public static AsyncFuncBuilder <TContext> All <TContext>(
            this AsyncFuncBuilder <TContext> asyncFuncBuilder,
            IEnumerable <IAsyncResultFunc <TContext> > asyncActions,
            System.Func <Result, bool> predicate,
            bool shortCircuiting = true)
        {
            IFactory <TContext> factory;

            if (shortCircuiting)
            {
                factory = new AllFactory <TContext>(predicate);
            }
            else
            {
                factory = new ContinuingAllFactory <TContext>(predicate);
            }

            asyncFuncBuilder.AddStrategy(new Visitors.Enumerator <TContext>(asyncActions, factory));

            return(asyncFuncBuilder);
        }