Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }