public async Task <IActionResult> AddFile(FileForAddDto fileForAddDto) { if (await _repo.FileExists(fileForAddDto.FileName, fileForAddDto.FileManagerAdminId, fileForAddDto.NodeId)) { return(BadRequest("File already exists for folder")); } var fileToAdd = _mapper.Map <File>(fileForAddDto); var createdFile = await _repo.AddFile(fileToAdd); var fileToReturn = _mapper.Map <FileForListDto>(createdFile); return(CreatedAtRoute("GetFile", new { controller = "Files", id = createdFile.Id }, fileToReturn)); }
public async Task <IActionResult> AddFile(int fmAdminId, int nodeId, [FromForm] FileForAddDto fileForAddDto) { //FileForAddDto fileForAddDto = new FileForAddDto(){FileManagerAdminId = fmAdminId, NodeId = nodeId}; var myFile = fileForAddDto.File; fileForAddDto.FileManagerAdminId = fmAdminId; fileForAddDto.NodeId = nodeId; if (await _repo.FileExists(fileForAddDto.FileName, fileForAddDto.FileManagerAdminId, fileForAddDto.NodeId)) { return(BadRequest("File already exists for folder")); } if (myFile != null) { fileForAddDto.FileName = myFile.FileName; fileForAddDto.Ext = Path.GetExtension(myFile.FileName); fileForAddDto.Size = myFile.Length; string myGuid = Guid.NewGuid().ToString(); string _imageName = myGuid + "-" + Path.GetExtension(myFile.FileName); CloudBlockBlob blob = azureContainer.GetBlockBlobReference(_imageName); blob.Properties.ContentType = myFile.ContentType; fileForAddDto.StorageId = _imageName; fileForAddDto.Url = blob.Uri.ToString(); if (myFile.Length > 0) { using (var stream = myFile.OpenReadStream()) { await blob.UploadFromStreamAsync(stream); } } } var fileToAdd = _mapper.Map <FileManager.API.Models.File>(fileForAddDto); var createdFile = await _repo.AddFile(fileToAdd); var fileToReturn = _mapper.Map <FileForListDto>(createdFile); return(CreatedAtRoute("GetFile", new { controller = "Files", id = createdFile.Id }, fileToReturn)); }