/// <summary>
        /// Method to upload files
        /// </summary>
        /// <param name="files"></param>
        /// <returns></returns>
        public async Task <ResponseModel> UploadFiles(List <IFormFile> files)
        {
            try
            {
                foreach (var f in files)
                {
                    using (var memoryStream = new MemoryStream())
                    {
                        await f.CopyToAsync(memoryStream);

                        FilesModel file = new FilesModel
                        {
                            Content     = Convert.ToBase64String(memoryStream.ToArray()),
                            FileName    = f.FileName,
                            ContentType = f.ContentType,
                        };
                        await _dbContext.Files.AddAsync(file);

                        await _dbContext.SaveChangesAsync();
                    }
                    return(new ResponseModel(true));
                }

                return(new ResponseModel(false)
                {
                    Message = "Couldn't upload"
                });
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Пример #2
0
        public async Task CanInsertInDatabase_Ok()
        {
            try
            {
                Setup();

                var sevenItems   = new byte[] { 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20 };
                var bytes        = new byte[64493];
                var base64String = Convert.ToBase64String(sevenItems);
                var file         = new FilesModel()
                {
                    Content     = base64String,
                    FileName    = "test",
                    ContentType = "application/json"
                };
                await _dbContext.Files.AddAsync(file);

                await _dbContext.SaveChangesAsync();

                Assert.Pass();
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
Пример #3
0
        public async Task <Data.Models.FileInfo> MoveFile(Guid sourceFileId, string relativeFolderPath, string fileName)
        {
            var(fileNameWithoutExtension, extension) = FilesHelpers.GetFileNameAndExtension(fileName);

            var file = await context.Files.FindAsync(sourceFileId);

            if (file is null)
            {
                throw new InvalidOperationException("No file with the provided sourceFileId exists.");
            }

            var sourceFileInfo = await fileProvider.GetFile(file.RelativeFolderPath, file.FileName, file.Extension);

            var fileInfo = await fileProvider.MoveFile(sourceFileInfo, relativeFolderPath, fileNameWithoutExtension, extension);

            file.RelativeFolderPath = relativeFolderPath;
            file.FileName           = fileNameWithoutExtension;
            file.Extension          = extension;
            await context.SaveChangesAsync();

            return(file);
        }