/// <summary> /// Load the data we only need to get once /// </summary> public void LoadOneTimeLocalData() { if ( this.AlternativeTravelModeName != null && this.AlternativeTravelModeName != String.Empty ) { var allModes = this.TashaRuntime.AllModes; bool found = false; foreach ( var mode in allModes ) { if ( mode.ModeName == this.AlternativeTravelModeName ) { this.AlternativeTravelMode = mode; found = true; break; } } if ( !found ) { throw new XTMFRuntimeException( "Unable to find the Alternative Travel Mode called " + this.AlternativeTravelModeName ); } } Scheduler.LocalScheduler = this; Scheduler.Tasha = this.TashaRuntime; Scheduler.MinimumWorkingAge = this.MinWorkingAgeLocal; Scheduler.EpisodeSchedulingAttempts = this.EpisodeSchedulingAttemptsLocal; Scheduler.ActivityLevels = this.GetFullPath( this.ActivityLevelsLocal ); Scheduler.SchoolMorningStart = this.SchoolMorningStartDateTime; Scheduler.SchoolMorningEnd = this.SchoolMorningEndDateTime; Scheduler.SchoolAfternoonStart = this.SchoolAfternoonStartDateTime; Scheduler.SchoolAfternoonEnd = this.SchoolAfternoonEndDateTime; Scheduler.SecondaryWorkThreshold = this.SecondaryWorkThresholdDateTime; Scheduler.StartTimeQuanta = this.StartTimeQuantaLocal; Scheduler.StartTimeQuantaInterval = (short)( ( 24 * 60 ) / Scheduler.StartTimeQuanta ); Time.OneQuantum = this.MinimumDurationDateTime; Time.StartOfDay = new Time() { Hours = 4 }; Time.EndOfDay = new Time() { Hours = 28 }; Scheduler.PercentOverlapAllowed = this.PercentOverlapAllowedLocal; Scheduler.SecondaryWorkMinStartTime = this.SecondaryWorkMinStartTimeDateTime; Scheduler.MinPrimaryWorkDurationForReturnHomeFromWork = this.MinPrimaryWorkDurationForReturnHomeFromWorkDateTime; Scheduler.MaxPrimeWorkStartTimeForReturnHomeFromWork = this.MaxPrimeWorkStartTimeForReturnHomeFromWorkDateTime; Scheduler.ReturnHomeFromWorkMaxEndTime = this.ReturnHomeFromWorkMaxEndTimeDateTime; Scheduler.FullTimeActivity = this.FullTimeActivityDateTime; Scheduler.LocationChoiceModel = this.LocationChoiceModelLocal; Scheduler.LocationChoiceModel.LoadLocationChoiceCache(); //Distributions Scheduler.AdultDistributionsFile = this.GetFullPath( this.AdultDistributionsFileLocal ); Scheduler.FrequencyDistributionsFile = this.GetFullPath( this.FrequencyDistributionsFileLocal ); Scheduler.NumberOfDistributions = this.NumberOfDistributionsLocal; Scheduler.NumberOfAdultFrequencies = this.NumberOfAdultFrequenciesLocal; Scheduler.NumberOfAdultDistributions = this.NumberOfAdultDistributionsLocal; Scheduler.MaxFrequency = this.MaxFrequencyLocal; Distribution.TashaRuntime = this.TashaRuntime; Distribution.InitializeDistributions(); HouseholdExtender.TashaRuntime = this.TashaRuntime; // references in scheduler SchedulerHousehold.TashaRuntime = this.TashaRuntime; Schedule.Scheduler = this; }
/// <summary> /// Load the data we only need to get once /// </summary> public void LoadOneTimeLocalData() { if (this.AlternativeTravelModeName != null && this.AlternativeTravelModeName != String.Empty) { var allModes = this.TashaRuntime.AllModes; bool found = false; foreach (var mode in allModes) { if (mode.ModeName == this.AlternativeTravelModeName) { this.AlternativeTravelMode = mode; found = true; break; } } if (!found) { throw new XTMFRuntimeException("Unable to find the Alternative Travel Mode called " + this.AlternativeTravelModeName); } } Scheduler.LocalScheduler = this; Scheduler.Tasha = this.TashaRuntime; Scheduler.MinimumWorkingAge = this.MinWorkingAgeLocal; Scheduler.EpisodeSchedulingAttempts = this.EpisodeSchedulingAttemptsLocal; Scheduler.ActivityLevels = this.GetFullPath(this.ActivityLevelsLocal); Scheduler.SchoolMorningStart = this.SchoolMorningStartDateTime; Scheduler.SchoolMorningEnd = this.SchoolMorningEndDateTime; Scheduler.SchoolAfternoonStart = this.SchoolAfternoonStartDateTime; Scheduler.SchoolAfternoonEnd = this.SchoolAfternoonEndDateTime; Scheduler.SecondaryWorkThreshold = this.SecondaryWorkThresholdDateTime; Scheduler.StartTimeQuanta = this.StartTimeQuantaLocal; Scheduler.StartTimeQuantaInterval = (short)((24 * 60) / Scheduler.StartTimeQuanta); Time.OneQuantum = this.MinimumDurationDateTime; Time.StartOfDay = new Time() { Hours = 4 }; Time.EndOfDay = new Time() { Hours = 28 }; Scheduler.PercentOverlapAllowed = this.PercentOverlapAllowedLocal; Scheduler.SecondaryWorkMinStartTime = this.SecondaryWorkMinStartTimeDateTime; Scheduler.MinPrimaryWorkDurationForReturnHomeFromWork = this.MinPrimaryWorkDurationForReturnHomeFromWorkDateTime; Scheduler.MaxPrimeWorkStartTimeForReturnHomeFromWork = this.MaxPrimeWorkStartTimeForReturnHomeFromWorkDateTime; Scheduler.ReturnHomeFromWorkMaxEndTime = this.ReturnHomeFromWorkMaxEndTimeDateTime; Scheduler.FullTimeActivity = this.FullTimeActivityDateTime; Scheduler.LocationChoiceModel = this.LocationChoiceModelLocal; Scheduler.LocationChoiceModel.LoadLocationChoiceCache(); //Distributions Scheduler.AdultDistributionsFile = this.GetFullPath(this.AdultDistributionsFileLocal); Scheduler.FrequencyDistributionsFile = this.GetFullPath(this.FrequencyDistributionsFileLocal); Scheduler.NumberOfDistributions = this.NumberOfDistributionsLocal; Scheduler.NumberOfAdultFrequencies = this.NumberOfAdultFrequenciesLocal; Scheduler.NumberOfAdultDistributions = this.NumberOfAdultDistributionsLocal; Scheduler.MaxFrequency = this.MaxFrequencyLocal; Distribution.TashaRuntime = this.TashaRuntime; Distribution.InitializeDistributions(); HouseholdExtender.TashaRuntime = this.TashaRuntime; // references in scheduler SchedulerHousehold.TashaRuntime = this.TashaRuntime; Schedule.Scheduler = this; }