in src/app/ContosoTraders.Api.Core/Services/Implementations/ProductService.cs [51:71]
public IEnumerable<ProductDto> GetProducts(string searchTerm)
{
searchTerm = searchTerm.ToLower();
var allTypes = _productRepository.Types.ToArray();
var allFeatures = _productRepository.Features.ToArray();
var responseDaos = _productRepository.Products.AsEnumerable()
.Where(product => searchTerm.Split(' ', StringSplitOptions.RemoveEmptyEntries)
.Any(term =>
product.Name.ToLower().Contains(term) ||
allTypes.FirstOrDefault(type => type.Id == product.TypeId).Name.ToLower().Contains(term) ||
allFeatures.Where(feature => feature.ProductItemId == product.Id)
.Any(item => item.Description.Contains(term))));
var responseDtos = responseDaos.ToArray()
.Select(dao => CustomMapping(dao, null, allTypes, null));
return responseDtos;
}