private void ProcessJob(IServicesMgr servicesMgr, int workspaceArtifactId, int jobArtifactId) { try { //Update job status to In Progress _apiChooser.UpdateJobField(servicesMgr, workspaceArtifactId, jobArtifactId, Constants.Guids.Fields.InstanceMetricsJob.Status_LongText, Constants.JobStatus.IN_PROGRESS); //Update job metrics if (selectedApiType == Helpers.Constants.ApiType.Rsapi) { RDO jobRdo = _apiChooser.RetrieveJob(servicesMgr, workspaceArtifactId, jobArtifactId); RaiseMessage("Calculating metrics for the job", 10); ProcessAllMetrics(servicesMgr, workspaceArtifactId, jobArtifactId, jobRdo); RaiseMessage("Calculated metrics for the job", 10); } else if (selectedApiType == Helpers.Constants.ApiType.Gravity) { InstanceMetricsJobObj jobRdo = _apiChooser.RetrieveJobWithGravity(servicesMgr, workspaceArtifactId, jobArtifactId); RaiseMessage("Calculating metrics for the job", 10); ProcessAllMetrics(servicesMgr, workspaceArtifactId, jobArtifactId, jobRdo); RaiseMessage("Calculated metrics for the job", 10); } //Update job status to Completed _apiChooser.UpdateJobField(servicesMgr, workspaceArtifactId, jobArtifactId, Constants.Guids.Fields.InstanceMetricsJob.Status_LongText, Constants.JobStatus.COMPLETED); } catch (Exception ex) { //Update job status to Error string errorMessage = ExceptionMessageFormatter.GetInnerMostExceptionMessage(ex); _apiChooser.UpdateJobField(servicesMgr, workspaceArtifactId, jobArtifactId, Constants.Guids.Fields.InstanceMetricsJob.Status_LongText, Constants.JobStatus.ERROR); _apiChooser.UpdateJobField(servicesMgr, workspaceArtifactId, jobArtifactId, Constants.Guids.Fields.InstanceMetricsJob.Errors_LongText, errorMessage); } }
public static InstanceMetricsJobObj RetrieveJob(IServicesMgr servicesMgr, int workspaceArtifactId, int jobArtifactId) { RsapiDao rsapiDao = new RsapiDao(servicesMgr, workspaceArtifactId, ExecutionIdentity.System); InstanceMetricsJobObj jobRdo = new InstanceMetricsJobObj(); jobRdo = rsapiDao.Get <InstanceMetricsJobObj>(jobArtifactId, Gravity.Base.ObjectFieldsDepthLevel.OnlyParentObject); return(jobRdo); }
public InstanceMetricsJobObj RetrieveJobWithGravity(IServicesMgr servicesMgr, int workspaceArtifactId, int jobArtifactId) { InstanceMetricsJobObj jobRdo = null; jobRdo = GravityHelper.RetrieveJob(servicesMgr, workspaceArtifactId, jobArtifactId); return(jobRdo); }
private void ProcessAllMetrics(IServicesMgr servicesMgr, int workspaceArtifactId, int jobArtifactId, InstanceMetricsJobObj jobRdo) { try { foreach (MetricsChoices metric in jobRdo.Metrics) { Guid metricGuid = metric.GetRelativityObjectAttributeGuidValue(); ProcessSingleMetric(servicesMgr, workspaceArtifactId, jobArtifactId, metricGuid); } } catch (Exception ex) { throw new Exception(Constants.ErrorMessages.PROCESS_ALL_JOB_METRICS_ERROR, ex); } }