예제 #1
0
        public IActionResult DeleteProjectVersion(Guid projectId, string version)
        {
            ViewData["Section"] = "Admin";
            var project = _context.DocumentationProjects.FirstOrDefault(p => p.Id == projectId);

            if (project == null)
            {
                return(NotFound());
            }
            var model = new DeleteProjectVersionViewModel
            {
                ConfirmDelete = false,
                ProjectId     = projectId,
                ProjectName   = project.Name,
                Version       = version
            };

            return(View(model));
        }
예제 #2
0
        public async Task <IActionResult> DeleteProjectVersion(Guid projectId, string version, DeleteProjectVersionViewModel model)
        {
            ViewData["Section"] = "Admin";
            if (!model.ConfirmDelete)
            {
                ModelState.AddModelError(nameof(model.ConfirmDelete), "Please confirm the deletion by checking the checkbox.");
            }
            if (!ModelState.IsValid)
            {
                return(View(model));
            }
            var documentationProject = _context.DocumentationProjects.FirstOrDefault(project => project.Id == model.ProjectId);

            if (documentationProject == null)
            {
                return(NotFound());
            }
            var deletionResult = await _projectFilesService.DeleteProjectVersionPackageAsync(documentationProject.Id, model.Version);

            if (!deletionResult)
            {
                ModelState.AddModelError("Error", "Could not delete project version.");
                return(View(model));
            }
            ViewBag.SuccessMessage = $"Deleted project version {documentationProject.Name}.";
            return(RedirectToAction(nameof(Index)));
        }