Exemple #1
0
        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;
            }
        }