Example #1
0
        public BuildDomainEntity StopStep(int stepIndex, BuildStepDomainEntity.StepOutcome outcome)
        {
            var step = Steps.ElementAt(stepIndex);

            step.Stop(outcome);
            return(this);
        }
Example #2
0
        public Task <Unit> Handle(EndStepCommand request, CancellationToken cancellationToken)
        {
            // Retrieval
            var buildPersistenceModel = _buildRepository.Find(request.BuildID);

            if (buildPersistenceModel == null)
            {
                throw new Exception($"Build with id \"{request.BuildID}\" does not exist.");
            }
            if (request.StepIndex >= buildPersistenceModel.Steps.Count())
            {
                throw new Exception($"Step ad index {request.StepIndex} does not exist.");
            }

            // Conversion
            var buildDomainEntity = _mapper.Map <BuildDomainEntity>(buildPersistenceModel);

            // Business logic
            BuildStepDomainEntity.StepOutcome outcome = BuildStepDomainEntity.StepOutcome.Unknown;
            switch (request.Outcome)
            {
            case StepOutcome.Success:
                outcome = BuildStepDomainEntity.StepOutcome.Success;
                break;

            case StepOutcome.Fail:
                outcome = BuildStepDomainEntity.StepOutcome.Fail;
                break;

            case StepOutcome.Unknown:
            default:
                outcome = BuildStepDomainEntity.StepOutcome.Unknown;
                break;
            }

            buildDomainEntity.StopStep(request.StepIndex, outcome);

            // Conversion
            buildPersistenceModel = _mapper.Map <BuildPersistenceModel>(buildDomainEntity);

            // Persist
            _buildRepository.Update(buildPersistenceModel);

            return(Task.FromResult(new Unit()));
        }