public async Task <FileUploadResponse> UploadImagesAsync(IEnumerable <VehicleImage> vehicleImages) { var uploadImagesRequest = new UploadImagesRequest(vehicleImages.Select(vi => vi.ImageAlbumPath)); return(await CrossFileUploader.Current.UploadFileAsync(uploadImagesRequest.Url, uploadImagesRequest.FilePathItems.ToArray(), vehicleImages.FirstOrDefault()?.Tag, uploadImagesRequest.Headers)); }
public async Task <IActionResult> UploadImages([FromForm] UploadImagesRequest request) { var result = new FilesUploadResponse { UploadedFiles = new List <MessageAttachment>() }; if (!request.images.Any()) { return(BadRequest(new ResponseApiModel <FilesUploadResponse> { ErrorMessage = "No files were provided.", IsSuccessfull = false, Response = null })); } foreach (var image in request.images) { if (image.Length > 1024 * 1024 * MaxImageLengthMB) { return(BadRequest(new ResponseApiModel <FilesUploadResponse> { ErrorMessage = $"Some of the files were larger than {MaxImageLengthMB} Mb", IsSuccessfull = false })); } } var error = string.Empty; var thisUserId = ClaimsExtractor.GetUserIdClaim(User.Claims); var errorLock = new object(); var resultLock = new object(); Parallel.ForEach(request.images, file => { try { var uploadedFile = filesService .SaveMessagePicture(file, file.FileName, request.ChatId, thisUserId).GetAwaiter() .GetResult(); lock (resultLock) { result.UploadedFiles.Add(uploadedFile); } } catch (Exception ex) { lock (errorLock) { error = "Some of the files failed to upload. Exception type for last file was: " + ex.GetType(); } } }); return(Ok(new ResponseApiModel <FilesUploadResponse> { ErrorMessage = error == string.Empty ? null : error, IsSuccessfull = error == string.Empty, Response = result })); }
public async Task <IActionResult> UploadImages([FromBody] UploadImagesRequest request) { throw new NotImplementedException { }; }