Пример #1
0
        public async Task <IEnumerable <Tag> > GetAllTagsAsync(TagSortKind sort)
        {
            var query = _refsContext.Tags.Include("Statistics").AsNoTracking();

            query = QueryUtil.AppendQueryForTagSort(query, sort);
            var storedTags = await query.ToArrayAsync();

            return(storedTags);
        }
Пример #2
0
        public async Task <ActionResult> NarrowIndex(TagSortKind sort = TagSortKind.RefListCountDescending)
        {
            var tags = await _tagHandler.GetAllTagsAsync(sort);

            var vm = new IndexPageViewModel()
            {
                Tags = Mapper.Map <ICollection <TagViewModel> >(tags),
            };

            return(JsonNet(vm, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public static IQueryable <Tag> AppendQueryForTagSort(IQueryable <Tag> query, TagSortKind sort)
        {
            switch (sort)
            {
            case TagSortKind.RefListCountDescending:
                query = query.OrderByDescending(t => t.Statistics.RefListCount).ThenBy(t => t.Name);
                break;

            case TagSortKind.FavoriteCountDescending:
                query = query.OrderByDescending(t => t.Statistics.FavoriteCount).ThenBy(t => t.Name);
                break;

            case TagSortKind.NameAscending:
                query = query.OrderBy(t => t.Name);
                break;
            }
            return(query);
        }