public async Task CompleteApprovalProjectService(Guid organizationId, Guid projectId, Guid serviceId, int approvalId, ProjectServiceApprovalPutRp resource) { string loggedUserId = _identityService.GetUserId(); User user = await _userRepository.GetUser(loggedUserId); DomainModels.Organization organization = user.FindOrganizationById(organizationId); if (organization == null) { await _domainManagerService.AddNotFound($"The organzation with id {organizationId} does not exists."); return; } DomainModels.Project project = organization.GetProjectById(projectId); if (project == null) { await _domainManagerService.AddNotFound($"The project with id {projectId} does not exists."); return; } if (project.Status != EntityStatus.Active) { await _domainManagerService.AddConflict($"The project with id {projectId} must be in status Active to modify a service."); return; } DomainModels.ProjectService service = project.GetServiceById(serviceId); if (service == null) { await _domainManagerService.AddNotFound($"The project pipe with id {serviceId} does not exists."); return; } if (service.Status != EntityStatus.Active) { await _domainManagerService.AddConflict($"The pipe with id {serviceId} must be in status Active to complete an approval."); return; } CMSPipelineApprovalParamModel completeApprovalOptions = new CMSPipelineApprovalParamModel(); completeApprovalOptions.VSTSAPIVersion = _vstsOptions.Value.ApiVersion; completeApprovalOptions.VSTSAccountName = project.OrganizationCMS.Type == ConfigurationManagementService.VSTS ? _dataProtectorService.Unprotect(project.OrganizationCMS.AccountName) : _fakeAccountOptions.Value.AccountId; completeApprovalOptions.VSTSAccessSecret = project.OrganizationCMS.Type == ConfigurationManagementService.VSTS ? _dataProtectorService.Unprotect(project.OrganizationCMS.AccessSecret) : _fakeAccountOptions.Value.AccessSecret; completeApprovalOptions.VSTSAccountProjectId = project.OrganizationCMS.Type == ConfigurationManagementService.VSTS ? project.Name : project.ProjectVSTSFakeName; completeApprovalOptions.ProjectName = project.Name; completeApprovalOptions.ProjectExternalId = project.OrganizationCMS.Type == ConfigurationManagementService.VSTS ? project.ProjectExternalId : project.ProjectVSTSFakeId; completeApprovalOptions.ApprovalId = approvalId; completeApprovalOptions.Status = resource.Status; completeApprovalOptions.Comments = resource.Comments; await _cmsPipelineService.CompleteApproval(completeApprovalOptions); }
public async Task <IActionResult> CompleteApprovalProjectService(Guid organizationId, Guid projectId, Guid serviceId, int approvalId, [FromBody] ProjectServiceApprovalPutRp resource) { if (!ModelState.IsValid) { return(this.BadRequest(ModelState)); } if (!(resource.Status.Equals("approved", StringComparison.InvariantCultureIgnoreCase) || resource.Status.Equals("rejected", StringComparison.InvariantCultureIgnoreCase))) { ModelState.AddModelError("", "The status shouble be approved or rejected"); return(BadRequest(ModelState)); } await _projectServiceService.CompleteApprovalProjectService(organizationId, projectId, serviceId, approvalId, resource); if (_domainManagerService.HasNotFounds()) { return(this.NotFound(_domainManagerService.GetNotFounds())); } if (_domainManagerService.HasForbidden()) { return(this.Forbidden(_domainManagerService.GetForbidden())); } if (_domainManagerService.HasConflicts()) { return(this.Conflict(_domainManagerService.GetConflicts())); } return(this.Ok()); }