This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
/// </summary>
|
||||
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<MatchingDictionaryEntry> MatchingKeywordIdList = new List<MatchingDictionaryEntry>();
|
||||
|
||||
//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();
|
||||
|
||||
//---------------------------------
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ namespace AyaNova.Biz
|
||||
//Called from route and also seeder
|
||||
internal async Task<Widget> 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
|
||||
|
||||
Reference in New Issue
Block a user