[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
     });
 }
Пример #3
0
 /// <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);
        }