示例#1
0
        public async void TestAsync2()
        {
            _testOutputHelper.WriteLine($"TestAsync start {Thread.CurrentThread.ManagedThreadId}");
            var       id      = new Identifier("wer");
            Stopwatch counter = Stopwatch.StartNew();

            var chain = await ResultFactory.ChainAsync(id,
                                                       async() => await MethodTestAsync(ResultFactory.Ok <int>(id, 1)))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))
                        .Next(async(eval, result) => await MethodTestAsync2(result))

                        .ResolveAsync();

            counter.Stop();
            _testOutputHelper
            .WriteLine($"TestAsync end {Thread.CurrentThread.ManagedThreadId}:  Time elapsed: {counter.Elapsed}");


            Assert.True(chain.OnError == false);
        }
示例#2
0
 public async void Test01()
 {
     var id    = new Identifier("abc");
     var chain = await ResultFactory
                 .ChainAsync(id, async() => await Fnc01())
                 .ResolveAsync();
 }
示例#3
0
        public async void Test()
        {
            var id = new Identifier("c");
            var c  = ResultFactory.ChainAsync(id, () => Task.FromResult(ResultFactory.Ok(id, "step 1")))
                     .Next((v, result) => Task.FromResult(ResultFactory.Ok(result.Identifier, $"Step 2 => {result.Content}")))
                     .Next((v, result) => Task.FromResult(ResultFactory.Ok(result.Identifier, $"Step 3 => {result.Content}")));


            var x = await c.ResolveAsync();

            Console.WriteLine(x);
        }
示例#4
0
        public async void TestWithExit()
        {
            _testOutputHelper.WriteLine($"TestAsync start {Thread.CurrentThread.ManagedThreadId}");
            var       id      = new Identifier("wer");
            Stopwatch counter = Stopwatch.StartNew();

            var chain = await ResultFactory.ChainAsync(id,
                                                       async() => await MethodTestAsync(ResultFactory.Ok <int>(id, 1)))
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            }).Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            })
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                await eval.RaiseExitAsync();


                return(r);
            })
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            })
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            })
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            })
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            })
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            })
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            })
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            })
                        .Next(async(eval, result) =>
            {
                var r = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                return(r);
            })
                        //.Next(async (eval, result) =>
                        //{
                        //    var r =  await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                        //    return r;
                        //} )
                        //.Next(async (eval, result) =>
                        //{
                        //    var r =  await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                        //    return r;
                        //} )

                        /*
                         * .Next(async v =>
                         * {
                         *   var xy = await MethodTestAsync3(ResultFactory.Ok(id, new object()));
                         *
                         *
                         * } )
                         * .Next(async v => await MethodTestAsync3(ResultFactory.Ok(id, new object()) ))
                         */


                        //.Next(async (eval, result) => await MethodTestAsync2(result))
                        //.Next(async (eval, result) => await MethodTestAsync2(result))
                        //.Next(async (eval, result) => await MethodTestAsync2(result))


                        .ResolveAsync();

            counter.Stop();
            _testOutputHelper
            .WriteLine($"TestAsync end {Thread.CurrentThread.ManagedThreadId}:  Time elapsed: {counter.Elapsed}");


            Assert.True(chain.OnError == false);
        }
示例#5
0
        public async void TestAsync()
        {
            _testOutputHelper.WriteLine($"TestAsync start {Thread.CurrentThread.ManagedThreadId}");
            var id = new Identifier("wer");

            var chain = await ResultFactory.ChainAsync(id,
                                                       async() => await MethodTestAsync(ResultFactory.Ok <int>(id, 1)), error =>
            {
                _testOutputHelper.WriteLine(error.Error.ErrorMessage);
                return(Task.FromResult(error));
            })
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))

                        .ResolveAsync();

            _testOutputHelper.WriteLine($"TestAsync end {Thread.CurrentThread.ManagedThreadId}");

            Assert.True(chain.OnError == false);
        }
示例#6
0
        public async void TestLazyEvaluatorAsync2()
        {
            _testOutputHelper.WriteLine($"TestAsync start {Thread.CurrentThread.ManagedThreadId}");
            var id = new Identifier("wer");

            Stopwatch counter = Stopwatch.StartNew();

            var chain = await ResultFactory.ChainAsync(id,
                                                       async() => await MethodTestAsync(ResultFactory.Ok <int>(id, 1)), error =>
            {
                _testOutputHelper.WriteLine(error.Error.ErrorMessage);
                return(Task.FromResult(error));
            })

                        #region body

                        .Next(async(v, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))
                        .Next(async(eval, result) => await MethodTestAsync(result))

                        .Next(async(eval, result) => await MethodTestAsync(result))

                        #endregion

                        .ResolveAsync();

            counter.Stop();

            _testOutputHelper
            .WriteLine($"TestAsync end {Thread.CurrentThread.ManagedThreadId}:  Time elapsed: {counter.Elapsed}");

            Assert.True(chain.OnError);
        }