From 22c4f1106ddaaa73eca0d0a64842bacda92a5b33 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Fri, 1 Oct 2021 20:12:40 +0000 Subject: [PATCH] --- server/AyaNova/util/Seeder.cs | 46 +++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/server/AyaNova/util/Seeder.cs b/server/AyaNova/util/Seeder.cs index 919f552e..495ffe0a 100644 --- a/server/AyaNova/util/Seeder.cs +++ b/server/AyaNova/util/Seeder.cs @@ -2733,6 +2733,7 @@ namespace AyaNova.Util { DateTime seedStartWindow = DateTime.UtcNow.AddMonths(-3); DateTime seedEndWindow = DateTime.UtcNow.AddMonths(3); + bool isPast = false; for (int x = 0; x < count; x++) { WorkOrder o = new WorkOrder(); @@ -2743,7 +2744,8 @@ namespace AyaNova.Util var tempDate = Fake.Date.Between(seedStartWindow, seedEndWindow); var tempHour = Fake.Random.Int(9, 17);//9am to 5 pm (except some times may be in different dst state so this will be out by an hour for example depending on time of year and time zone in question) var woDate = DesiredTimeInUtc(new DateTime(tempDate.Year, tempDate.Month, tempDate.Day, tempHour, 0, 0)); - + if (woDate < DateTime.UtcNow) + isPast = true; o.CreatedDate = woDate > DateTime.UtcNow ? DateTime.UtcNow : woDate;//no created dates in future but want a range of past dates to show off age of wo o.CompleteByDate = woDate.AddDays(5); // o.CustomerContactName = "contact name here"; @@ -3202,21 +3204,45 @@ namespace AyaNova.Util Created = ((DateTime)o.ServiceDate).AddHours(2) }; o.States.Add(WoState); + o.LastStatusId = WoState.WorkOrderStatusId; } - + //if it's in the past tag it with a completed type status + if (isPast) { - - var WoState = new WorkOrderState() { - WorkOrderStatusId = (long)Fake.Random.Enum(SeedWOStatus.Scheduled), - UserId = RandomServiceTechUserId(), - Created = ((DateTime)o.ServiceDate).AddHours(2) - }; - o.States.Add(WoState); - o.LastStatusId = WoState.WorkOrderStatusId;//simulate if user added state to wo so it gets set + var WoState = new WorkOrderState() + { + WorkOrderStatusId = (long)SeedWOStatus.Closed, + UserId = RandomServiceTechUserId(), + Created = ((DateTime)o.ServiceDate).AddHours(2) + }; + o.States.Add(WoState); + o.LastStatusId = WoState.WorkOrderStatusId; + + } } + else + { + //current-future + //10% chance it's not left in a scheduled state + //this is because we want to have users be generally available to play with appointments in the schedule form + if (Fake.Random.Int(1, 10) == 3) + { + var WoState = new WorkOrderState() + { + WorkOrderStatusId = (long)Fake.Random.Enum(new[] { SeedWOStatus.Scheduled, SeedWOStatus.Closed, SeedWOStatus.ServiceCompleted }), + UserId = RandomServiceTechUserId(), + Created = ((DateTime)o.ServiceDate).AddHours(2) + }; + o.States.Add(WoState); + o.LastStatusId = WoState.WorkOrderStatusId;//simulate if user added state to wo so it gets set + } + + + } + //This seems wrong to do in a loop but is 4 times faster this way ?!?