Пример #1
0
        public static IEnumerable <IJob>?CreateJobs(FeedResult feedResult, IJobBuilder jobBuilder, JobManager jobManager, CancellationToken cancellationToken)
        {
            if (!feedResult.Successful)
            {
                return(null);
            }
            if (feedResult.Songs.Count == 0)
            {
                Logger.log?.Info("No songs");
                return(Array.Empty <IJob>());
            }
            List <IJob> jobs = new List <IJob>(feedResult.Count);

            foreach (ScrapedSong song in feedResult.Songs.Values)
            {
                Job newJob = jobBuilder.CreateJob(song);
                newJob.RegisterCancellationToken(cancellationToken);
                jobManager.TryPostJob(newJob, out IJob? postedJob);
                if (postedJob != null)
                {
                    jobs.Add(postedJob);
                }
                else
                {
                    Logger.log?.Info($"Posted job is null for {song}, this shouldn't happen.");
                }
            }
            return(jobs);
        }