This commit is contained in:
@@ -681,67 +681,6 @@ namespace AyaNova.Biz
|
|||||||
|
|
||||||
#region Breaker
|
#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
|
public enum TokenTypes
|
||||||
{ Nothing, Separator, CJK, Latin };
|
{ Nothing, Separator, CJK, Latin };
|
||||||
|
|
||||||
|
|||||||
@@ -31,30 +31,32 @@ namespace AyaNova.Biz
|
|||||||
internal static async Task<TranslationWordBreakingData> GetTranslationSearchDataAsync(long translationId)
|
internal static async Task<TranslationWordBreakingData> GetTranslationSearchDataAsync(long translationId)
|
||||||
{
|
{
|
||||||
TranslationWordBreakingData LSD = new TranslationWordBreakingData();
|
TranslationWordBreakingData LSD = new TranslationWordBreakingData();
|
||||||
AyContext ct = ServiceProviderProvider.DBContext;
|
using (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)
|
|
||||||
{
|
{
|
||||||
//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
|
//Get stopwords
|
||||||
if (kvp.Value != "?")
|
//Validate translation id, if not right then use default instead
|
||||||
{
|
var Param = new List<string>();
|
||||||
LSD.StopWords.AddRange(kvp.Value.Split(" "));
|
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;
|
return LSD;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -164,20 +164,19 @@ namespace AyaNova.Biz
|
|||||||
#if (DEBUG)
|
#if (DEBUG)
|
||||||
TrackRequestedKey(param);
|
TrackRequestedKey(param);
|
||||||
#endif
|
#endif
|
||||||
AyContext ct = ServiceProviderProvider.DBContext;
|
using (AyContext ct = ServiceProviderProvider.DBContext)
|
||||||
|
{
|
||||||
if (!await ct.Translation.AnyAsync(e => e.Id == translationId))
|
if (!await ct.Translation.AnyAsync(e => e.Id == translationId))
|
||||||
translationId = ServerBootConfig.AYANOVA_DEFAULT_TRANSLATION_ID;
|
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);
|
var ret = await ct.TranslationItem.Where(z => z.TranslationId == translationId && param.Contains(z.Key)).AsNoTracking().ToDictionaryAsync(z => z.Key, z => z.Display);
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//Get the CJKIndex value for the translation specified
|
//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();
|
var ret = await ct.Translation.Where(z => z.Id == translationId).AsNoTracking().Select(z => z.CjkIndex).SingleOrDefaultAsync();
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -195,15 +194,15 @@ namespace AyaNova.Biz
|
|||||||
#if (DEBUG)
|
#if (DEBUG)
|
||||||
TrackRequestedKey(key);
|
TrackRequestedKey(key);
|
||||||
#endif
|
#endif
|
||||||
AyContext ct = ServiceProviderProvider.DBContext;
|
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();
|
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)
|
//Get all stock keys that are valid (used for key coverage reporting)
|
||||||
internal static async Task<List<string>> GetKeyListAsync()
|
internal static async Task<List<string>> GetKeyListAsync()
|
||||||
{
|
{
|
||||||
AyContext ct = ServiceProviderProvider.DBContext;
|
using (AyContext ct = ServiceProviderProvider.DBContext)
|
||||||
return await ct.TranslationItem.Where(z => z.TranslationId == 1).OrderBy(z => z.Key).Select(z => z.Key).AsNoTracking().ToListAsync();
|
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;
|
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)
|
public async Task<bool> TranslationExistsAsync(string translationName)
|
||||||
|
|||||||
@@ -31,12 +31,13 @@ namespace AyaNova.Biz
|
|||||||
//This is where active tech license consumers are accounted for
|
//This is where active tech license consumers are accounted for
|
||||||
internal static async Task<long> ActiveCountAsync()
|
internal static async Task<long> ActiveCountAsync()
|
||||||
{
|
{
|
||||||
var ct = ServiceProviderProvider.DBContext;
|
using (AyContext ct = ServiceProviderProvider.DBContext)
|
||||||
var ret = await ct.User.Where(z => z.Active == true && (
|
{
|
||||||
z.UserType == UserType.Service ||
|
var ret = await ct.User.AsNoTracking().Where(z => z.Active == true && (
|
||||||
z.UserType == UserType.ServiceContractor)).LongCountAsync();
|
z.UserType == UserType.Service ||
|
||||||
|
z.UserType == UserType.ServiceContractor)).LongCountAsync();
|
||||||
return ret;
|
return ret;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static UserBiz GetBiz(AyContext ct, Microsoft.AspNetCore.Http.HttpContext httpContext = null)
|
internal static UserBiz GetBiz(AyContext ct, Microsoft.AspNetCore.Http.HttpContext httpContext = null)
|
||||||
|
|||||||
Reference in New Issue
Block a user