This commit is contained in:
@@ -139,45 +139,38 @@ namespace AyaNova.Biz
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//List holder for matching dictionary ID's
|
||||||
|
List<long> DictionaryMatches = new List<long>();
|
||||||
|
|
||||||
//GET LIST OF DICTIONARY ID'S THAT MATCH REGULAR SEARCH TERMS
|
//GET LIST OF DICTIONARY ID'S THAT MATCH REGULAR SEARCH TERMS
|
||||||
List<SearchDictionary> RegularMatches = new List<SearchDictionary>();
|
|
||||||
if (RegularSearchTerms.Count > 0)
|
if (RegularSearchTerms.Count > 0)
|
||||||
RegularMatches = await ct.SearchDictionary.Where(m => RegularSearchTerms.Contains(m.Word)).ToListAsync();
|
DictionaryMatches = await ct.SearchDictionary.Where(m => RegularSearchTerms.Contains(m.Word)).Select(m => m.Id).ToListAsync();
|
||||||
|
|
||||||
|
|
||||||
//GET LIST OF DICTIONARY ID'S THAT MATCH WILDCARD SEARCH TERMS
|
//GET LIST OF DICTIONARY ID'S THAT MATCH WILDCARD SEARCH TERMS
|
||||||
List<SearchDictionary> WildCardMatches = new List<SearchDictionary>();
|
|
||||||
if (WildCardSearchTerms.Count > 0)
|
if (WildCardSearchTerms.Count > 0)
|
||||||
{
|
{
|
||||||
//Ok some fuckery required to implement this the EF CORE way
|
|
||||||
/*
|
|
||||||
.Where(entity => entity.Name.Contains("xyz"))
|
|
||||||
.Where(entity => entity.Name.EndsWith("xyz"))
|
|
||||||
.Where(entity => entity.Name.StartsWith("xyz"))
|
|
||||||
*/
|
|
||||||
foreach (string WildCardSearchTerm in WildCardSearchTerms)
|
foreach (string WildCardSearchTerm in WildCardSearchTerms)
|
||||||
{
|
{
|
||||||
//Contains?
|
//Contains?
|
||||||
if (WildCardSearchTerm.StartsWith("%") && WildCardSearchTerm.EndsWith("%"))
|
if (WildCardSearchTerm.StartsWith("%") && WildCardSearchTerm.EndsWith("%"))
|
||||||
{
|
{
|
||||||
WildCardMatches.AddRange(await ct.SearchDictionary.Where(m => m.Word.EndsWith(WildCardSearchTerm.Replace("%", ""))).ToListAsync());
|
DictionaryMatches.AddRange(await ct.SearchDictionary.Where(m => m.Word.EndsWith(WildCardSearchTerm.Replace("%", ""))).Select(m => m.Id).ToListAsync());
|
||||||
}
|
}
|
||||||
else if (WildCardSearchTerm.EndsWith("%")) //STARTS WITH?
|
else if (WildCardSearchTerm.EndsWith("%")) //STARTS WITH?
|
||||||
{
|
{
|
||||||
WildCardMatches.AddRange(await ct.SearchDictionary.Where(m => m.Word.EndsWith(WildCardSearchTerm.Replace("%", ""))).ToListAsync());
|
DictionaryMatches.AddRange(await ct.SearchDictionary.Where(m => m.Word.EndsWith(WildCardSearchTerm.Replace("%", ""))).Select(m => m.Id).ToListAsync());
|
||||||
}
|
}
|
||||||
else if (WildCardSearchTerm.StartsWith("%"))//ENDS WITH?
|
else if (WildCardSearchTerm.StartsWith("%"))//ENDS WITH?
|
||||||
{
|
{
|
||||||
WildCardMatches.AddRange(await ct.SearchDictionary.Where(m => m.Word.EndsWith(WildCardSearchTerm.Replace("%", ""))).ToListAsync());
|
DictionaryMatches.AddRange(await ct.SearchDictionary.Where(m => m.Word.EndsWith(WildCardSearchTerm.Replace("%", ""))).Select(m => m.Id).ToListAsync());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
WildCardMatches = await ct.SearchDictionary.Where(m => WildCardMatches.Contains(m.Word)).ToListAsync();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//SEARCH SEARCHKEY FOR MATCHING WORDS AND OPTIONALLY TYPE AND INNAME
|
//SEARCH SEARCHKEY FOR MATCHING WORDS AND OPTIONALLY TYPE AND INNAME
|
||||||
|
List<SearchKey> SearchKeyMatches = new List<SearchKey>();
|
||||||
|
SearchKeyMatches = await ct.SearchKey.Where(m => DictionaryMatches.Contains(m.Id)).ToListAsync();
|
||||||
|
|
||||||
//IF TAGS SPECIFIED
|
//IF TAGS SPECIFIED
|
||||||
//LOOP THROUGH SEARCHKEY MATCHES
|
//LOOP THROUGH SEARCHKEY MATCHES
|
||||||
|
|||||||
Reference in New Issue
Block a user