private IQueryable <GalleryCat> GetBaseCatQuery(GalleryCatsListQueryOptions options) { var catQuery = Context.GalleryCats .Include(x => x.Game) .Include(x => x.Developer) .Include(x => x.ParentCat).AsQueryable(); if (!string.IsNullOrEmpty(options.Url)) { catQuery = catQuery.Where(x => x.Url == options.Url); } if (options.Parent != null) { catQuery = ApplyParentCondition(catQuery, options.Parent); } if (options.ParentCat != null) { catQuery = catQuery.Where(x => x.CatId == options.ParentCat.Id); } else if (options.OnlyRoot) { catQuery = catQuery.Where(x => x.CatId == null); } return(catQuery); }
public async Task <GalleryCat> GetCat(GalleryCatsListQueryOptions options) { var query = GetBaseCatQuery(options); var cat = await query.FirstOrDefaultAsync(); if (cat != null) { await ProccessCatAsync(cat, options); } return(cat); }
public async Task <(IEnumerable <GalleryCat>, int)> GetCats(GalleryCatsListQueryOptions options) { var query = GetBaseCatQuery(options); var data = await GetDataAsync(query, options); foreach (var cat in data.models) { await ProccessCatAsync(cat, options); } return(data); }