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(); }
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)); }
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(); }
public void RegisterDeployActionUnit(DeployActionUnit action) { this.DeployActions.Add(action); }
public static double CalculateDeployActionPosition(DeployActionUnit k) { return((int)k.StartFromPhase * 1e4 + k.StartFromLine * 1e2 + k.StartFromPosition); }