public void IsEmpty_ProjectIdsIsEmptyOrNull_ReturnTrue()
        {
            //arrange
            var scope = new WorkflowAssignScope()
            {
                AllArtifacts = true, AllProjects = false, ArtifactIds = new List <int> {
                    1
                }, ProjectIds = new List <int> {
                }
            };
            var expectedResult = true;

            //act
            var result = scope.IsEmpty();

            //assert
            Assert.AreEqual(expectedResult, result);

            //arrange
            scope.ProjectIds = null;

            //act
            result = scope.IsEmpty();

            //assert
            Assert.AreEqual(expectedResult, result);
        }
        public void IsEmpty_AllParametersIsOk_ReturnFalse()
        {
            //arrange
            var scope = new WorkflowAssignScope()
            {
                AllArtifacts = true, AllProjects = true, ArtifactIds = new List <int> {
                    1
                }, ProjectIds = new List <int> {
                    1
                }
            };
            var expectedResult = false;

            //act
            var result = scope.IsEmpty();

            //assert
            Assert.AreEqual(expectedResult, result);
        }
Esempio n. 3
0
        public async Task <IHttpActionResult> AssignProjectsAndArtifactTypesToWorkflow(int workFlowid, [FromBody] WorkflowAssignScope workflowAssign)
        {
            await _privilegesManager.Demand(Session.UserId, InstanceAdminPrivileges.AccessAllProjectData);

            if (workflowAssign == null)
            {
                throw new BadRequestException(ErrorMessages.AssignMemberScopeEmpty, ErrorCodes.BadRequest);
            }

            if (workflowAssign.IsEmpty())
            {
                return(Ok(AssignProjectsResult.Empty));
            }

            var result = await _workflowRepository.AssignProjectsAndArtifactTypesToWorkflow(workFlowid, workflowAssign);

            return(Ok(result));
        }
Esempio n. 4
0
        public async Task <AssignProjectsResult> AssignProjectsAndArtifactTypesToWorkflow(int workflowId, WorkflowAssignScope scope)
        {
            var parameters = new DynamicParameters();

            parameters.Add("@WorkflowId", workflowId);
            parameters.Add("@AllArtifactTypes", scope.AllArtifacts, dbType: DbType.Boolean);
            parameters.Add("@AllProjects", scope.AllProjects, dbType: DbType.Boolean);
            parameters.Add("@ArtifactTypesIds", SqlConnectionWrapper.ToDataTable(scope.ArtifactIds, "Int32Collection", "Int32Value"));
            parameters.Add("@ProjectIds", SqlConnectionWrapper.ToDataTable(scope.ProjectIds, "Int32Collection", "Int32Value"));
            parameters.Add("@AllProjectsAssignedToWorkflow", dbType: DbType.Boolean, direction: ParameterDirection.Output);
            parameters.Add("@ErrorCode", dbType: DbType.Int32, direction: ParameterDirection.Output);

            var result = await _connectionWrapper.ExecuteScalarAsync <int>("AssignProjectsAndArtifactTypesToWorkflow", parameters, commandType : CommandType.StoredProcedure);

            var errorCode = parameters.Get <int?>("ErrorCode");

            if (errorCode.HasValue)
            {
                switch (errorCode.Value)
                {
                case (int)SqlErrorCodes.GeneralSqlError:
                    throw new Exception(ErrorMessages.GeneralErrorOfAssignProjectsAndArtifactTypesToWorkflow);

                case (int)SqlErrorCodes.WorkflowWithCurrentIdNotExist:
                    throw new ResourceNotFoundException(ErrorMessages.WorkflowNotExist, ErrorCodes.ResourceNotFound);

                case (int)SqlErrorCodes.WorkflowWithCurrentIdIsActive:
                    throw new ConflictException(ErrorMessages.WorkflowIsActive, ErrorCodes.WorkflowIsActive);
                }
            }

            return(new AssignProjectsResult()
            {
                TotalAssigned = result, AllProjectsAssignedToWorkflow = parameters.Get <bool>("AllProjectsAssignedToWorkflow")
            });
        }