コード例 #1
0
        public async Task <TResponse> ExecuteAsync(
            IActivityContext <TRequest> activityContext,
            ActivityId activityId,
            TRequest request,
            ActivityExecutionConfiguration activityExecutionConfiguration,
            CancellationToken cancellationToken)
        {
            using var connectedClient = await activityContext.ConnectAndSendAsync(
                      activityId,
                      request,
                      activityExecutionConfiguration,
                      cancellationToken);

            var response = await connectedClient.WaitForAsync(activityExecutionConfiguration, cancellationToken);

            if (response is IOkResultActivityResponse resultActivityResponse)
            {
                var success = resultActivityResponse.TryGetResult(out var result);
                if (result is TResponse resultTyped)
                {
                    return(resultTyped);
                }
                else
                {
                }
            }
            //response.GetAsActivityEvent
            //if (response is OkResultActivityResponse<TResponse> okResult) {
            //    if (response.TryGetResult<TResponse>(out var result)) {
            //    return result;
            //} else {
            //}
            throw new NotImplementedException();
        }
コード例 #2
0
            public override async Task ExecuteAsync(
                IActivityContext <TestRequest1> activityContext,
                CancellationToken cancellationToken)
            {
                var request  = activityContext.Request;
                var request2 = new TestRequest2()
                {
                    A = request.A, B = request.B
                };
                ActivityId activityId = ActivityId.NewId();

                using var connectedClient = await activityContext.ConnectAndSendAsync(
                          activityId,
                          request2,
                          null,   // activityExecutionConfiguration,
                          cancellationToken);

                var response2 = await connectedClient.WaitForAsync(null, cancellationToken);

                if (response2.TryGetResult <TestResponse2>(out var result2))
                {
                    var response = new TestResponse1()
                    {
                        R = result2.R + 1
                    };
                    await this.SetResponseAsync(activityContext, response);

                    return;
                }
                else
                {
                    await activityContext.SetActivityResponseAsync(response2);

                    return;
                }
            }