public void Execute(MissingAlbumSearchCommand message) { List <Album> albums; if (message.ArtistId.HasValue) { int artistId = message.ArtistId.Value; var pagingSpec = new PagingSpec <Album> { Page = 1, PageSize = 100000, SortDirection = SortDirection.Ascending, SortKey = "Id" }; pagingSpec.FilterExpressions.Add(v => v.Monitored == true && v.Artist.Value.Monitored == true); albums = _albumService.AlbumsWithoutFiles(pagingSpec).Records.Where(e => e.ArtistId.Equals(artistId)).ToList(); } else { var pagingSpec = new PagingSpec <Album> { Page = 1, PageSize = 100000, SortDirection = SortDirection.Ascending, SortKey = "Id" }; pagingSpec.FilterExpressions.Add(v => v.Monitored == true && v.Artist.Value.Monitored == true); albums = _albumService.AlbumsWithoutFiles(pagingSpec).Records.ToList(); } var queue = _queueService.GetQueue().Where(q => q.Album != null).Select(q => q.Album.Id); var missing = albums.Where(e => !queue.Contains(e.Id)).ToList(); SearchForMissingAlbums(missing, message.Trigger == CommandTrigger.Manual); }