public async Task <ActionResult <IList <FileResult> > > GetFiles() { var claims = HttpContext.User.Claims; var email = claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value; var user = await context.AppUsers.FirstOrDefaultAsync(u => u.Email == email); if (user == null) { return(BadRequest()); } // Get all files from the DB var files = await context.Files .Where(f => f.UserId == user.Id) .ToListAsync(); List <FileResult> toReturn = new List <FileResult>(); foreach (var dbFile in files) { FileResult fileResult = new FileResult { Id = dbFile.Id, FileName = dbFile.FileName, HashValue = Convert.ToBase64String(dbFile.HashValue), Created = dbFile.Created }; toReturn.Add(fileResult); } return(toReturn); }
public async Task <ActionResult <FileResult> > GetFile(Guid id) { var file = await context.Files.FindAsync(id); if (file == null) { return(NotFound()); } var claims = HttpContext.User.Claims; var email = claims.Where(c => c.Type == ClaimTypes.Name).FirstOrDefault().Value; var user = await context.AppUsers.FirstOrDefaultAsync(u => u.Email == email); if (file.UserId != user.Id) { return(Unauthorized()); } ////////////////////// // TODO: cuva se FilePath u bazi, koristi to! string clientFilesFolder = configuration.GetValue <string>("ClientFilesFolderPath"); string userFolderPath = Path.Combine(clientFilesFolder, user.Id.ToString()); if (!Directory.Exists(userFolderPath)) { return(NotFound()); } string filePath = Path.Combine(userFolderPath, file.Id.ToString()); ////////////////////// if (!System.IO.File.Exists(filePath)) { return(NotFound()); } byte[] fileBuffer; fileBuffer = await System.IO.File.ReadAllBytesAsync(filePath); // TODO: check if buffer is null FileResult fileResult = new FileResult { FileName = file.FileName, HashValue = Convert.ToBase64String(file.HashValue), Content = fileBuffer }; return(fileResult); }