diff --git a/.vscode/launch.json b/.vscode/launch.json index 0e2049e9..8fd97968 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -53,7 +53,7 @@ "AYANOVA_FOLDER_USER_FILES": "c:\\temp\\RavenTestData\\userfiles", "AYANOVA_FOLDER_BACKUP_FILES": "c:\\temp\\RavenTestData\\backupfiles", "AYANOVA_FOLDER_TEMPORARY_SERVER_FILES": "c:\\temp\\RavenTestData\\tempfiles", - "AYANOVA_SERVER_TEST_MODE": "false", + "AYANOVA_SERVER_TEST_MODE": "true", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-7", "AYANOVA_BACKUP_PG_DUMP_PATH": "C:\\data\\code\\postgres_13\\bin\\" diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index ca9f3254..7171eb2f 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -233,6 +233,9 @@ namespace AyaNova.Util //VENDORS await SeedVendorAsync(log, 25); + //PROJECTS + await SeedProjectAsync(log, 25); + //PERF watch.Stop(); @@ -295,6 +298,9 @@ namespace AyaNova.Util //VENDORS await SeedVendorAsync(log, 50); + //PROJECTS + await SeedProjectAsync(log, 50); + //PERF watch.Stop(); await LogStatusAsync(JobId, LogJob, log, $"MEDIUM level sample data seeded in {watch.ElapsedMilliseconds} ms"); @@ -372,6 +378,9 @@ namespace AyaNova.Util //VENDORS await SeedVendorAsync(log, 75); + //PROJECTS + await SeedProjectAsync(log, 75); + //PERF watch.Stop(); await LogStatusAsync(JobId, LogJob, log, $"LARGE level sample data seeded in {watch.ElapsedMilliseconds} ms"); @@ -449,6 +458,9 @@ namespace AyaNova.Util //VENDORS await SeedVendorAsync(log, 100); + //PROJECTS + await SeedProjectAsync(log, 500); + //PERF watch.Stop(); await LogStatusAsync(JobId, LogJob, log, $"HUGE level sample data seeded in {watch.ElapsedMilliseconds} ms"); @@ -736,6 +748,8 @@ namespace AyaNova.Util } } } + + /////////////////////////////////////////////// } @@ -1076,6 +1090,49 @@ namespace AyaNova.Util } } + + + + ////////////////////////////////////////////////////// + //PROJECT + // + public async Task SeedProjectAsync(ILogger log, int count) + { + DateTime seedStartWindow = DateTime.Now.AddYears(-1); + DateTime seedEndWindow = DateTime.Now.AddYears(1); + for (int x = 0; x < count; x++) + { + Project o = new Project(); + o.Name = $"{Fake.Random.AlphaNumeric(8)}{x + 1}"; + o.AccountNumber = Fake.Finance.Account(); + o.Active = true; + o.Notes = Fake.Lorem.Sentence(); + o.Tags = RandomTags(); + DateTime dtSeed = Fake.Date.Between(seedStartWindow, seedEndWindow).ToUniversalTime(); + o.DateStarted = dtSeed; + if (Fake.Random.Number(9) != 5) + o.DateCompleted = dtSeed.AddDays(Fake.Random.Long(2, 100)); + o.ProjectOverseerId = Fake.Random.Long(2, 13); + + + //This seems wrong to do in a loop but is 4 times faster this way ?!? + using (AyContext ct = ServiceProviderProvider.DBContext) + { + ProjectBiz biz = ProjectBiz.GetBiz(ct); + var NewObject = await biz.CreateAsync(o); + + if (NewObject == null) + { + var err = $"Seeder::SeedProject error creating {o.Name}\r\n{biz.GetErrorsAsString()}"; + log.LogError(err); + throw new System.Exception(err); + } + + } + } + } + + ////////////////////////////////////////////////////////////////////////////////////////////////// }//eoc