public async Task <IActionResult> SearchAsync([FromBody] RecipeSearchRequest request) { var query = default(IQueryable <Recipe>); switch (request.Type) { case SearchMode.RecipeCategory: query = Repository.Recipe.GetRecipeByCategoryId(int.Parse(request.Text)); break; case SearchMode.RecipeName: query = Repository.Recipe.GetRecipeByName(request.Text); break; case SearchMode.RecipeIngredient: query = Repository.Recipe.GetRecipeByIngredient(request.Text); break; case SearchMode.RecipeAuthor: query = Repository.Recipe.GetRecipeByAuthor(request.Text); break; case SearchMode.LatestRecipes: query = Repository.Recipe.GetLatestRecipes().Take(request.TakeCount); break; } var source = await query .Select(s => Mapper.Map <RecipeResponse>(s)) .ToListAsync() .ConfigureAwait(false); return(Ok(PagedData <RecipeResponse> .Create(source, request.PageNumber, request.PageSize))); }
public static async Task <PagedData <User> > SearchByUsername(this UserManager <User> userManager, string query, PaginationOptions options) { var queryable = userManager.Users.Where(u => u.UserName.Contains(query) || u.FirstName.Contains(query) || u.LastName.Contains(query)); var data = new PagedData <User>(); return(await data.Create(queryable, options)); }
public Task <PagedData <Image> > Search(string query, PaginationOptions options) { var queryable = _context.Images .AsQueryable() .Where(i => i.ShortDescription.Contains(query) || i.Description.Contains(query)) .OrderByDescending(i => i.Published); var result = new PagedData <Image>(); return(result.Create(queryable, options)); }
public Task <PagedData <Image> > GetImagesByUser(string userId, PaginationOptions options) { var queryable = _context.Images .AsQueryable() .Where(i => i.User.Id == userId) .OrderByDescending(i => i.Published); var result = new PagedData <Image>(); return(result.Create(queryable, options)); }