public async Task <IActionResult> PostJson(UploadRequest uploadRequest, CancellationToken ct = default) { var commands = uploadRequest.AsDownloadUriQueries(e => logger.LogError("Fail to parse URI: {0}", e)).ToArray(); var files = uploadRequest.AsUploads(contentTypeTestUtility); if (!commands.Any()) { return(await UploadCoreAsync(files.ToArray(), ct)); } var newFileTasks = commands.Select(x => SendAsync(x, ct)).ToArray(); var newFiles = await Task.WhenAll(newFileTasks); files = files.Concat(newFiles); return(await UploadCoreAsync(files.ToArray(), ct)); }