Пример #1
0
        public async Task <IActionResult> AddFile([FromForm] FileForAddDto fileForAddDto)
        {
            var file = fileForAddDto.File;

            fileForAddDto.TypeId = 2;
            var fileToCreate = _mapper.Map <File>(fileForAddDto);

            _repo.Add(fileToCreate);
            await _repo.SaveAll();

            int idOfFileAdded = _repo.GetFileMaxID();

            if (file != null)
            {
                string newFileName = idOfFileAdded + "_" + file.FileName;
                string path        = Path.Combine(_hostingEnv.ContentRootPath, "Upload/File", newFileName);
                using (var stream = new FileStream(path, FileMode.Create))
                {
                    file.CopyTo(stream);
                    fileForAddDto.Url = newFileName;
                    fileToCreate.Url  = fileForAddDto.Url;
                    //_data.Entry(fileForAddDto).Property(x => x.Image).IsModified = true;
                    var fileFromRepo1 = await _repo.GetFile(idOfFileAdded);

                    _mapper.Map(fileToCreate, fileFromRepo1);
                    await _repo.SaveAll();
                }
            }
            fileToCreate.Url = BaseURL.GetBaseUrl(Request) + "/Upload/File/" + fileForAddDto.Url;
            return(CreatedAtRoute("GetFile", new { id = idOfFileAdded }, fileToCreate));
        }
Пример #2
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));
        }
Пример #3
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));
        }
Пример #4
0
        public async Task <IActionResult> AddAudio([FromForm] FileForAddDto fileForAddDto)
        {
            var file = fileForAddDto.File;

            fileForAddDto.TypeId = 1;
            var fileToCreate = _mapper.Map <File>(fileForAddDto);

            _repo.Add(fileToCreate);
            await _repo.SaveAll();

            if (file != null)
            {
                string newFileName = fileToCreate.Id + "_" + file.FileName;
                string path        = Path.Combine(_hostingEnv.ContentRootPath, "Upload/Audio", newFileName);
                using (var stream = new FileStream(path, FileMode.Create))
                {
                    file.CopyTo(stream);
                    fileForAddDto.Url = newFileName;
                    fileToCreate.Url  = fileForAddDto.Url;
                    //_data.Entry(fileForAddDto).Property(x => x.Image).IsModified = true;
                    var fileFromRepo1 = await _repo.GetFile(fileToCreate.Id);

                    _mapper.Map(fileToCreate, fileFromRepo1);
                    await _repo.SaveAll();
                }
            }
            fileToCreate.Url = BaseURL.GetBaseUrl(Request) + "/Upload/Audio/" + fileForAddDto.Url;


            // var uploadResult = new VideoUploadResult();

            // if (file.Length > 0)
            // {
            //     using (var stream = file.OpenReadStream())
            //     {
            //         var uploadParams = new VideoUploadParams()
            //         {
            //             File = new FileDescription(file.Name, stream),

            //         };

            //         uploadResult = _cloudinary.Upload(uploadParams);
            //     }
            // }

            // fileForAddDto.Url = uploadResult.Uri.ToString();
            // fileForAddDto.PublicId = uploadResult.PublicId;
            // fileForAddDto.Duration = uploadResult.Duration;

            // fileForAddDto.ItemId = 1;
            // var data = _mapper.Map<File>(fileForAddDto);
            // _repo.Add(data);

            // if (await _repo.SaveAll())
            // {
            //     var photoToReturn = _mapper.Map<File>(data);
            //     return CreatedAtRoute("GetFile", new { id = data.Id }, photoToReturn);
            // }

            // return BadRequest("Could not add the photo");
            return(CreatedAtRoute("GetFile", new { id = fileToCreate.Id }, fileToCreate));
        }