seeder changes to accommodate truly huge generation

This commit is contained in:
2021-10-15 15:29:56 +00:00
parent 270d242c7d
commit 6a520b3e13
2 changed files with 41 additions and 31 deletions

File diff suppressed because one or more lines are too long

View File

@@ -230,8 +230,8 @@ namespace AyaNova.Util
await SeedUserAsync(log, 1, AuthorizationRoles.Service | AuthorizationRoles.Inventory | AuthorizationRoles.Accounting, UserType.NotService);
await SeedVendorAsync(log, 10);
await SeedUnitModelAsync(log, 10);
await SeedCustomerAsync(log, 25);
await SeedHeadOfficeAsync(log, 10);
await SeedCustomerAsync(log, 25, slevel);
await SeedHeadOfficeAsync(log, 10, slevel);
await SeedVendorAsync(log, 10);
await SeedProjectAsync(log, 3);
await SeedServiceRateAsync(log, 5);
@@ -288,8 +288,8 @@ namespace AyaNova.Util
await SeedVendorAsync(log, 50);
await SeedUnitModelAsync(log, 20);
await SeedCustomerAsync(log, 500);
await SeedHeadOfficeAsync(log, 20);
await SeedCustomerAsync(log, 500, slevel);
await SeedHeadOfficeAsync(log, 20, slevel);
await SeedProjectAsync(log, 5);
await SeedServiceRateAsync(log, 10);
@@ -356,8 +356,8 @@ namespace AyaNova.Util
await SeedVendorAsync(log, 100);
await SeedUnitModelAsync(log, 40);
await SeedCustomerAsync(log, 1000);
await SeedHeadOfficeAsync(log, 40);
await SeedCustomerAsync(log, 1000, slevel);
await SeedHeadOfficeAsync(log, 40, slevel);
await SeedProjectAsync(log, 10);
await SeedServiceRateAsync(log, 20);
@@ -401,7 +401,7 @@ namespace AyaNova.Util
//owner / upper management who doesn't control anything but views stuff
await SeedUserAsync(log, 20, AuthorizationRoles.BizAdminRestricted | AuthorizationRoles.ServiceRestricted | AuthorizationRoles.InventoryRestricted | AuthorizationRoles.OpsAdminRestricted, UserType.NotService);
//regular techs
await SeedUserAsync(log, 500, AuthorizationRoles.Tech | AuthorizationRoles.ServiceRestricted, UserType.Service);
await SeedUserAsync(log, 1000, AuthorizationRoles.Tech | AuthorizationRoles.ServiceRestricted, UserType.Service);
//Restricted techs
await SeedUserAsync(log, 200, AuthorizationRoles.TechRestricted | AuthorizationRoles.ServiceRestricted, UserType.Service);
//subcontractors
@@ -409,9 +409,9 @@ namespace AyaNova.Util
//Restricted subcontractors
await SeedUserAsync(log, 40, AuthorizationRoles.SubContractorRestricted, UserType.ServiceContractor);
//generic office people people
await SeedUserAsync(log, 200, AuthorizationRoles.ServiceRestricted | AuthorizationRoles.InventoryRestricted, UserType.NotService);
await SeedUserAsync(log, 500, AuthorizationRoles.ServiceRestricted | AuthorizationRoles.InventoryRestricted, UserType.NotService);
//20 Full sales people
await SeedUserAsync(log, 20, AuthorizationRoles.Sales, UserType.NotService);
await SeedUserAsync(log, 60, AuthorizationRoles.Sales, UserType.NotService);
//10 Restricted sales people
await SeedUserAsync(log, 10, AuthorizationRoles.SalesRestricted, UserType.NotService);
//Service manager
@@ -423,25 +423,25 @@ namespace AyaNova.Util
//accountant / bookkeeper
await SeedUserAsync(log, 20, AuthorizationRoles.Accounting | AuthorizationRoles.BizAdminRestricted, UserType.NotService);
await SeedVendorAsync(log, 500);
await SeedUnitModelAsync(log, 200);
await SeedCustomerAsync(log, 10000);
await SeedHeadOfficeAsync(log, 200);
await SeedVendorAsync(log, 5000);
await SeedUnitModelAsync(log, 400);
await SeedCustomerAsync(log, 30000, slevel);
await SeedHeadOfficeAsync(log, 500, slevel);
await SeedProjectAsync(log, 20);
await SeedServiceRateAsync(log, 100);
await SeedTravelRateAsync(log, 50);
await SeedProjectAsync(log, 1000);
await SeedServiceRateAsync(log, 200);
await SeedTravelRateAsync(log, 100);
//await SeedUnitAsync(log, 25000);
await SeedLoanLoanUnitAsync(log, 100);
await SeedCustomerServiceRequestAsync(log, 100);
await SeedPartWarehouseAsync(log, 100);
await SeedPartAsync(log, 1000, 3000);
await SeedPartAssemblyAsync(log, 25);
await SeedPurchaseOrderAsync(log, 250);
await SeedQuoteAsync(log, 5);
await SeedPMAsync(log, 3);
await SeedWorkOrderAsync(log, 20000);//was 1000
await SeedLoanLoanUnitAsync(log, 200);
await SeedCustomerServiceRequestAsync(log, 200);
await SeedPartWarehouseAsync(log, 200);
await SeedPartAsync(log, 10000, 6000);
await SeedPartAssemblyAsync(log, 500);
await SeedPurchaseOrderAsync(log, 1000);
await SeedQuoteAsync(log, 1000);
await SeedPMAsync(log, 1000);
await SeedWorkOrderAsync(log, 100000);//was 1000
//PERF
watch.Stop();
@@ -1788,7 +1788,7 @@ namespace AyaNova.Util
//////////////////////////////////////////////////////
//CUSTOMER
//
public async Task SeedCustomerAsync(ILogger log, int count, long? headOfficeId = null)
public async Task SeedCustomerAsync(ILogger log, int count, Level.SeedLevel slevel, long? headOfficeId = null)
{
for (int x = 0; x < count; x++)
@@ -1851,8 +1851,17 @@ namespace AyaNova.Util
if (Fake.Random.Number(9) == 4)
await SeedUserAsync(log, 1, AuthorizationRoles.Customer, UserType.Customer, true, null, null, 0, null, null, NewObject.Id, null);
//5 units per customer
await SeedUnitAsync(log, 20, NewObject.Id);//5 times the customers or 5 units per customer
switch (slevel)
{
case Level.SeedLevel.Small:
case Level.SeedLevel.Large:
case Level.SeedLevel.Medium:
await SeedUnitAsync(log, 20, NewObject.Id);
break;
case Level.SeedLevel.Huge:
await SeedUnitAsync(log, 100, NewObject.Id);
break;
}
}
}
}
@@ -1862,7 +1871,7 @@ namespace AyaNova.Util
//////////////////////////////////////////////////////
//HEADOFFICE
//
public async Task SeedHeadOfficeAsync(ILogger log, int count)
public async Task SeedHeadOfficeAsync(ILogger log, int count, Level.SeedLevel slevel)
{
for (int x = 0; x < count; x++)
@@ -1916,7 +1925,7 @@ namespace AyaNova.Util
//HeadOffice contacts
await SeedUserAsync(log, 1, AuthorizationRoles.Customer, UserType.HeadOffice, true, null, null, 0, null, null, null, NewObject.Id);
//HeadOffice Customer
await SeedCustomerAsync(log, 2, NewObject.Id);
await SeedCustomerAsync(log, 2,slevel, NewObject.Id);
}
}
@@ -2146,7 +2155,7 @@ namespace AyaNova.Util
o.Name = $"{Fake.Vehicle.Model()} {Fake.Commerce.Categories(1)[0]} - {Fake.Finance.Account(6)}";
} while (!HashUnitModelNames.Add(o.Name));
o.Active = true;
o.Notes = Fake.Lorem.Sentence();