Exemple #1
0
        public async Task <FileInfoDTO> CreateAsync(CreateFileRequest file, Stream data)
        {
            if (!Directory.Exists(StorageFolderPath))
            {
                Directory.CreateDirectory(StorageFolderPath);
            }

            var fileInfoDto = FileMapper.ConvertToFileInfoDTO(file);

            var fileInfo = await _db.Files.CreateAsync(FileMapper.ConvertToFileInfo(fileInfoDto));

            var filePath = GetAbsoluteFilePath(fileInfo);


            if (!File.Exists(filePath))
            {
                using (var fileStream = File.Create(filePath))
                {
                    using (data)
                    {
                        if (data.CanSeek)
                        {
                            data.Seek(0, SeekOrigin.Begin);
                        }

                        await data.CopyToAsync(fileStream);
                    }
                }
                await _db.SaveAsync(); // don't move to other place.
            }
            return(await GetFileInfoAsync(fileInfo.Id));
        }
Exemple #2
0
 private List <FileInfoDTO> MapFilesToDto(IEnumerable <FileInfoViewModel> files)
 {
     return(files
            .Select(file =>
     {
         if (file.isAttached)
         {
             var newFile = FileMapper.ConvertToCreateFileRequest(file);
             return _fileService.CreateAsync(newFile, _fileManager.GetFileStream(file)).Result;
         }
         else
         {
             return FileMapper.ConvertToFileInfoDTO(file);
         }
     })
            .ToList());
 }
Exemple #3
0
 private async Task <FileInfoDTO> GetFileFromDbAsync(Guid id)
 {
     return(FileMapper.ConvertToFileInfoDTO(await _db.Files.GetAsync(id)));
 }