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); }