From 80c14a17bafbda526cbc2f0e1b91e7120849f189 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 17 Nov 2021 19:13:19 +0000 Subject: [PATCH] --- server/AyaNova/util/Seeder.cs | 60 ++++++++++++++++++++++------------- 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index f849ca01..1be1892e 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -1896,11 +1896,11 @@ namespace AyaNova.Util { case Level.SeedLevel.Small: case Level.SeedLevel.Medium: - await SeedUnitAsync(log, 2, NewObject.Id); + await SeedUnitAsync(log, 5, NewObject.Id); break; case Level.SeedLevel.Large: case Level.SeedLevel.Huge: - await SeedUnitAsync(log, 5, NewObject.Id); + await SeedUnitAsync(log, 10, NewObject.Id); break; } } @@ -2348,8 +2348,14 @@ namespace AyaNova.Util } //add to customer owned units list - CustomerUnits.Add(customerId, unitsAddedThisRun); - + if (CustomerUnits.ContainsKey(customerId)) + { + CustomerUnits[customerId].AddRange(unitsAddedThisRun); + } + else + { + CustomerUnits.Add(customerId, unitsAddedThisRun); + } } @@ -2543,7 +2549,7 @@ namespace AyaNova.Util o.PartNumber = Fake.Finance.Account(6); } while (!HashPartNumbers.Add(o.PartNumber)); - o.Name="pnm"+o.PartNumber;//temporary?? get rid of name?? + o.Name = "pnm" + o.PartNumber;//temporary?? get rid of name?? o.Active = true; o.Notes = Fake.Lorem.Sentence(null, 3); o.Tags = RandomTags(); @@ -2902,7 +2908,7 @@ namespace AyaNova.Util { var woItemUnit = new WorkOrderItemUnit() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3) }; woItem.Units.Add(woItemUnit); @@ -3205,7 +3211,7 @@ namespace AyaNova.Util var RepairCost = Fake.Random.Decimal(50, 1000); var woItemOutsideService = new WorkOrderItemOutsideService() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3), VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), @@ -3442,14 +3448,14 @@ namespace AyaNova.Util //UNITS var woItemUnit = new QuoteItemUnit() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3) }; woItem.Units.Add(woItemUnit); woItemUnit = new QuoteItemUnit() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3) }; woItem.Units.Add(woItemUnit); @@ -3695,7 +3701,7 @@ namespace AyaNova.Util var RepairCost = Fake.Random.Decimal(50, 1000); var woItemOutsideService = new QuoteItemOutsideService() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3), VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), @@ -3716,7 +3722,7 @@ namespace AyaNova.Util RepairCost = Fake.Random.Decimal(50, 1000); woItemOutsideService = new QuoteItemOutsideService() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3), VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), @@ -3871,14 +3877,14 @@ namespace AyaNova.Util //UNITS var woItemUnit = new PMItemUnit() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3) }; woItem.Units.Add(woItemUnit); woItemUnit = new PMItemUnit() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3) }; woItem.Units.Add(woItemUnit); @@ -4124,7 +4130,7 @@ namespace AyaNova.Util var RepairCost = Fake.Random.Decimal(50, 1000); var woItemOutsideService = new PMItemOutsideService() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3), VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), @@ -4145,7 +4151,7 @@ namespace AyaNova.Util RepairCost = Fake.Random.Decimal(50, 1000); woItemOutsideService = new PMItemOutsideService() { - UnitId = GetRandomUnitForCustomer(o.CustomerId), + UnitId = GetNextUnitForCustomer(o.CustomerId), Notes = Fake.Lorem.Sentence(null, 3), VendorSentToId = Fake.Random.Long(1, TotalSeededVendors), VendorSentViaId = Fake.Random.Long(1, TotalSeededVendors), @@ -4187,14 +4193,24 @@ namespace AyaNova.Util - - private long GetRandomUnitForCustomer(long customerId) + private int lastUnitIndex = -1; + private long lastCustomer = -1; + private long GetNextUnitForCustomer(long customerId)//tries to ensure no dupes in same wo { - var l = CustomerUnits.Where(x => x.Key == customerId).FirstOrDefault();//Fake.Random.Long(1, TotalSeededUnits); - var numUnits = l.Value.Count(); - //because faker values are INCLUSIVE and this is going to be used as an index on an array need to -1 each end of the range - var i = Fake.Random.Int(0, numUnits - 1); - return l.Value[i]; + if (lastCustomer != customerId) + { + //reset flags + lastCustomer = customerId; + lastUnitIndex = -1; + } + lastUnitIndex++; + + var l = CustomerUnits.Where(x => x.Key == customerId).First(); + if (lastUnitIndex > (l.Value.Count() - 1)) + { + lastUnitIndex = 0; + } + return l.Value[lastUnitIndex]; } private long GetRandomCustomerId()