コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }