コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        public InstanceMetricsJobObj RetrieveJobWithGravity(IServicesMgr servicesMgr, int workspaceArtifactId, int jobArtifactId)
        {
            InstanceMetricsJobObj jobRdo = null;

            jobRdo = GravityHelper.RetrieveJob(servicesMgr, workspaceArtifactId, jobArtifactId);

            return(jobRdo);
        }
コード例 #4
0
        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);
            }
        }