public async Task <IActionResult> Upload([ModelBinder(typeof(RequestKeyBinder))] RequestKey Key, SendData Sender) { if (GetValidateResult() is IActionResult ErrorResult) { return(ErrorResult); } var Token = HttpContext.RequestAborted; try { var Path = HttpContext.Request.Path + HttpContext.Request.QueryString; var Result = new PipelineStreamResult(); var Send = await Store.GetSenderAsync(Key, Token); await Send.ConnectionAsync(Sender.GetResultAsync(), Result, Token); return(Result); } catch (OperationCanceledException e) { if (Token.IsCancellationRequested) { Logger.LogInformation(e.Message); return(BadRequest(string.Format(CancelMessage, e.Message))); } Logger.LogInformation(ConnectionTimeout); return(BadRequest(string.Format(TimeoutMessage, ConnectionTimeout))); } catch (InvalidOperationException e) { Logger.LogError(e, UploadFail); return(BadRequest(string.Format(ErrorMessage, e.Message))); } }