laatzen/LaaProductionWeb/LaaProduction.Search/SearchManager.cs
2024-09-18 15:36:12 +02:00

42 lines
1.3 KiB
C#

namespace LaaProduction.Search
{
using LaaProduction.Search.Data.Interfaces;
using System;
using System.Collections.Generic;
using System.Linq;
public class SearchManager : ISearchManager
{
private readonly IWildcardRepository wildcardRepository;
public SearchManager(IWildcardRepository wildcardRepository)
=> this.wildcardRepository = wildcardRepository;
public IEnumerable<IDictionary<String, Object>> SearchWildcard(String token, IEnumerable<String> selectedFields)
{
if (String.IsNullOrWhiteSpace(token))
{
return Array.Empty<IDictionary<String, Object>>();
}
token = token.Replace(" ", String.Empty).Trim();
selectedFields = selectedFields ?? Array.Empty<String>();
if (selectedFields.Any())
{
selectedFields = this.wildcardRepository.Fields().Intersect(selectedFields);
}
else
{
selectedFields = this.wildcardRepository.Fields();
}
return this.wildcardRepository.Find(token, selectedFields);
}
public IEnumerable<String> WildcardFields()
=> this.wildcardRepository.Fields();
}
}