public async Task <IActionResult> RunAsync([HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "deferred/{uri}")] HttpRequest req, string uri) { var result = await _deferredResponseService.ResolveResponseAsync <JObject>(new DeferredResponse(uri)); if (result == null) { return(new NotFoundResult()); } return(new OkObjectResult(result)); }
public async Task <ICommandResponse <TResponse> > HandleCommandAsync(TRequest request) { var dispatchedRequest = await _asyncDispatcher.DispatchRequestAsync(request); try { await dispatchedRequest.ActivityTracker.WaitAsync(TimeSpan.FromSeconds(1)); } catch (TimeoutException) { } if (dispatchedRequest.ActivityTracker.IsCompleted) { var response = await _deferredResponseService.ResolveResponseAsync <TResponse>(dispatchedRequest.DeferredResponse); return(new CommandResponse <TResponse>(response)); } else { _asyncDispatcher.AbandonRequest(dispatchedRequest); return(new CommandResponse <TResponse>(dispatchedRequest.DeferredResponse)); } }