Example #1
0
        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
            }));
        }
Example #2
0
        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)
            }));
        }
Example #3
0
        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 }));
        }
Example #4
0
        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
            }));
        }