Esempio n. 1
0
        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);
        }