コード例 #1
0
        private static void CanchelIfNotValidJob(JobMeta job)
        {
            var jobIsValid = _validator.ApplyChecks(job);

            if (jobIsValid == false)
            {
                job.CancelJob();
            }
        }
コード例 #2
0
        private static void Subscriber(JobMeta job)
        {
            var isPaused            = job._job.IsSpooling == false && job._job.IsPaused == true;
            var alreadyProcessedJob = _jobs.Contains(job.Guid) == true;

            if (isPaused && !alreadyProcessedJob)
            {
                _jobs.Add(job.Guid); //ToDo одно задание сюда попадает множество раз. Для предотвращения кроме имени документа нужно генерировать уникальный хэш
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.WriteLine($"Process aborted: {job._job.JobStatus}");
                Console.ForegroundColor = ConsoleColor.White;
                return;
            }

            WriteLogs(job);

            var jobIsValid = _validator.ApplyChecks(job);

            if (jobIsValid == false)
            {
                job.CancelJob();
            }

            Client client       = Auth.GetClient();
            var    canBePrinted = ClientValidator.CanContinuePrinting(client, job);

            if (canBePrinted)
            {
                RunPrintJob(job._job);
            }
            else
            {
                job._job.Cancel();
            }

            WriteLogsAboutJobAndClient(job, client, canBePrinted);

            // RemoveJobIfPaused(job, isPaused);
        }