コード例 #1
0
        public async Task <ActionResult <List <string> > > QueryWord([FromQuery] FilterFromUserDTO filter)
        {
            var queryable = _context.SavedWords.AsQueryable();

            if (!String.IsNullOrWhiteSpace(filter.UserId))
            {
                queryable = queryable.Where(x => x.UserId.Contains(filter.UserId));
            }

            if (!String.IsNullOrWhiteSpace(filter.sortBy))
            {
                if (typeof(SavedWord).GetProperty(filter.sortBy) != null)
                {
                    queryable = queryable.OrderByCustom(filter.sortBy, filter.SortOrder);
                }
            }

            queryable = queryable.Take(filter.Size);

            var words = await queryable.Select(x => x.Word)
                        .Distinct()
                        .ToListAsync();

            return(words);
        }
コード例 #2
0
        public async Task <ActionResult <List <FavoriteDTO> > > FilterFavorites([FromQuery] FilterFromUserDTO filter)
        {
            var queryable = _context.Favorites.AsQueryable();

            if (!String.IsNullOrWhiteSpace(filter.UserId))
            {
                queryable = queryable.Where(x => x.OwnerId.Contains(filter.UserId));
            }

            if (!String.IsNullOrWhiteSpace(filter.sortBy))
            {
                if (typeof(FavoritesArticles).GetProperty(filter.sortBy) != null)
                {
                    queryable = queryable.OrderByCustom(filter.sortBy, filter.SortOrder);
                }
            }

            queryable = queryable.Take(filter.Size);

            var favorites = await queryable.Include(x => x.Article)
                            .ThenInclude(x => x.Author)
                            .ToListAsync();

            return(_mappper.Map <List <FavoriteDTO> >(favorites));
        }