diff --git a/.vscode/launch.json b/.vscode/launch.json index b4e9329..3300e7e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -35,7 +35,7 @@ "SOCKEYE_DB_CONNECTION": "Server=localhost;Username=postgres;Password=sockeye;Database=sockeye;CommandTimeout=300;", "SOCKEYE_DATA_PATH": "c:\\temp\\sockeye", "SOCKEYE_USE_URLS": "http://*:7676;", - //"SOCKEYE_PERMANENTLY_ERASE_DATABASE":"true", + "SOCKEYE_PERMANENTLY_ERASE_DATABASE":"true", //"SOCKEYE_REMOVE_LICENSE_FROM_DB":"true", //"SOCKEYE_REPORT_RENDERING_TIMEOUT":"1", "SOCKEYE_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_14\\bin" diff --git a/server/biz/PrimeData.cs b/server/biz/PrimeData.cs index 739e8a6..207e23f 100644 --- a/server/biz/PrimeData.cs +++ b/server/biz/PrimeData.cs @@ -21,12 +21,12 @@ namespace Sockeye.Biz //ILogger log = Sockeye.Util.ApplicationLogging.CreateLogger("PrimeData"); User u = new User(); u.Active = true; - u.AllowLogin=true; + u.AllowLogin = true; u.Name = "Sockeye SuperUser"; u.Salt = Hasher.GenerateSalt(); u.Login = "ss"; u.Password = Hasher.hash(u.Salt, "ss"); - u.Roles = AuthorizationRoles.Accounting | AuthorizationRoles.BizAdmin | AuthorizationRoles.Inventory | AuthorizationRoles.OpsAdmin | AuthorizationRoles.Sales | AuthorizationRoles.Service ; + u.Roles = AuthorizationRoles.Accounting | AuthorizationRoles.BizAdmin | AuthorizationRoles.Inventory | AuthorizationRoles.OpsAdmin | AuthorizationRoles.Sales | AuthorizationRoles.Service; u.UserType = UserType.NotService; @@ -37,6 +37,19 @@ namespace Sockeye.Biz } + /// + /// Prime the database with SuperUser account + /// + public static async Task PrimeVendor(AyContext ct) + { + Vendor u = new Vendor(); + u.Active = true; + u.Name = "MyCommerce"; + await ct.Vendor.AddAsync(u); + await ct.SaveChangesAsync(); + + } + // //used during development so I don't need to keep installing licenses over and over @@ -98,7 +111,7 @@ namespace Sockeye.Biz Translation l = new Translation(); l.Name = translationCode; - l.BaseLanguage=translationCode; + l.BaseLanguage = translationCode; l.Stock = true; l.CjkIndex = false; diff --git a/server/util/AySchema.cs b/server/util/AySchema.cs index dd69e2f..be1544f 100644 --- a/server/util/AySchema.cs +++ b/server/util/AySchema.cs @@ -1328,6 +1328,7 @@ $BODY$ LANGUAGE PLPGSQL STABLE"); //Prime the db with the default SuperUser account await Sockeye.Biz.PrimeData.PrimeSuperUserAccount(ct); + await Sockeye.Biz.PrimeData.PrimeVendor(ct); } }//eofunction diff --git a/server/util/DbUtil.cs b/server/util/DbUtil.cs index 09c2140..5e301f7 100644 --- a/server/util/DbUtil.cs +++ b/server/util/DbUtil.cs @@ -354,7 +354,7 @@ namespace Sockeye.Util } - + ///////////////////////////////////////////////////////// @@ -394,14 +394,17 @@ namespace Sockeye.Util cmd.Connection = conn; cmd.CommandText = "update auser set customerid=null;"; await cmd.ExecuteNonQueryAsync(); - + cmd.CommandText = "update auser set headofficeid=null;"; await cmd.ExecuteNonQueryAsync(); cmd.CommandText = "update auser set vendorid=null;"; await cmd.ExecuteNonQueryAsync(); - + cmd.CommandText = "update alicense set customerid=null;"; + await cmd.ExecuteNonQueryAsync(); + + //DELIBERATELY NOT ERASED: @@ -450,7 +453,7 @@ namespace Sockeye.Util //REMOVE ALL REMAINING DATA - + await TruncateTableAsync("afileattachment", conn); await TruncateTableAsync("aevent", conn); await TruncateTableAsync("adatalistsavedfilter", conn); @@ -462,10 +465,19 @@ namespace Sockeye.Util await TruncateTableAsync("atag", conn); + await TruncateTableAsync("asubscriptionserver", conn); + await TruncateTableAsync("apurchase", conn); + await TruncateTableAsync("aproduct", conn); + //await TruncateTableAsync("avendor", conn); await TruncateTableAsync("acustomernote", conn); await TruncateTableAsync("acustomer", conn); await TruncateTableAsync("aheadoffice", conn); + await TruncateTableAsync("agzcase", conn); + await TruncateTableAsync("atriallicenserequest", conn); + await TruncateTableAsync("alicense", conn); + + //----- NOTIFICATION await TruncateTableAsync("ainappnotification", conn); await TruncateTableAsync("anotifyevent", conn); @@ -518,7 +530,17 @@ namespace Sockeye.Util } - + //final housekeeping + using (var cmd = new Npgsql.NpgsqlCommand()) + { + cmd.Connection = conn; + + + cmd.CommandText = $"ALTER SEQUENCE agzcase_caseid_seq RESTART WITH 2;"; + await cmd.ExecuteNonQueryAsync(); + + + } await conn.CloseAsync(); } @@ -584,9 +606,9 @@ namespace Sockeye.Util //An empty db contains only one User if (await ct.User.LongCountAsync() > 1) return false; if (await ct.Customer.AnyAsync()) return false; - + if (await ct.HeadOffice.AnyAsync()) return false; - + return true; }