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); }
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)); }