diff --git a/server/AyaNova/Controllers/EnumListController.cs b/server/AyaNova/Controllers/EnumListController.cs index 8bb1fe66..db0f7720 100644 --- a/server/AyaNova/Controllers/EnumListController.cs +++ b/server/AyaNova/Controllers/EnumListController.cs @@ -48,7 +48,7 @@ namespace AyaNova.Api.Controllers /// The key name of the enumerated type /// List [HttpGet("list/{enumkey}")] - public ActionResult GetList([FromRoute]string enumkey) + public ActionResult GetList([FromRoute] string enumkey) { if (serverState.IsClosed) return StatusCode(503, new ApiErrorResponse(serverState.ApiErrorCode, null, serverState.Reason)); @@ -148,10 +148,45 @@ namespace AyaNova.Api.Controllers ReturnList.Add(new NameIdItem() { Name = LT["UserTypeUtility"], Id = (long)UserType.Utility }); ReturnList.Add(new NameIdItem() { Name = LT["UserTypeServiceContractor"], Id = (long)UserType.ServiceContractor }); } + else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(AyaEvent).ToString()).ToLowerInvariant()) + { + TranslationKeysToFetch.Add("EventDeleted"); + TranslationKeysToFetch.Add("EventCreated"); + TranslationKeysToFetch.Add("EventRetrieved"); + TranslationKeysToFetch.Add("EventModified"); + TranslationKeysToFetch.Add("EventAttachmentCreate"); + TranslationKeysToFetch.Add("EventAttachmentDelete"); + TranslationKeysToFetch.Add("EventAttachmentDownload"); + TranslationKeysToFetch.Add("EventLicenseFetch"); + TranslationKeysToFetch.Add("EventLicenseTrialRequest"); + TranslationKeysToFetch.Add("EventServerStateChange"); + TranslationKeysToFetch.Add("EventSeedDatabase"); + TranslationKeysToFetch.Add("EventAttachmentModified"); + TranslationKeysToFetch.Add("AdminEraseDatabase"); + TranslationKeysToFetch.Add("EventResetSerial"); + TranslationKeysToFetch.Add("EventUtilityFileDownload"); + var LT = TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, TranslationId).Result; + + ReturnList.Add(new NameIdItem() { Name = LT["EventDeleted"], Id = (long)AyaEvent.Deleted }); + ReturnList.Add(new NameIdItem() { Name = LT["EventCreated"], Id = (long)AyaEvent.Created }); + ReturnList.Add(new NameIdItem() { Name = LT["EventRetrieved"], Id = (long)AyaEvent.Retrieved }); + ReturnList.Add(new NameIdItem() { Name = LT["EventModified"], Id = (long)AyaEvent.Modified }); + ReturnList.Add(new NameIdItem() { Name = LT["EventAttachmentCreate"], Id = (long)AyaEvent.AttachmentCreate }); + ReturnList.Add(new NameIdItem() { Name = LT["EventAttachmentDelete"], Id = (long)AyaEvent.AttachmentDelete }); + ReturnList.Add(new NameIdItem() { Name = LT["EventAttachmentDownload"], Id = (long)AyaEvent.AttachmentDownload }); + ReturnList.Add(new NameIdItem() { Name = LT["EventLicenseFetch"], Id = (long)AyaEvent.LicenseFetch }); + ReturnList.Add(new NameIdItem() { Name = LT["EventLicenseTrialRequest"], Id = (long)AyaEvent.LicenseTrialRequest }); + ReturnList.Add(new NameIdItem() { Name = LT["EventServerStateChange"], Id = (long)AyaEvent.ServerStateChange }); + ReturnList.Add(new NameIdItem() { Name = LT["EventSeedDatabase"], Id = (long)AyaEvent.SeedDatabase }); + ReturnList.Add(new NameIdItem() { Name = LT["EventAttachmentModified"], Id = (long)AyaEvent.AttachmentModified }); + ReturnList.Add(new NameIdItem() { Name = LT["AdminEraseDatabase"], Id = (long)AyaEvent.EraseAllData }); + ReturnList.Add(new NameIdItem() { Name = LT["EventResetSerial"], Id = (long)AyaEvent.ResetSerial }); + ReturnList.Add(new NameIdItem() { Name = LT["EventUtilityFileDownload"], Id = (long)AyaEvent.UtilityFileDownload }); + } else if (keyNameInLowerCase == StringUtil.TrimTypeName(typeof(AuthorizationRoles).ToString()).ToLowerInvariant()) { - // TranslationKeysToFetch.Add("AuthorizationRoleNoRole"); + // TranslationKeysToFetch.Add("AuthorizationRoleNoRole"); TranslationKeysToFetch.Add("AuthorizationRoleBizAdminLimited"); TranslationKeysToFetch.Add("AuthorizationRoleBizAdminFull"); TranslationKeysToFetch.Add("AuthorizationRoleDispatchLimited"); @@ -169,10 +204,10 @@ namespace AyaNova.Api.Controllers TranslationKeysToFetch.Add("AuthorizationRoleOpsAdminFull"); TranslationKeysToFetch.Add("AuthorizationRoleSalesLimited"); TranslationKeysToFetch.Add("AuthorizationRoleSalesFull"); - // TranslationKeysToFetch.Add("AuthorizationRoleAll"); + // TranslationKeysToFetch.Add("AuthorizationRoleAll"); var LT = TranslationBiz.GetSubsetStaticAsync(TranslationKeysToFetch, TranslationId).Result; - // ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleNoRole"], Id = (long)AuthorizationRoles.NoRole }); + // ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleNoRole"], Id = (long)AuthorizationRoles.NoRole }); ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleBizAdminLimited"], Id = (long)AuthorizationRoles.BizAdminLimited }); ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleBizAdminFull"], Id = (long)AuthorizationRoles.BizAdminFull }); ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleDispatchLimited"], Id = (long)AuthorizationRoles.DispatchLimited }); @@ -190,7 +225,7 @@ namespace AyaNova.Api.Controllers ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleOpsAdminFull"], Id = (long)AuthorizationRoles.OpsAdminFull }); ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSalesLimited"], Id = (long)AuthorizationRoles.SalesLimited }); ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleSalesFull"], Id = (long)AuthorizationRoles.SalesFull }); - // ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleAll"], Id = (long)AuthorizationRoles.All }); + // ReturnList.Add(new NameIdItem() { Name = LT["AuthorizationRoleAll"], Id = (long)AuthorizationRoles.All }); } else diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index 041b801d..309f9359 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -25,22 +25,22 @@ namespace AyaNova.Util public static class Level { - public enum SeedLevel { NotValid, SmallOneManShopTrialDataSet, MediumLocalServiceCompanyTrialDataSet, LargeCorporateMultiRegionalTrialDataSet, HugeForLoadTest }; + public enum SeedLevel { NotValid, Small, Medium, Large, Huge }; public static SeedLevel StringToSeedLevel(string size) { switch (size.ToLowerInvariant()) { case "small": - return SeedLevel.SmallOneManShopTrialDataSet; + return SeedLevel.Small; case "medium": - return SeedLevel.MediumLocalServiceCompanyTrialDataSet; + return SeedLevel.Medium; case "large": - return SeedLevel.LargeCorporateMultiRegionalTrialDataSet; + return SeedLevel.Large; case "huge": - return SeedLevel.HugeForLoadTest; + return SeedLevel.Huge; default: return SeedLevel.NotValid; @@ -73,7 +73,8 @@ namespace AyaNova.Util try { - await LogStatusAsync(JobId, LogJob, log, $"Seeding data, level {slevel.ToString()}, time zone offset {timeZoneOffset.ToString()}"); + var StatusMsg = $"Seeding data, level {slevel.ToString()}, time zone offset {timeZoneOffset.ToString()}"; + await LogStatusAsync(JobId, LogJob, log, StatusMsg); //Only allow this in a trial database if (!AyaNova.Core.License.ActiveKey.TrialLicense) @@ -95,6 +96,14 @@ namespace AyaNova.Util apiServerState.SetOpsOnly("Seeding database"); //Erase all the data except for the license, schema and the SuperUser await DbUtil.EmptyBizDataFromDatabaseForSeedingOrImportingAsync(log); + //Event log erase and seeding + using (var ct = ServiceProviderProvider.DBContext) + { + await EventLogProcessor.LogEventToDatabaseAsync(new Event(1, 0, AyaType.Global, AyaEvent.EraseAllData, "(seeding preparation)"), ct); + await EventLogProcessor.LogEventToDatabaseAsync(new Event(1, 0, AyaType.Global, AyaEvent.SeedDatabase, StatusMsg), ct); + } + + apiServerState.SetOpsOnly("Seeding database with sample data"); @@ -193,7 +202,7 @@ namespace AyaNova.Util //log.LogInformation("Seeding all other data"); switch (slevel) { - case Level.SeedLevel.SmallOneManShopTrialDataSet: + case Level.SeedLevel.Small: { #region GenSmall //This is for a busy but one man shop with a single office person handling stuff back at the shop @@ -222,7 +231,7 @@ namespace AyaNova.Util #endregion gensmall } break; - case Level.SeedLevel.MediumLocalServiceCompanyTrialDataSet: + case Level.SeedLevel.Medium: { #region GenMedium //This is for a typical AyaNova medium busy shop @@ -284,7 +293,7 @@ namespace AyaNova.Util #endregion genmedium } break; - case Level.SeedLevel.LargeCorporateMultiRegionalTrialDataSet: + case Level.SeedLevel.Large: { #region GenLarge //this is a large corporation with multiple branches in multiple locations all in the same country @@ -361,7 +370,7 @@ namespace AyaNova.Util } break; - case Level.SeedLevel.HugeForLoadTest: + case Level.SeedLevel.Huge: { #region GenHuge //this is the HUGE dataset for load and other testing