Ejemplo n.º 1
0
        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);
        }