diff --git a/server/AyaNova/Controllers/AttachmentController.cs b/server/AyaNova/Controllers/AttachmentController.cs index 2264795e..12823d1f 100644 --- a/server/AyaNova/Controllers/AttachmentController.cs +++ b/server/AyaNova/Controllers/AttachmentController.cs @@ -236,7 +236,7 @@ namespace AyaNova.Api.Controllers // Search.ProcessNewObjectKeywords( UserLocaleIdFromContext.Id(HttpContext.Items), v.Id, AyaType.FileAttachment, v.DisplayFileName, v.DisplayFileName, v.Notes, v.StoredFileName); var SearchParams = new Search.SearchIndexProcessObjectParameters(UserLocaleIdFromContext.Id(HttpContext.Items), v.Id, AyaType.FileAttachment, v.DisplayFileName); SearchParams.AddText(v.Notes).AddText(v.DisplayFileName).AddText(v.StoredFileName); - Search.ProcessNewObjectKeywords(SearchParams); + Search.ProcessNewObjectKeywordsAsync(SearchParams); } } diff --git a/server/AyaNova/biz/Search.cs b/server/AyaNova/biz/Search.cs index e0c3e1bc..67b549d4 100644 --- a/server/AyaNova/biz/Search.cs +++ b/server/AyaNova/biz/Search.cs @@ -436,14 +436,14 @@ namespace AyaNova.Biz } - public static void ProcessNewObjectKeywords(SearchIndexProcessObjectParameters searchIndexObjectParameters)//(long localeId, long objectID, AyaType objectType, string name, params string[] text) + public static async Task ProcessNewObjectKeywordsAsync(SearchIndexProcessObjectParameters searchIndexObjectParameters)//(long localeId, long objectID, AyaType objectType, string name, params string[] text) { - ProcessKeywords(searchIndexObjectParameters, true);//localeId, objectID, objectType, true, name, text); + await ProcessKeywordsAsync(searchIndexObjectParameters, true);//localeId, objectID, objectType, true, name, text); } - public static void ProcessUpdatedObjectKeywords(SearchIndexProcessObjectParameters searchIndexObjectParameters)// localeId, long objectID, AyaType objectType, string name, params string[] text) + public static async Task ProcessUpdatedObjectKeywordsAsync(SearchIndexProcessObjectParameters searchIndexObjectParameters)// localeId, long objectID, AyaType objectType, string name, params string[] text) { - ProcessKeywords(searchIndexObjectParameters, false);//localeId, objectID, objectType, false, name, text); + await ProcessKeywordsAsync(searchIndexObjectParameters, false);//localeId, objectID, objectType, false, name, text); } public static async Task ProcessDeletedObjectKeywordsAsync(long objectID, AyaType objectType) @@ -463,7 +463,7 @@ namespace AyaNova.Biz /// Process the keywords into the dictionary /// NOTE: NAME parameter is in ADDITION to the NAME also being one of the strings passed in text parameter /// - private static void ProcessKeywords(SearchIndexProcessObjectParameters p, bool newRecord)//long localeId, long objectID, AyaType objectType, string name, params string[] text) + private static async Task ProcessKeywordsAsync(SearchIndexProcessObjectParameters p, bool newRecord)//long localeId, long objectID, AyaType objectType, string name, params string[] text) { #if (DEBUG) @@ -477,7 +477,7 @@ namespace AyaNova.Biz //IF NOT NEW, DELETE ALL EXISTING ENTRIES FOR OBJECT TYPE AND ID if (!newRecord) { - ProcessDeletedObjectKeywordsAsync(p.ObjectId, p.ObjectType); + await ProcessDeletedObjectKeywordsAsync(p.ObjectId, p.ObjectType); } //BREAK OBJECT TEXT STRINGS INTO KEYWORD LIST @@ -498,7 +498,7 @@ namespace AyaNova.Biz List MatchingKeywordIdList = new List(); //ITERATE ALL THE KEYWORDS, SEARCH IN THE SEARCHDICTIONARY TABLE AND COLLECT ID'S OF ANY PRE-EXISTING IN DB KEYWORDS - var ExistingKeywordMatches = ServiceProviderProvider.DBContext.SearchDictionary.AsNoTracking().Where(m => KeyWordList.Contains(m.Word)).ToDictionary(m => m.Id, m => m.Word); + var ExistingKeywordMatches = await ServiceProviderProvider.DBContext.SearchDictionary.AsNoTracking().Where(m => KeyWordList.Contains(m.Word)).ToDictionaryAsync(m => m.Id, m => m.Word); /*example of above query, returns a list of words and ids SELECT a.id, a.xmin, a.word FROM asearchdictionary AS a @@ -599,8 +599,8 @@ cache or provide directly the locale to save time repeatedly fetching it when do //ADD WORD TO DICTIONARY, SAVE THE ID INTO THE MATCHINGKEYWORDIDLIST var CtAdd = ServiceProviderProvider.DBContext; - CtAdd.SearchDictionary.Add(NewWord); - CtAdd.SaveChanges(); + await CtAdd.SearchDictionary.AddAsync(NewWord); + await CtAdd.SaveChangesAsync(); //------- @@ -627,7 +627,7 @@ cache or provide directly the locale to save time repeatedly fetching it when do } //FETCH THE WORD ID, PLACE IN MATCHINGKEYWORDLIST AND MOVE ON TO THE NEXT WORD - var SearchDictionaryMatchFoundInDB = ServiceProviderProvider.DBContext.SearchDictionary.AsNoTracking().Where(x => x.Word == KeyWord).FirstOrDefault(); + var SearchDictionaryMatchFoundInDB = await ServiceProviderProvider.DBContext.SearchDictionary.AsNoTracking().Where(x => x.Word == KeyWord).FirstOrDefaultAsync(); if (SearchDictionaryMatchFoundInDB != null) { MatchingKeywordIdList.Add(new MatchingDictionaryEntry() { DictionaryId = SearchDictionaryMatchFoundInDB.Id, InName = NameKeyWordList.Contains(KeyWord) }); @@ -666,8 +666,8 @@ cache or provide directly the locale to save time repeatedly fetching it when do NewSearchKeyList.Add(new SearchKey() { WordId = E.DictionaryId, InName = E.InName, ObjectId = p.ObjectId, ObjectType = p.ObjectType }); } var CtSearchKeyAdd = ServiceProviderProvider.DBContext; - CtSearchKeyAdd.SearchKey.AddRange(NewSearchKeyList); - CtSearchKeyAdd.SaveChanges(); + await CtSearchKeyAdd.SearchKey.AddRangeAsync(NewSearchKeyList); + await CtSearchKeyAdd.SaveChangesAsync(); //--------------------------------- diff --git a/server/AyaNova/biz/UserBiz.cs b/server/AyaNova/biz/UserBiz.cs index 91070d7b..7ee72291 100644 --- a/server/AyaNova/biz/UserBiz.cs +++ b/server/AyaNova/biz/UserBiz.cs @@ -355,9 +355,9 @@ namespace AyaNova.Biz SearchParams.AddText(obj.Notes).AddText(obj.Name).AddText(obj.EmployeeNumber).AddText(obj.Tags).AddCustomFields(obj.CustomFields); if (isNew) - Search.ProcessNewObjectKeywords(SearchParams); + Search.ProcessNewObjectKeywordsAsync(SearchParams); else - Search.ProcessUpdatedObjectKeywords(SearchParams); + Search.ProcessUpdatedObjectKeywordsAsync(SearchParams); } diff --git a/server/AyaNova/biz/WidgetBiz.cs b/server/AyaNova/biz/WidgetBiz.cs index 73c175a8..7d05f00a 100644 --- a/server/AyaNova/biz/WidgetBiz.cs +++ b/server/AyaNova/biz/WidgetBiz.cs @@ -68,7 +68,7 @@ namespace AyaNova.Biz //Called from route and also seeder internal async Task CreateAsync(Widget inObj) { - Validate(inObj, null); + await ValidateAsync(inObj, null); if (HasErrors) return null; else @@ -146,7 +146,7 @@ namespace AyaNova.Biz ct.Entry(dbObj).OriginalValues["ConcurrencyToken"] = inObj.ConcurrencyToken; - Validate(dbObj, SnapshotOfOriginalDBObj); + await ValidateAsync(dbObj, SnapshotOfOriginalDBObj); if (HasErrors) return false; @@ -176,7 +176,7 @@ namespace AyaNova.Biz dbObj.CustomFields = JsonUtil.CompactJson(dbObj.CustomFields); ct.Entry(dbObj).OriginalValues["ConcurrencyToken"] = concurrencyToken; - Validate(dbObj, SnapshotOfOriginalDBObj); + await ValidateAsync(dbObj, SnapshotOfOriginalDBObj); if (HasErrors) return false; @@ -198,9 +198,9 @@ namespace AyaNova.Biz if (isNew) - await Search.ProcessNewObjectKeywords(SearchParams); + await Search.ProcessNewObjectKeywordsAsync(SearchParams); else - await Search.ProcessUpdatedObjectKeywords(SearchParams); + await Search.ProcessUpdatedObjectKeywordsAsync(SearchParams); } @@ -232,7 +232,7 @@ namespace AyaNova.Biz // //Can save or update? - private async Task Validate(Widget proposedObj, Widget currentObj) + private async Task ValidateAsync(Widget proposedObj, Widget currentObj) { //NOTE: In DB schema only name and serial are not nullable