public IActionResult ChangeFileInfo(EditPresentationFiles model) { PresentationFiles file = repository.PresentationFiles.FirstOrDefault(f => f.FileId == model.FileId); if (file != null) { if (model.FileTitle != null && model.FileTitle.Trim() != "" && model.FileTitle.Trim() != file.Title) { file.Title = model.FileTitle; repository.SaveFile(file); } else if (model.FilePart > 0 && model.FilePart != file.Part) { file.Part = model.FilePart; repository.SaveFile(file); } } return(RedirectToAction("EditPresentation", new { id = model.UserId, presentationId = model.PresentationId, courseId = model.CourseId })); }
public IActionResult NewPresentationStep3(NewPresentationStep3ViewModel model) { AppUser user = userManager.Users.FirstOrDefault(u => u.Id == model.UserId); Presentation presentation = repository.Presentations .FirstOrDefault(p => p.PresentationId == model.PresentationId); int filePart = repository.PresentationFiles .Where(f => f.PresentationId == model.PresentationId).Count() + 1; //Create user directory string dirPath = Path.Combine(hostingEnvironment.WebRootPath, $@"UsersData\{user.Id}\Presentations\"); System.IO.Directory.CreateDirectory(dirPath); string fileName = (model.FileTitle == null || model.FileTitle.Trim() == "") ? presentation.Title + "_File_Part_" + filePart : model.FileTitle; //save presentation file PresentationFiles file = new PresentationFiles { Title = fileName, CreatedById = user.Id, Part = model.Part, PresentationId = presentation.PresentationId, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now }; repository.SaveFile(file); file.FilePath = $@"/UsersData/{user.Id}/Presentations/{file.FileId}.pdf"; repository.SaveFile(file); string filePath = Path.Combine(dirPath, file.FileId.ToString() + ".pdf"); using (var stream = new FileStream(filePath, FileMode.Create)) { model.File.CopyTo(stream); } ViewData["Id"] = user.Id; filePart = repository.PresentationFiles .Where(f => f.PresentationId == model.PresentationId).Count() + 1; return(View(new NewPresentationStep3ViewModel { UserId = user.Id, PresentationId = presentation.PresentationId, FileTitle = presentation.Title + "_File_Part_" + filePart, CourseId = model.CourseId, Part = filePart, PresentationFiles = repository.PresentationFiles .Where(f => f.PresentationId == presentation.PresentationId) })); }
public IActionResult DeleteFile(string id, int presentationId, int courseId, int fileId) { PresentationFiles file = repository.PresentationFiles.FirstOrDefault(f => f.FileId == fileId); string dirPath = Path.Combine(hostingEnvironment.WebRootPath, $@"UsersData\{id}\Presentations\"); string filePath = Path.Combine(dirPath, file.FileId.ToString() + ".pdf"); //delete file if exists System.IO.File.Delete(filePath); repository.DeleteFile(file.FileId); return(RedirectToAction("EditPresentation", new { id, presentationId, courseId })); }
public IActionResult UploadNewFile(EditPresentation model) { if (model.NewFile != null) { AppUser user = userManager.Users.FirstOrDefault(u => u.Id == model.UserId); Presentation presentation = repository.Presentations .FirstOrDefault(p => p.PresentationId == model.PresentationId); int filePart = repository.PresentationFiles .Where(f => f.PresentationId == model.PresentationId).Count() + 1; //Create user directory string dirPath = Path.Combine(hostingEnvironment.WebRootPath, $@"UsersData\{user.Id}\Presentations\"); System.IO.Directory.CreateDirectory(dirPath); PresentationFiles file = repository.PresentationFiles.FirstOrDefault(f => f.FileId == model.NewFileId); //file exists if (file != null) { repository.SaveFile(file); } else { string fileName = ""; if (model.NewFileTitle == null) { fileName = presentation.Title + "_File_Part_" + filePart; } else { fileName = (model.NewFileTitle.Trim() == "") ? presentation.Title + "_File_Part_" + filePart : model.NewFileTitle; } //save presentation file file = new PresentationFiles { Title = fileName, CreatedById = user.Id, Part = model.NewFilePart, PresentationId = presentation.PresentationId, CreatedAt = DateTime.Now, UpdatedAt = DateTime.Now }; repository.SaveFile(file); file.FilePath = $@"/UsersData/{user.Id}/Presentations/{file.FileId}.pdf"; repository.SaveFile(file); } string filePath = Path.Combine(dirPath, file.FileId.ToString() + ".pdf"); using (var stream = new FileStream(filePath, FileMode.Create)) { model.NewFile.CopyTo(stream); } } return(RedirectToAction("EditPresentation", new { id = model.UserId, presentationId = model.PresentationId, courseId = model.CourseId })); }