public async Task Execute() { var lists = await _traktService.GetProcessable(); foreach (var traktList in lists) { switch (traktList.Type) { case ListType.Movie: Hangfire.BackgroundJob.Enqueue <ProcessMovieListBackgroundJob>(x => x.Execute(traktList.Id)); break; case ListType.Show: Hangfire.BackgroundJob.Enqueue <ProcessShowListBackgroundJob>(x => x.Execute(traktList.Id)); break; default: throw new ArgumentOutOfRangeException(); } } }