private void PrintJobState(string jobStateIdentifier) { bool condtion = true; var pRec = new ProgressRecord(0, "ID: ", jobStateIdentifier); while (condtion) { ClusteredRecoveryJobState jobState = ConfigurationConnection.Current.GetJobState(jobStateIdentifier); WriteObject(jobState.PercentageExecution); pRec.PercentComplete = (int)jobState.PercentageExecution; WriteProgress(pRec); Thread.Sleep(50); condtion = jobState.Status == RecoveryStatus.Completed || jobState.Status == RecoveryStatus.Failure; } }
public ClusteredRecoveryJobState GetJobState(string identifier) { ClusteredRecoveryJobState state = new ClusteredRecoveryJobState(identifier); try { RecoveryConfiguration config = new RecoveryConfiguration(); config.Identifier = identifier; state.Identifier = identifier; if (_runningClusteredJobMap.ContainsKey(identifier)) { IClusteredRecoveryJob _job = ((IClusteredRecoveryJob)_runningClusteredJobMap[identifier]); state = _job.CurrentState(config) as ClusteredRecoveryJobState; } else { ClusterJobInfoObject clusterJobs = _configurationStore.GetRecoveryJobData(identifier); if (clusterJobs != null)// this should always be equyal { state = clusterJobs.ExecutionState; } else { state.Message = "Invalid identifier provided"; } // query db for } } catch (Exception ex) { if (LoggerManager.Instance.RecoveryLogger != null && LoggerManager.Instance.RecoveryLogger.IsErrorEnabled) { LoggerManager.Instance.RecoveryLogger.Error("RecoveryManager.GetState()", ex.ToString()); } state.Message = ex.Message; } return(state); }