[RequestFormLimits(MultipartBodyLengthLimit = 1024 * 1024 * 50)] // this value has also to be set in web.config and jquery.fileupload.js -> maxChunkSize; //see here http://www.binaryintellect.net/articles/612cf2d1-5b3d-40eb-a5ff-924005955a62.aspx public async Task <JsonResult> SaveBlueimp(IList <IFormFile> files) { List <BlueimpUploadJsonResponseModel> responseModels = new List <BlueimpUploadJsonResponseModel>(); foreach (var file in files) { var filename = Utils.GetFilenameFromIFormFile(file); string deleteURL = $@"{_pathOptions.AppBaseUri}api/upload/DeleteBlueimp/?filename={filename}"; string doneURL = $@"{_pathOptions.AppBaseUri}api/upload/OnAfterSuccessfulUploadBlueimp/?filename={filename}"; responseModels.Add(new BlueimpUploadJsonResponseModel(filename, file.Length, deleteURL, doneURL, error: "")); try { WholeSlideImage wsi = await _wsiStorageService.SaveAsync(file); await _wsiDbService.CreateOrUpdateAsync(wsi.Id, wsi); } catch (Exception e) { responseModels.Last().Error = e.Message; } } return(Json(responseModels)); }
public async Task CreateOrUpdateAsync(string id, WholeSlideImage wsi) { await _wsis.ReplaceOneAsync(filter : wsi => wsi.Id == id, replacement : wsi, options : new ReplaceOptions() { IsUpsert = true }); }
/// <summary> /// /// </summary> /// <param name="wsi"></param> /// <returns>byte[] of the thumbnail image or null if the thumbnail generation has not finished yet</returns> public async Task <byte[]?> GetThumbnailAsync(WholeSlideImage wsi) { try { return(await File.ReadAllBytesAsync(wsi.PhysicalPathThumbnail)); } catch (Exception e) { Console.WriteLine($"thumbnail of {wsi.Filename} not completely generated"); return(null); } }
public async Task <JsonResult> OnAfterSuccessfulUploadBlueimp(string filename) { bool success = true; WholeSlideImage wsi = await _wsiStorageService.NotifyUploadCompleteAsync(filename); await _wsiDbService.CreateOrUpdateAsync(wsi.Id, wsi); try { } catch (Exception e) { //TODO //Console.WriteLine(e.Message); throw e; success = false; } Debug.Assert(success); return(Json(new BlueimpDoneJsonResponseModel(filename, success))); }
public async Task RemoveAsync(WholeSlideImage wsiIn) => await _wsis.DeleteOneAsync(wsi => wsi.Id == wsiIn.Id);
public async Task UpdateAsync(string id, WholeSlideImage wsiIn) => await _wsis.ReplaceOneAsync(wsi => wsi.Id == id, wsiIn);
public async Task <WholeSlideImage> CreateAsync(WholeSlideImage wsi) { await _wsis.InsertOneAsync(wsi); return(wsi); }