public async Task <IActionResult> UpdateIssueStageByUserProjectIssue([FromRoute] string username, [FromRoute] string projectName, [FromRoute] int issueNumber, [FromBody] CreateIssueStageRequest issueStageRequest) { if (issueStageRequest == null) { return(new BadRequestResult()); } var project = await _projectService.GetProjectByUserAsync(username, projectName).ConfigureAwait(false); if (project == null) { return(new NotFoundResult()); } var issue = await _issueService.GetIssueByUserAsync(username, projectName, issueNumber).ConfigureAwait(false); if (issue == null) { return(new NotFoundResult()); } var issueStage = await _issueStageService.GetIssueStageByIssueAsync(issue.Id).ConfigureAwait(false); if (issueStage == null) { return(new NotFoundResult()); } issueStage.Name = issueStageRequest.Name; var updated = await _issueStageService.UpdateIssueStageAsync(issueStage).ConfigureAwait(false); var locationUri = _uriService.GetUri(issueStage.Name); if (updated) { return(Created(locationUri, new Response <IssueStageResponse>(_mapper.Map <IssueStageResponse>(issueStage)))); } return(NotFound()); }
public async Task <IActionResult> CreateIssueStageByUserProject([FromRoute] string username, [FromRoute] string projectName, [FromBody] CreateIssueStageRequest issueStageRequest) { if (issueStageRequest == null) { return(new BadRequestResult()); } var project = await _projectService.GetProjectByUserAsync(username, projectName).ConfigureAwait(false); if (project == null) { return(new NotFoundResult()); } var issueStage = await _issueStageService.GetIssueStageByProjectAsync(project.Id, issueStageRequest.Name).ConfigureAwait(false); if (issueStage != null) { return(new ConflictResult()); } var newIssueStage = new IssueStage { Name = issueStageRequest.Name, ProjectId = project.Id, }; var created = await _issueStageService.CreateIssueStageAsync(newIssueStage).ConfigureAwait(false); var locationUri = _uriService.GetUri(newIssueStage.Name); if (created) { return(Created(locationUri, new Response <IssueStageResponse>(_mapper.Map <IssueStageResponse>(newIssueStage)))); } return(NotFound()); }