diff --git a/GrossesMitaines/GrossesMitainesAPI/Controllers/SearchController.cs b/GrossesMitaines/GrossesMitainesAPI/Controllers/SearchController.cs index 4043923..4eafcbb 100644 --- a/GrossesMitaines/GrossesMitainesAPI/Controllers/SearchController.cs +++ b/GrossesMitaines/GrossesMitainesAPI/Controllers/SearchController.cs @@ -22,7 +22,7 @@ public class SearchController : Controller { _logger = logger; _context = context; _cache = cache; - if (_cache.isOk()) + if (_cache.isOk()) // Se fait une copie de la cache si elle est fonctionnelle. _searchCache = _cache.GetCacheCopy(); } @@ -43,7 +43,7 @@ public class SearchController : Controller { if (deep.HasValue && deep == true) { List title = new(), desc = new(), cat = new(); query = query.ToLower(); - foreach (Product prod in _context.Products.ToList()) { + foreach (Product prod in _context.Products.ToArray()) { string sTitle = prod.Title.Replace(",", " ").ToLower(), sCat = prod.Category.ToLower(), sDesc = prod.Description.Replace(".", " ").Replace(",", " ").ToLower(); @@ -61,10 +61,10 @@ public class SearchController : Controller { products.AddRange(cat); } else { products = _context.Products.Where(x => x.Title.Contains(query)).ToList(); - foreach (Product prod in _context.Products.Where(x => x.Description.Contains(query)).ToList()) + foreach (Product prod in _context.Products.Where(x => x.Description.Contains(query)).ToArray()) if (!products.Contains(prod)) products.Add(prod); - foreach (Product prod in _context.Products.Where(x => x.Category.Contains(query)).ToList()) + foreach (Product prod in _context.Products.Where(x => x.Category.Contains(query)).ToArray()) if (!products.Contains(prod)) products.Add(prod); } @@ -80,7 +80,7 @@ public class SearchController : Controller { query = query.Trim(); if (_searchCache is null) { _logger.LogError(8, "Erreur de cache."); - return Search(query, preview, deep); + return Search(query, preview, deep); // Fallback vers version non-cached en cas d'erreur. } try { // Pour faire une liste priorisée. if (preview.HasValue && preview == true) @@ -107,17 +107,17 @@ public class SearchController : Controller { products.AddRange(cat); } else { products = _searchCache.Where(x => x.Title.Contains(query)).ToList(); - foreach (Product prod in _searchCache.Where(x => x.Description.Contains(query)).ToList()) + foreach (Product prod in _searchCache.Where(x => x.Description.Contains(query)).ToArray()) if (!products.Contains(prod)) products.Add(prod); - foreach (Product prod in _searchCache.Where(x => x.Category.Contains(query)).ToList()) + foreach (Product prod in _searchCache.Where(x => x.Category.Contains(query)).ToArray()) if (!products.Contains(prod)) products.Add(prod); } } } catch (Exception e) { _logger.LogError(8, e.Message); - return Search(query, preview, deep); + return Search(query, preview, deep); // Fallback vers version non-cached en cas d'erreur. } return products; }