private void ExecuteJob(JobItem job, List <string> executedJobIds) { if (!executedJobIds.Contains(job.Id)) { if (job.Dependency != null) { ExecuteJob(job.Dependency, executedJobIds); } executedJobIds.Add(job.Id); } }
private void CheckCircularDependency(JobItem job, List <JobItem> dependencyList) { dependencyList.Add(job); if (dependencyList.Count() > dependencyList.Distinct().Count()) { throw new CircularDependencyException(); } if (job.Dependency != null) { CheckCircularDependency(job.Dependency, dependencyList); } }