public async Task <IActionResult> CreateProjectMaintainernByUserProjectIssue([FromRoute] string username, [FromRoute] string projectName, [FromBody] CreateProjectMaintainerRequest projectMaintainerRequest) { if (projectMaintainerRequest == null) { return(new BadRequestResult()); } var project = await _projectService.GetProjectByUserAsync(username, projectName).ConfigureAwait(false); if (project == null) { return(new NotFoundResult()); } if (!await _projectService.UserCanAdminProject(project).ConfigureAwait(false)) { return(Unauthorized()); } var user = await _userService.GetUserByUserNameAsync(username).ConfigureAwait(false); if (user == null) { return(NotFound()); } var maintainer = await _userService.GetUserByUserNameAsync(projectMaintainerRequest.UserName).ConfigureAwait(false); if (maintainer == null) { return(NotFound()); } var projectMaintainer = await _projectMaintainerService.GetProjectMaintainerAsync(project.Id, projectMaintainerRequest.UserName).ConfigureAwait(false); if (projectMaintainer != null) { return(new ConflictResult()); } var newProjectMaintainer = new ProjectMaintainer { ProjectId = project.Id, MaintainerId = user.Id, }; var created = await _projectMaintainerService.CreateProjectMaintainerAsync(newProjectMaintainer).ConfigureAwait(false); var locationUri = _uriService.GetUri(username); if (created) { return(Created(locationUri, new Response <DragonflyUserResponse>(_mapper.Map <DragonflyUserResponse>(user)))); } return(NotFound()); }
public async Task <bool> DeleteProjectMaintainerAsync(Guid projectId, Guid maintainerId) { var projectMaintainer = new ProjectMaintainer { ProjectId = projectId, MaintainerId = maintainerId }; _projectMaintainerRepository.Delete(projectMaintainer); var deleted = await _projectMaintainerRepository.SaveAsync().ConfigureAwait(false); return(deleted > 0); }
public async Task <bool> CreateProjectMaintainerAsync(ProjectMaintainer projectMaintainer) { if (projectMaintainer == null) { return(false); } await _projectMaintainerRepository.CreateAsync(projectMaintainer).ConfigureAwait(false); var created = await _projectMaintainerRepository.SaveAsync().ConfigureAwait(false); return(created > 0); }