/// <summary> /// Finds all dependencies for a JobExecution, including JobInstance (which /// requires JobParameters) plus StepExecutions. /// </summary> /// <param name="jobExecution"></param> private void GetJobExecutionDependencies(JobExecution jobExecution) { JobInstance jobInstance = _jobInstanceDao.GetJobInstance(jobExecution); _stepExecutionDao.AddStepExecutions(jobExecution); jobExecution.JobInstance = jobInstance; jobExecution.ExecutionContext = _executionContextDao.GetExecutionContext(jobExecution); }
/// <summary> /// Returns last StepExecution. /// </summary> /// <param name="jobInstance"></param> /// <param name="stepName"></param> /// <returns></returns> public StepExecution GetLastStepExecution(JobInstance jobInstance, string stepName) { var jobExecutions = _jobExecutionDao.FindJobExecutions(jobInstance); var stepExecutions = new List <StepExecution>(jobExecutions.Count); foreach (var jobExecution in jobExecutions) { _stepExecutionDao.AddStepExecutions(jobExecution); stepExecutions.AddRange(jobExecution.StepExecutions.Where(stepExecution => stepName.Equals(stepExecution.StepName))); } StepExecution latest = null; foreach (var stepExecution in stepExecutions) { if (latest == null) { latest = stepExecution; } if (latest.StartTime.Ticks < stepExecution.StartTime.Ticks) { latest = stepExecution; } } if (latest == null) { return(null); } var stepExecutionContext = _executionContextDao.GetExecutionContext(latest); latest.ExecutionContext = stepExecutionContext; var jobExecutionContext = _executionContextDao.GetExecutionContext(latest.JobExecution); latest.JobExecution.ExecutionContext = jobExecutionContext; return(latest); }