/// <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; } }
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; } }
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); }