public async Task <IEnumerable <SeriesLookupItem> > GetSeriesLookupAsync(string viewModelName,
                                                                                 SeriesMaintenanceFilterCondition seriesMaintenanceFilterCondition = SeriesMaintenanceFilterCondition.NoFilter,
                                                                                 SeriesFilterCondition filterCondition = SeriesFilterCondition.NoFilter)
        {
            var maintenanceFilterCondition = GetMaintenanceFilterCondition(seriesMaintenanceFilterCondition);
            var condition = GetFilterCondition(filterCondition);
            var filter    = maintenanceFilterCondition.And(condition);

            await using var ctx = _contextCreator();
            return(await ctx.Series
                   .Include(b => b.Books)
                   .ThenInclude(b => b.Book)
                   .ThenInclude(b => b.Formats)
                   .AsNoTracking()
                   .Where(filter)
                   .OrderBy(s => s.Name)
                   .Select(s =>
                           new SeriesLookupItem
            {
                Id = s.Id,
                DisplayMember = s.Name,
                Picture = GetPictureThumbnail(s.PicturePath) ?? _placeholderPic,
                ViewModelName = viewModelName,
                InfoText = GetInfoText(s),
                SeriesState = GetSeriesState(s)
            })
                   .ToListAsync());
 static Expression <Func <Series, bool> > GetMaintenanceFilterCondition(SeriesMaintenanceFilterCondition condition)
 {
     return(condition switch
     {
         SeriesMaintenanceFilterCondition.NoFilter => p => true,
         SeriesMaintenanceFilterCondition.NoDescription => p => string.IsNullOrEmpty(p.Description),
         SeriesMaintenanceFilterCondition.NoBooks => p => p.Books.Count == 0,
         SeriesMaintenanceFilterCondition.NoPicture => p => p.PicturePath.Contains("placeholder"),
         _ => throw new ArgumentOutOfRangeException(nameof(condition), "Invalid filter condition!")
     });