public static async Task <ActionResult <TResult> > ExecuteToActionResultAsync <TResult>(
            IMediatorClient client,
            ActivityId activityId,
            TRequest request,
            Func <TResponse, TResult> extractResult,
            ActivityExecutionConfiguration activityExecutionConfiguration,
            System.Threading.CancellationToken requestAborted)
        {
            try {
                using var connected = await client.ConnectAndSendAsync(
                          activityId,
                          request,
                          activityExecutionConfiguration,
                          requestAborted);

                var response = await connected.WaitForAsync(activityExecutionConfiguration, requestAborted);

                return(response.ConvertResponseToActionResult <TResponse, TResult>(extractResult));
            } catch (System.Exception error) {
                return(new ObjectResult(error.Message)
                {
                    StatusCode = 500
                });
            }
        }
Exemple #2
0
 public CreateClientConnectedArguments(
     IMediatorServiceInternalUse medaitorService,
     IMediatorClient medaitorClient,
     ActivityId activityId,
     RequestRelatedType requestRelatedType
     )
 {
     this.MedaitorService    = medaitorService;
     this.MedaitorClient     = medaitorClient;
     this.ActivityId         = activityId;
     this.RequestRelatedType = requestRelatedType;
 }
 public Task <IMediatorClientConnected <TRequest> > ConnectAsync <TRequest>(IMediatorClient medaitorClient, TRequest request, CancellationToken cancellationToken)
 {
     throw new NotImplementedException();
 }