From e4b10b82ee07eb3593655e001ac000e57b764187 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 19 Sep 2018 23:00:49 +0000 Subject: [PATCH] --- server/AyaNova/biz/BizObjectNameFetcher.cs | 3 +-- server/AyaNova/biz/Search.cs | 27 ++++++++++++++++++---- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/server/AyaNova/biz/BizObjectNameFetcher.cs b/server/AyaNova/biz/BizObjectNameFetcher.cs index 9db56dd2..9f95c038 100644 --- a/server/AyaNova/biz/BizObjectNameFetcher.cs +++ b/server/AyaNova/biz/BizObjectNameFetcher.cs @@ -13,8 +13,7 @@ using AyaNova.Models; namespace AyaNova.Biz { - //TODO: UNTESTED, UNUSED (SO FAR)CODE - //This was just blocked out because I know I will need it in future + //Turn a type and ID into a displayable name internal static class BizObjectNameFetcher { diff --git a/server/AyaNova/biz/Search.cs b/server/AyaNova/biz/Search.cs index 58a560af..bb48b897 100644 --- a/server/AyaNova/biz/Search.cs +++ b/server/AyaNova/biz/Search.cs @@ -170,17 +170,34 @@ namespace AyaNova.Biz //SEARCH SEARCHKEY FOR MATCHING WORDS AND OPTIONALLY TYPE AND INNAME List SearchKeyMatches = new List(); - SearchKeyMatches = await ct.SearchKey.Where(m => DictionaryMatches.Contains(m.Id)).ToListAsync(); + + //Build search query based on searchParameters + var q = ct.SearchKey.Where(m => DictionaryMatches.Contains(m.Id)); + + //In name? + if (searchParameters.NameOnly) + q.Where(m => m.InName == true); + + //Of type? + if (searchParameters.TypeOnly != AyaType.NoType) + q.Where(m => m.ObjectType == searchParameters.TypeOnly); + + //Trigger the search + SearchKeyMatches = await q.ToListAsync(); //IF TAGS SPECIFIED //LOOP THROUGH SEARCHKEY MATCHES //FOREACH OBJECT SEARCH TAGMAP FOR MATCHING OBJECTTYPE AND ID //REMOVE RESULTS FROM SEARCH PHRASE PHASE THAT ARE NOT MATCHING - - - //fake await to clear error - //await ct.SaveChangesAsync(); + foreach (SearchKey SearchKeyMatch in SearchKeyMatches) + { + SearchResult SR = new SearchResult(); + SR.Name = BizObjectNameFetcher.Name(SearchKeyMatch.ObjectType, SearchKeyMatch.ObjectId, ct); + SR.Id = SearchKeyMatch.ObjectId; + SR.Type = SearchKeyMatch.ObjectType; + ResultList.Add(SR); + } return ResultList; }