This commit is contained in:
2018-11-12 18:37:52 +00:00
parent 76cf4f0bf4
commit e101a6eb80
5 changed files with 73 additions and 50 deletions

View File

@@ -72,7 +72,8 @@ namespace AyaNova.Api.Controllers
}
//Instantiate the business object handler
LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
// LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
LocaleBiz biz = LocaleBiz.GetBiz(ct, HttpContext);
var o = await biz.GetAsync(id);
@@ -101,7 +102,8 @@ namespace AyaNova.Api.Controllers
}
//Instantiate the business object handler
LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
//LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
LocaleBiz biz = LocaleBiz.GetBiz(ct, HttpContext);
var l = await biz.GetPickListAsync();
return Ok(new ApiOkResponse(l));
@@ -124,7 +126,8 @@ namespace AyaNova.Api.Controllers
}
//Instantiate the business object handler
LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
LocaleBiz biz = LocaleBiz.GetBiz(ct, HttpContext);
//LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
var l = biz.LocaleKeyCoverage();
return Ok(new ApiOkResponse(l));
@@ -137,10 +140,10 @@ namespace AyaNova.Api.Controllers
/// Required roles: Any
///
/// </summary>
/// <param name="inObj">LocaleSubsetParam object defining the locale Id and a list of keys required</param>
/// <param name="inObj">List of locale key strings</param>
/// <returns>A key value array of localized text values</returns>
[HttpPost("SubSet")]
public async Task<IActionResult> SubSet([FromBody] LocaleSubsetParam inObj)
public async Task<IActionResult> SubSet([FromBody] List<string> inObj)
{
if (serverState.IsClosed)
{
@@ -148,7 +151,10 @@ namespace AyaNova.Api.Controllers
}
//Instantiate the business object handler
LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
//LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
//Instantiate the business object handler
LocaleBiz biz = LocaleBiz.GetBiz(ct, HttpContext);
var l = await biz.GetSubset(inObj);
return Ok(new ApiOkResponse(l));
@@ -172,7 +178,8 @@ namespace AyaNova.Api.Controllers
}
//Instantiate the business object handler
LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
// LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
LocaleBiz biz = LocaleBiz.GetBiz(ct, HttpContext);
var o = await biz.DuplicateAsync(inObj);
@@ -232,7 +239,8 @@ namespace AyaNova.Api.Controllers
}
//Instantiate the business object handler
LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
// LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
LocaleBiz biz = LocaleBiz.GetBiz(ct, HttpContext);
try
{
@@ -297,7 +305,8 @@ namespace AyaNova.Api.Controllers
}
//Instantiate the business object handler
LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
//LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
LocaleBiz biz = LocaleBiz.GetBiz(ct, HttpContext);
try
{
@@ -365,7 +374,8 @@ namespace AyaNova.Api.Controllers
//Instantiate the business object handler
LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
//LocaleBiz biz = new LocaleBiz(ct, UserIdFromContext.Id(HttpContext.Items), UserRolesFromContext.Roles(HttpContext.Items));
LocaleBiz biz = LocaleBiz.GetBiz(ct, HttpContext);
if (!biz.Delete(dbObj))
{
return BadRequest(new ApiErrorResponse(biz.Errors));
@@ -395,19 +405,19 @@ namespace AyaNova.Api.Controllers
//------------
public class LocaleSubsetParam
{
[System.ComponentModel.DataAnnotations.Required]
public long LocaleId { get; set; }
[System.ComponentModel.DataAnnotations.Required]
public List<string> Keys { get; set; }
// public class LocaleSubsetParam
// {
// [System.ComponentModel.DataAnnotations.Required]
// public long LocaleId { get; set; }
// [System.ComponentModel.DataAnnotations.Required]
// public List<string> Keys { get; set; }
public LocaleSubsetParam()
{
Keys = new List<string>();
}
// public LocaleSubsetParam()
// {
// Keys = new List<string>();
// }
}
// }
#if (DEBUG)
public class LocaleCoverageInfo

View File

@@ -38,7 +38,7 @@ namespace AyaNova.Biz
case AyaType.TrialSeeder:
return new TrialBiz(dbcontext, userId, roles);
case AyaType.Locale:
return new LocaleBiz(dbcontext, userId, roles);
return new LocaleBiz(dbcontext, userId, ServerBootConfig.AYANOVA_DEFAULT_LANGUAGE_ID, roles);
default:

View File

@@ -20,15 +20,27 @@ namespace AyaNova.Biz
{
public bool SeedOrImportRelaxedRulesMode { get; set; }
internal LocaleBiz(AyContext dbcontext, long currentUserId, AuthorizationRoles userRoles)
internal LocaleBiz(AyContext dbcontext, long currentUserId, long userLocaleId, AuthorizationRoles userRoles)
{
ct = dbcontext;
UserId = currentUserId;
UserLocaleId = userLocaleId;
CurrentUserRoles = userRoles;
BizType = AyaType.Locale;
SeedOrImportRelaxedRulesMode = false;//default
}
internal static LocaleBiz GetBiz(AyContext ct, Microsoft.AspNetCore.Http.HttpContext httpContext)
{
return new LocaleBiz(ct, UserIdFromContext.Id(httpContext.Items), UserLocaleIdFromContext.Id(httpContext.Items), UserRolesFromContext.Roles(httpContext.Items));
}
//Version for internal use
internal static LocaleBiz GetBizInternal(AyContext ct, long currentUserId, AuthorizationRoles roles)
{
return new LocaleBiz(ct, currentUserId, ServerBootConfig.AYANOVA_DEFAULT_LANGUAGE_ID, roles);
}
////////////////////////////////////////////////////////////////////////////////////////////////
@@ -141,26 +153,26 @@ namespace AyaNova.Biz
#endif
//Get the keys for a list of keys provided
internal async Task<List<KeyValuePair<string, string>>> GetSubset(AyaNova.Api.Controllers.LocaleController.LocaleSubsetParam param)
internal async Task<List<KeyValuePair<string, string>>> GetSubset(List<string> param)
{
#if (DEBUG)
TrackRequestedKey(param.Keys);
TrackRequestedKey(param);
#endif
var ret = await ct.LocaleItem.Where(x => x.LocaleId == param.LocaleId && param.Keys.Contains(x.Key)).ToDictionaryAsync(x => x.Key, x => x.Display);
var ret = await ct.LocaleItem.Where(x => x.LocaleId == UserLocaleId && param.Contains(x.Key)).ToDictionaryAsync(x => x.Key, x => x.Display);
return ret.ToList();
}
//Get the keys for a list of keys provided, static format for calling from other internal classes
internal static async Task<List<KeyValuePair<string, string>>> GetSubsetStatic(AyaNova.Api.Controllers.LocaleController.LocaleSubsetParam param)
internal static async Task<List<KeyValuePair<string, string>>> GetSubsetStatic(List<string> param, long localeId)
{
#if (DEBUG)
TrackRequestedKey(param.Keys);
TrackRequestedKey(param);
#endif
AyContext ct = ServiceProviderProvider.DBContext;
if (!LocaleExistsStatic(param.LocaleId, ct))
param.LocaleId = ServerBootConfig.AYANOVA_DEFAULT_LANGUAGE_ID;
var ret = await ct.LocaleItem.Where(x => x.LocaleId == param.LocaleId && param.Keys.Contains(x.Key)).ToDictionaryAsync(x => x.Key, x => x.Display);
if (!LocaleExistsStatic(localeId, ct))
localeId = ServerBootConfig.AYANOVA_DEFAULT_LANGUAGE_ID;
var ret = await ct.LocaleItem.Where(x => x.LocaleId == localeId && param.Contains(x.Key)).ToDictionaryAsync(x => x.Key, x => x.Display);
return ret.ToList();
}

View File

@@ -9,7 +9,7 @@ using AyaNova.Models;
namespace AyaNova.Biz
{
//Prime the database with initial, minimum required data to boot and do things (manager account, locales)
//Prime the database with initial, minimum required data to boot and do things (manager account, locales)
public static class PrimeData
{
// private readonly AyContext ct;
@@ -29,19 +29,19 @@ namespace AyaNova.Biz
//get a db and logger
ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("PrimeData");
User u = new User();
u.Active=true;
u.Active = true;
u.Name = "AyaNova Administrator";
u.Salt = Hasher.GenerateSalt();
u.Login = "manager";
u.Password = Hasher.hash(u.Salt, "l3tm3in");
u.Roles = AuthorizationRoles.BizAdminFull | AuthorizationRoles.OpsAdminFull | AuthorizationRoles.DispatchFull | AuthorizationRoles.InventoryFull;
u.OwnerId = 1;
u.LocaleId=ServerBootConfig.AYANOVA_DEFAULT_LANGUAGE_ID;//Ensure primeLocales is called first
u.UserType=UserType.Administrator;
u.UserOptions=new UserOptions(1);
u.LocaleId = ServerBootConfig.AYANOVA_DEFAULT_LANGUAGE_ID;//Ensure primeLocales is called first
u.UserType = UserType.Administrator;
u.UserOptions = new UserOptions(1);
ct.User.Add(u);
ct.SaveChanges();
}
@@ -59,14 +59,15 @@ namespace AyaNova.Biz
throw new System.Exception($"E1012: \"resource\" folder not found where expected: \"{ResourceFolderPath}\", installation damaged?");
}
ImportLocale(ct, ResourceFolderPath, "en");
ImportLocale(ct, ResourceFolderPath, "es");
ImportLocale(ct, ResourceFolderPath, "fr");
ImportLocale(ct, ResourceFolderPath, "de");
//Ensure locales are present, not missing any keys and that there is a server default locale that exists
LocaleBiz lb = new LocaleBiz(ct, 1, AuthorizationRoles.OpsAdminFull);
//LocaleBiz lb = new LocaleBiz(ct, AuthorizationRoles.OpsAdminFull);
LocaleBiz lb = LocaleBiz.GetBizInternal(ct, 1, AuthorizationRoles.OpsAdminFull);
lb.ValidateLocales();
}
@@ -85,7 +86,7 @@ namespace AyaNova.Biz
l.Name = localeCode;
l.OwnerId = 1;
l.Stock = true;
l.CjkIndex=false;
l.CjkIndex = false;
foreach (JToken t in o.Children())
{

View File

@@ -570,16 +570,16 @@ namespace AyaNova.Biz
ct = ServiceProviderProvider.DBContext;
//Get stopwords
//Validate locale id, if not right then use default instead
var Param = new Api.Controllers.LocaleController.LocaleSubsetParam();
Param.LocaleId = LocaleBiz.EnsuredLocaleIdStatic(localeId, ct);
Param.Keys.Add("StopWords1");
Param.Keys.Add("StopWords2");
Param.Keys.Add("StopWords3");
Param.Keys.Add("StopWords4");
Param.Keys.Add("StopWords5");
Param.Keys.Add("StopWords6");
Param.Keys.Add("StopWords7");
var Stops = LocaleBiz.GetSubsetStatic(Param).Result;
var Param = new List<string>();
localeId = LocaleBiz.EnsuredLocaleIdStatic(localeId, ct);
Param.Add("StopWords1");
Param.Add("StopWords2");
Param.Add("StopWords3");
Param.Add("StopWords4");
Param.Add("StopWords5");
Param.Add("StopWords6");
Param.Add("StopWords7");
var Stops = LocaleBiz.GetSubsetStatic(Param, localeId).Result;
foreach (KeyValuePair<string, string> kvp in Stops)
{