This commit is contained in:
@@ -681,67 +681,6 @@ namespace AyaNova.Biz
|
||||
|
||||
#region Breaker
|
||||
|
||||
// //Class to hold relevant translation data for breaking text
|
||||
// public class TranslationWordBreakingData
|
||||
// {
|
||||
// public bool CJKIndex { get; set; }
|
||||
// public List<string> StopWords { get; set; }
|
||||
// public TranslationWordBreakingData()
|
||||
// {
|
||||
// CJKIndex = false;
|
||||
// StopWords = new List<string>();
|
||||
// }
|
||||
// }
|
||||
|
||||
// private static Dictionary<long, TranslationWordBreakingData> translationWordBreakingDataCache = new Dictionary<long, TranslationWordBreakingData>();
|
||||
|
||||
// //called at startup to populate cache
|
||||
//WAS GOING TO ADD THIS IN RESPONSE TO AN ISSUE WITH EXCEPTION ATTEMPTING TO ADD ALREADY EXISTING DICTIONARY ID 1, BUT IT NEVER HAPPENED AGAIN, SO :SHRUGEMOJI:
|
||||
//IF IT DOES, MAKE THIS CODE AND POPULATE IT AT SERVER BOOT AND SHOULD BE ADEQUATE
|
||||
//OR GO NUTS WITH A FULL MEMORY CACHE: https://docs.microsoft.com/en-us/aspnet/core/performance/caching/memory?view=aspnetcore-3.1
|
||||
// internal static async Task CacheAllTranslationWordBreakingData(){
|
||||
// //iterate all Translations, cache the word break data
|
||||
// l = await ct.Translation
|
||||
// .AsNoTracking()
|
||||
// .OrderBy(z => z.Name)
|
||||
// .Select(z => new NameIdItem()
|
||||
// {
|
||||
// Id = z.Id,
|
||||
// Name = z.Name
|
||||
// }).ToListAsync();
|
||||
// TranslationWordBreakingDataCache.Add(TranslationId, await GetTranslationSearchDataAsync(TranslationId));
|
||||
// }
|
||||
// internal static async Task<TranslationWordBreakingData> GetTranslationSearchDataAsync(long translationId, AyContext ct = null)
|
||||
// {
|
||||
// TranslationWordBreakingData LSD = new TranslationWordBreakingData();
|
||||
// if (ct == null)
|
||||
// ct = ServiceProviderProvider.DBContext;
|
||||
// //Get stopwords
|
||||
// //Validate translation id, if not right then use default instead
|
||||
// var Param = new List<string>();
|
||||
// translationId = await TranslationBiz.ReturnSpecifiedTranslationIdIfExistsOrDefaultTranslationId(translationId, ct);
|
||||
// Param.Add("StopWords1");
|
||||
// Param.Add("StopWords2");
|
||||
// Param.Add("StopWords3");
|
||||
// Param.Add("StopWords4");
|
||||
// Param.Add("StopWords5");
|
||||
// Param.Add("StopWords6");
|
||||
// Param.Add("StopWords7");
|
||||
// var Stops = await TranslationBiz.GetSubsetStaticAsync(Param, translationId);
|
||||
|
||||
// foreach (KeyValuePair<string, string> kvp in Stops)
|
||||
// {
|
||||
// //Each stopwords translation key is a space delimited list of words and in the case of an empty local string (i.e. StopWords7) it's value is a single question mark
|
||||
// if (kvp.Value != "?")
|
||||
// {
|
||||
// LSD.StopWords.AddRange(kvp.Value.Split(" "));
|
||||
// }
|
||||
// }
|
||||
|
||||
// LSD.CJKIndex = await TranslationBiz.GetCJKIndexAsync(translationId, ct);
|
||||
// return LSD;
|
||||
// }
|
||||
|
||||
public enum TokenTypes
|
||||
{ Nothing, Separator, CJK, Latin };
|
||||
|
||||
|
||||
@@ -31,30 +31,32 @@ namespace AyaNova.Biz
|
||||
internal static async Task<TranslationWordBreakingData> GetTranslationSearchDataAsync(long translationId)
|
||||
{
|
||||
TranslationWordBreakingData LSD = new TranslationWordBreakingData();
|
||||
AyContext ct = ServiceProviderProvider.DBContext;
|
||||
//Get stopwords
|
||||
//Validate translation id, if not right then use default instead
|
||||
var Param = new List<string>();
|
||||
translationId = await TranslationBiz.ReturnSpecifiedTranslationIdIfExistsOrDefaultTranslationId(translationId, ct);
|
||||
Param.Add("StopWords1");
|
||||
Param.Add("StopWords2");
|
||||
Param.Add("StopWords3");
|
||||
Param.Add("StopWords4");
|
||||
Param.Add("StopWords5");
|
||||
Param.Add("StopWords6");
|
||||
Param.Add("StopWords7");
|
||||
var Stops = await TranslationBiz.GetSubsetStaticAsync(Param, translationId);
|
||||
|
||||
foreach (KeyValuePair<string, string> kvp in Stops)
|
||||
using (AyContext ct = ServiceProviderProvider.DBContext)
|
||||
{
|
||||
//Each stopwords translation key is a space delimited list of words and in the case of an empty local string (i.e. StopWords7) it's value is a single question mark
|
||||
if (kvp.Value != "?")
|
||||
{
|
||||
LSD.StopWords.AddRange(kvp.Value.Split(" "));
|
||||
}
|
||||
}
|
||||
//Get stopwords
|
||||
//Validate translation id, if not right then use default instead
|
||||
var Param = new List<string>();
|
||||
translationId = await TranslationBiz.ReturnSpecifiedTranslationIdIfExistsOrDefaultTranslationId(translationId, ct);
|
||||
Param.Add("StopWords1");
|
||||
Param.Add("StopWords2");
|
||||
Param.Add("StopWords3");
|
||||
Param.Add("StopWords4");
|
||||
Param.Add("StopWords5");
|
||||
Param.Add("StopWords6");
|
||||
Param.Add("StopWords7");
|
||||
var Stops = await TranslationBiz.GetSubsetStaticAsync(Param, translationId);
|
||||
|
||||
LSD.CJKIndex = await TranslationBiz.GetCJKIndexAsync(translationId, ct);
|
||||
foreach (KeyValuePair<string, string> kvp in Stops)
|
||||
{
|
||||
//Each stopwords translation key is a space delimited list of words and in the case of an empty local string (i.e. StopWords7) it's value is a single question mark
|
||||
if (kvp.Value != "?")
|
||||
{
|
||||
LSD.StopWords.AddRange(kvp.Value.Split(" "));
|
||||
}
|
||||
}
|
||||
|
||||
LSD.CJKIndex = await TranslationBiz.GetCJKIndexAsync(translationId, ct);
|
||||
}
|
||||
return LSD;
|
||||
}
|
||||
|
||||
|
||||
@@ -164,20 +164,19 @@ namespace AyaNova.Biz
|
||||
#if (DEBUG)
|
||||
TrackRequestedKey(param);
|
||||
#endif
|
||||
AyContext ct = ServiceProviderProvider.DBContext;
|
||||
|
||||
if (!await ct.Translation.AnyAsync(e => e.Id == translationId))
|
||||
translationId = ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID;
|
||||
var ret = await ct.TranslationItem.Where(z => z.TranslationId == translationId && param.Contains(z.Key)).AsNoTracking().ToDictionaryAsync(z => z.Key, z => z.Display);
|
||||
return ret;
|
||||
using (AyContext ct = ServiceProviderProvider.DBContext)
|
||||
{
|
||||
if (!await ct.Translation.AnyAsync(e => e.Id == translationId))
|
||||
translationId = ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID;
|
||||
var ret = await ct.TranslationItem.Where(z => z.TranslationId == translationId && param.Contains(z.Key)).AsNoTracking().ToDictionaryAsync(z => z.Key, z => z.Display);
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//Get the CJKIndex value for the translation specified
|
||||
internal static async Task<bool> GetCJKIndexAsync(long translationId, AyContext ct = null)
|
||||
internal static async Task<bool> GetCJKIndexAsync(long translationId, AyContext ct)
|
||||
{
|
||||
if (ct == null)
|
||||
ct = ServiceProviderProvider.DBContext;
|
||||
var ret = await ct.Translation.Where(z => z.Id == translationId).AsNoTracking().Select(z => z.CjkIndex).SingleOrDefaultAsync();
|
||||
return ret;
|
||||
}
|
||||
@@ -195,15 +194,15 @@ namespace AyaNova.Biz
|
||||
#if (DEBUG)
|
||||
TrackRequestedKey(key);
|
||||
#endif
|
||||
AyContext ct = ServiceProviderProvider.DBContext;
|
||||
return await ct.TranslationItem.Where(z => z.TranslationId == ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID && z.Key == key).Select(z => z.Display).AsNoTracking().FirstOrDefaultAsync();
|
||||
using (AyContext ct = ServiceProviderProvider.DBContext)
|
||||
return await ct.TranslationItem.Where(z => z.TranslationId == ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID && z.Key == key).Select(z => z.Display).AsNoTracking().FirstOrDefaultAsync();
|
||||
}
|
||||
|
||||
//Get all stock keys that are valid (used for key coverage reporting)
|
||||
internal static async Task<List<string>> GetKeyListAsync()
|
||||
{
|
||||
AyContext ct = ServiceProviderProvider.DBContext;
|
||||
return await ct.TranslationItem.Where(z => z.TranslationId == 1).OrderBy(z => z.Key).Select(z => z.Key).AsNoTracking().ToListAsync();
|
||||
using (AyContext ct = ServiceProviderProvider.DBContext)
|
||||
return await ct.TranslationItem.Where(z => z.TranslationId == 1).OrderBy(z => z.Key).Select(z => z.Key).AsNoTracking().ToListAsync();
|
||||
}
|
||||
|
||||
|
||||
@@ -392,15 +391,14 @@ namespace AyaNova.Biz
|
||||
return v.Id;
|
||||
}
|
||||
|
||||
public static async Task<long> TranslationNameToIdStaticAsync(string translationName, AyContext ct = null)
|
||||
public static async Task<long> TranslationNameToIdStaticAsync(string translationName)
|
||||
{
|
||||
if (ct == null)
|
||||
using (AyContext ct = ServiceProviderProvider.DBContext)
|
||||
{
|
||||
ct = ServiceProviderProvider.DBContext;
|
||||
var v = await ct.Translation.AsNoTracking().FirstOrDefaultAsync(z => z.Name == translationName);
|
||||
if (v == null) return ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID;
|
||||
return v.Id;
|
||||
}
|
||||
var v = await ct.Translation.AsNoTracking().FirstOrDefaultAsync(z => z.Name == translationName);
|
||||
if (v == null) return ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID;
|
||||
return v.Id;
|
||||
}
|
||||
|
||||
public async Task<bool> TranslationExistsAsync(string translationName)
|
||||
|
||||
@@ -31,12 +31,13 @@ namespace AyaNova.Biz
|
||||
//This is where active tech license consumers are accounted for
|
||||
internal static async Task<long> ActiveCountAsync()
|
||||
{
|
||||
var ct = ServiceProviderProvider.DBContext;
|
||||
var ret = await ct.User.Where(z => z.Active == true && (
|
||||
z.UserType == UserType.Service ||
|
||||
z.UserType == UserType.ServiceContractor)).LongCountAsync();
|
||||
|
||||
return ret;
|
||||
using (AyContext ct = ServiceProviderProvider.DBContext)
|
||||
{
|
||||
var ret = await ct.User.AsNoTracking().Where(z => z.Active == true && (
|
||||
z.UserType == UserType.Service ||
|
||||
z.UserType == UserType.ServiceContractor)).LongCountAsync();
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
internal static UserBiz GetBiz(AyContext ct, Microsoft.AspNetCore.Http.HttpContext httpContext = null)
|
||||
@@ -593,14 +594,14 @@ namespace AyaNova.Biz
|
||||
idList = ((JArray)jobData["idList"]).ToObject<List<long>>();
|
||||
else
|
||||
idList = await ct.Widget.Select(z => z.Id).ToListAsync();
|
||||
bool SaveIt = false;
|
||||
bool SaveIt = false;
|
||||
foreach (long id in idList)
|
||||
{
|
||||
try
|
||||
{
|
||||
SaveIt = false;
|
||||
ClearErrors();
|
||||
var o = await GetAsync(id, false);
|
||||
SaveIt = false;
|
||||
ClearErrors();
|
||||
var o = await GetAsync(id, false);
|
||||
switch (job.SubType)
|
||||
{
|
||||
case JobSubType.TagAddAny:
|
||||
|
||||
Reference in New Issue
Block a user