public bool Upload(string name, int folderId, int modelId, int workflowId, byte[] bytes, out WorklistAsset asset) { AssetUploadRequest assetUploadRequest = new AssetUploadRequest() { newName = name, destinationFolderId = folderId, modelId = modelId, workflowId = workflowId, bytes = bytes }; string str = JsonConvert.SerializeObject(assetUploadRequest); string str1 = this._api.SendRequest("POST", string.Format("/Asset/Upload", new object[0]), str); AssetUploadResponse assetUploadResponse = JsonConvert.DeserializeObject <AssetUploadResponse>(str1); asset = assetUploadResponse.asset; return(assetUploadResponse.IsSuccessful); }
public async Task <IActionResult> UploadAsync(List <IFormFile> files, string container = "") { var response = new List <AssetUploadResponse>(); TotalSize = files.Sum(f => f.Length); if (container.HasValue()) { CloudContainerName = container; } foreach (var file in files) { if (file.Length == 0) { continue; } var assetDirectory = _settings.CurrentValue.AssetDirectory; var assetWebPath = _settings.CurrentValue.AssetWebPath; FileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"'); FileName = (!string.IsNullOrWhiteSpace(FileName)) ? FileName : Convert.ToString(Guid.NewGuid()); FilePath = Path.Combine(assetDirectory, FileName); var uploadRequest = new AssetUploadRequest() { ContainerName = CloudContainerName, File = file, FileName = this.FileName, FilePath = this.FilePath }; //TODO: TryGetAudioAsset(out AudioAsset audio), TryGetVideoAsset(out VideoAsset video) if (file.TryGetImageAsset(out ImageAsset image)) { // save the file to storage var saveImageAsset = await _assetStorageService.SaveAssetAsync(uploadRequest); if (saveImageAsset != AssetUploadResult.Success) { continue; } // save image metadata to data store image.FileName = this.FileName; image.ContentType = file.ContentType.ToLower(); image.DateCreated = DateTime.UtcNow; image.CreatedBy = UserID; var imageID = await _imageRepository.CreateAsync(image, UserID); // return upload report to client var imageAssetResponse = new AssetUploadResponse() { ID = imageID, FileName = this.FileName, Size = file.Length, Uri = file.GetAssetUri(assetWebPath, this.FileName) }; response.Add(imageAssetResponse); } else { // save the file to storage var saveAsset = await _assetStorageService.SaveAssetAsync(uploadRequest); if (saveAsset != AssetUploadResult.Success) { continue; } // save file metadata to data store var asset = new Asset() { FileName = this.FileName, ContentType = file.ContentType.ToLower(), DateCreated = DateTime.UtcNow, CreatedBy = UserID }; var assetID = await _assetRepository.CreateAsync(asset, UserID); // return upload report to client var assetResponse = new AssetUploadResponse() { ID = assetID, FileName = this.FileName, Size = file.Length, Uri = file.GetAssetUri(assetWebPath, this.FileName) }; response.Add(assetResponse); } } var assetUri = HttpUtility.UrlEncode(response[0].Uri, System.Text.Encoding.UTF8); return(Created(assetUri, response)); }