From b8814ce7089d7140b409ae70f7e5d84601995819 Mon Sep 17 00:00:00 2001 From: franc Date: Wed, 16 Apr 2025 15:18:39 +0200 Subject: [PATCH] Correct the Method and rename Method --- .../Repositories/Recipe/IRecipeRepository.cs | 2 +- .../Repositories/Recipe/RecipeRepository.cs | 27 +++++++++---------- 2 files changed, 13 insertions(+), 16 deletions(-) diff --git a/Francesco.Recipes.World/Repositories/Recipe/IRecipeRepository.cs b/Francesco.Recipes.World/Repositories/Recipe/IRecipeRepository.cs index 0f1d8a3..ca81b4b 100644 --- a/Francesco.Recipes.World/Repositories/Recipe/IRecipeRepository.cs +++ b/Francesco.Recipes.World/Repositories/Recipe/IRecipeRepository.cs @@ -17,6 +17,6 @@ Task CreateRecipeForCategoryAsync(Category category, string name, string description, Difficulty difficulty, int servings, TimeSpan preparationTime, TimeSpan cookingTime); - Task> GetRecipesBySearchQueryAsync(string query); + Task> SerachRecipeAndIngredientAsync(string query); } } diff --git a/Francesco.Recipes.World/Repositories/Recipe/RecipeRepository.cs b/Francesco.Recipes.World/Repositories/Recipe/RecipeRepository.cs index 41f7927..bd2216b 100644 --- a/Francesco.Recipes.World/Repositories/Recipe/RecipeRepository.cs +++ b/Francesco.Recipes.World/Repositories/Recipe/RecipeRepository.cs @@ -147,24 +147,21 @@ await _context.SaveChangesAsync(); } - public async Task> GetRecipesBySearchQueryAsync(string query) + public async Task> SerachRecipeAndIngredientAsync(string searchTerm) { - if (string.IsNullOrWhiteSpace(query)) - { - return await _context.Recipes - .Include(r => r.RecipeIngredients) - .ThenInclude(ri => ri.Ingredient) - .ToListAsync(); - } - - query = query.ToLower(); - - return await _context.Recipes + var queryable = _context.Recipes .Include(r => r.RecipeIngredients) .ThenInclude(ri => ri.Ingredient) - .Where(r => r.Name.ToLower().Contains(query) || - r.RecipeIngredients.Any(ri => ri.Ingredient.Name.ToLower().Contains(query))) - .ToListAsync(); + .AsQueryable(); + + if (!string.IsNullOrWhiteSpace(searchTerm)) + { + searchTerm = searchTerm.ToLower(); + queryable = queryable.Where(r => r.Name.ToLower().Contains(searchTerm) || + r.RecipeIngredients.Any(ri => ri.Ingredient.Name.ToLower().Contains(searchTerm))); + } + + return await queryable.ToListAsync(); } public async Task> GetRecipesByDifficultyAsync(Difficulty? difficulty)