Пример #1
0
        public void ExecuteDeployActionUnitCheck(DeployActionUnit deployActionUnit)
        {
            var deployActionFromSource = SearchActionUnit(DeployActions, deployActionUnit);

            if (deployActionFromSource.State != DeployActionUnit.DeployState.NotInitiated &&
                deployActionFromSource.State != DeployActionUnit.DeployState.Error)
            {
                throw new Exception("Only deploy actions in state 'NotInitiated' and 'Error' can be checked");
            }
            deployActionFromSource.State = DeployActionUnit.DeployState.CheckingCurrentState;
            var response = deployActionFromSource.ExecuteCheck(ProjectState, deployActionUnit.ActionExecution, DeployActions);

            if (!response.IsError)
            {
                if (response.ResponseType == DeployActionUnitResponse.DeployActionResponseType.AlreadyCompletedJob)
                {
                    deployActionFromSource.SetResponseParameters(response.Parameters);
                    deployActionFromSource.State = DeployActionUnit.DeployState.Completed;
                }
                else if (response.ResponseType == DeployActionUnitResponse.DeployActionResponseType.NotCompletedJob)
                {
                    deployActionFromSource.State = DeployActionUnit.DeployState.QueuedForExecution;
                }
            }
            else
            {
                deployActionFromSource.SetResponseException(response.Exception);
                deployActionFromSource.State = DeployActionUnit.DeployState.Error;
            }
            //RaiseProjectStateChange();
        }
Пример #2
0
 public DeployActionUnit SearchActionUnit(List <DeployActionUnit> haystack, DeployActionUnit needle)
 {
     return(haystack.FirstOrDefault(
                k => k.ActionExecution.Id == needle.ActionExecution.Id &&
                k.StartFromLine == needle.StartFromLine &&
                k.StartFromPhase == needle.StartFromPhase &&
                k.StartFromPosition == needle.StartFromPosition));
 }
Пример #3
0
        public void ExecuteDeployActionUnitExecution(DeployActionUnit deployActionUnit)
        {
            var deployActionFromSource = SearchActionUnit(DeployActions, deployActionUnit);

            if (deployActionFromSource.State != DeployActionUnit.DeployState.QueuedForExecution &&
                deployActionFromSource.State != DeployActionUnit.DeployState.Error)
            {
                throw new Exception("Only deploy actions in state 'QueuedForExecution' and 'Error' can be executed");
            }
            deployActionFromSource.State = DeployActionUnit.DeployState.Executing;
            var response = deployActionFromSource.ExecuteDeploy(ProjectState, deployActionUnit.ActionExecution, DeployActions);

            if (!response.IsError)
            {
                deployActionFromSource.SetResponseParameters(response.Parameters);
                deployActionFromSource.State = DeployActionUnit.DeployState.Completed;
            }
            else
            {
                deployActionFromSource.SetResponseException(response.Exception);
                deployActionFromSource.State = DeployActionUnit.DeployState.Error;
            }
            //RaiseProjectStateChange();
        }
Пример #4
0
 public void RegisterDeployActionUnit(DeployActionUnit action)
 {
     this.DeployActions.Add(action);
 }
Пример #5
0
 public static double CalculateDeployActionPosition(DeployActionUnit k)
 {
     return((int)k.StartFromPhase * 1e4 + k.StartFromLine * 1e2 + k.StartFromPosition);
 }