public void AddScenario(IPressScenario scenario) { while (scenario.PeekNextEvent().Date < _currentDate) { scenario.PopNextEvent(); } if (scenario.PeekNextEvent() != null) { _scenarios.Add(scenario); } }
// Gets the scenario that contains event with smallest time value private IPressScenario GetClosestEventScenario() { DateTime min = _endDate; IPressScenario minScenario = null; foreach (var scenario in _scenarios) { var nextEvent = scenario.PeekNextEvent(); if (nextEvent == null) { continue; } if ((minScenario == null) || (min > nextEvent.Date)) { min = nextEvent.Date; minScenario = scenario; } } return(minScenario); }