public void Cancel(JobCancellation.CancelReason reason, string userName, string comment, IOenRepository oenRepository) { if (!TerminatingStatuses.Contains(Status)) { var targets = oenRepository.Retrieve<JobTarget>().Where(t => t.job_id == job_id).ToList(); var blendingJobs = oenRepository.GetBlendingJobs(this); targets.AddRange(from j in blendingJobs join t in oenRepository.Retrieve<JobTarget>() on j.job_id equals t.job_id select t); targets.ForEach(t => t.jobtargetstatus_id = 4); oenRepository.AddJobCancellation(new JobCancellation() { Comment = comment, JobId = job_id, Reason = reason, StatusWhenCancelled = Status, User = userName }); Status = Statuses.Cancelled; } }