Esempio n. 1
0
        public ServiceResult <RecipeDTO[]> SearchRecipes(RecipeSearchDTO searchData, int pageIndex = 0, int pageSize = 0)
        {
            var recipes = _recipeRepository.GetAllBy(r =>             //MatchesSearchQuery(r, searchData), //oddzielna funkcja nie działa, więc muszę tak
                                                     (String.IsNullOrWhiteSpace(searchData.RecipeName) || r.Name.ToLower().Contains(searchData.RecipeName.ToLower())) &&
                                                     (searchData.MaxTimeToMake == null || r.TimeToMake == null || r.TimeToMake <= searchData.MaxTimeToMake) &&
                                                     searchData.Ingredients.Select(i => i.ToLower().Trim()).Except(
                                                         r.RecipeIngredients.Select(ri => ri.Ingredient.Name.ToLower())) //zwraca kolekcję składników niezawartych w tym przepisie
                                                     .Count() == 0,
                                                     r => r.RecipeIngredients, ri => ((RecipeIngredient)ri).Ingredient, pageIndex, pageSize);

            var mappedRecipes = _mapper.Map <RecipeDTO[]>(recipes);

            return(new ServiceResult <RecipeDTO[]>(mappedRecipes));
        }
Esempio n. 2
0
 public ActionResult <RecipeDTO[]> Search(RecipeSearchDTO searchData, int pageIndex = 0, int pageSize = 0)
 {
     return(this.HandleServiceResult(_recipeService.SearchRecipes(searchData, pageIndex, pageSize)));
 }