public async Task <IActionResult> RemoveProjectBug([BindRequired] long?projectId, [BindRequired] long?bugId)
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToAction(nameof(Details), new { projectId = projectId.Value }));
            }

            var removeProjectBugRequest = new RemoveProjectBugRequest
            {
                ProjectId = projectId.Value,
                BugId     = bugId.Value
            };
            await _projectApplicationService.Handle(removeProjectBugRequest);

            return(RedirectToAction(nameof(Details), new { projectId = projectId.Value }));
        }
Ejemplo n.º 2
0
        public async Task <BugResponse> Handle(RemoveProjectBugRequest request)
        {
            var project = await _projectRepository.ReadById(request.ProjectId);

            if (project == default)
            {
                throw new ArgumentNullException("Project not found");
            }

            var bug = project.Bugs.SingleOrDefault(bug => bug.Id == request.BugId);

            if (bug == default)
            {
                throw new ArgumentNullException("Bug for this project not found");
            }

            project.RemoveBug(bug);

            await _projectRepository.PersistChanges();

            return(bug.Adapt <BugResponse>());
        }