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 async Task UseServerRecipeSearchRequest() { var recipeRequest = new RecipeSearchRequest() { ingredients = "chicken, onions" }; //}; RecipeSearchResponse response = await Mediator.Send(recipeRequest); response.RecipeSearchResults.Count.ShouldBe(5); }
//public string Ingredients = QueryHelpers.AddQueryString(IngredientSearchUrl, queryParams); public async Task UseSpoonApi() { var recipeRequest = new RecipeSearchRequest() { ingredients = "chicken, onions" }; string searchString = SharedRecipeSearchRequest.SearchUrlBuilder(recipeRequest.number, recipeRequest.ranking, recipeRequest.ignorePantry, recipeRequest.ingredients); //}; List <RecipeSearchResult> response = await SpoonHttpClient.GetJsonAsync <List <RecipeSearchResult> >(searchString); response.Count.ShouldBe(5); }