public override BusStopEvents CreateEvent(int busStopNumber) { BoardingEvent _evnt = null; try { if (busStopNumber.Equals(16)) { busStopNumber = 1; } _evnt = new BoardingEvent() { BusStopNumber = busStopNumber, TypeofEvent = EventType.PersonBoarding, BusNumber = this.BusNumber }; //Calcuate next execution time. _evnt.TimeofExecution = this.TimeofExecution; //ClockTime + _driveTime + NumberofPersonInQueueAtStop * BoardingTime } catch (Exception ex) { ApplicationLog.Instance.WriteException(ex); } return(_evnt); }
public void Initialize() { int _totalBusStops = TotalNumberOfBusStops; int _busNumber = 1; for (int _nIndex = 1; _nIndex <= _totalBusStops; _nIndex++) { int _currentPassangersAtStop = 0; if (_dicNumberOfPersonsByStopNumber.Keys.Contains(_nIndex)) { _dicNumberOfPersonsByStopNumber.TryGetValue(_nIndex, out _currentPassangersAtStop); } if ((_nIndex % 3).Equals(0)) { //Bus arrival event BusArrivalEvent _busArrivalEvent = new BusArrivalEvent() { NumberofPersonInQueueAtStop = _currentPassangersAtStop, BusNumber = _busNumber, ClockTime = _nIndex }; _busArrivalEvent = _busArrivalEvent.CreateEvent(_nIndex) as BusArrivalEvent; AddToQueue(_busArrivalEvent); BoardingEvent _boardingEvent = new BoardingEvent() { NumberofPersonInQueueAtStop = _currentPassangersAtStop, BusNumber = _busNumber, TimeofExecution = _busArrivalEvent.TimeofExecution }; _boardingEvent = _boardingEvent.CreateEvent(_nIndex) as BoardingEvent; AddToQueue(_boardingEvent); _busNumber += 1; } //Person Arrival event. PersonArrivalEvent _personArrival = new PersonArrivalEvent() { NumberofPersonInQueueAtStop = _currentPassangersAtStop, ClockTime = _nIndex }; _personArrival = _personArrival.CreateEvent(_nIndex) as PersonArrivalEvent; AddToQueue(_personArrival); _dicNumberOfPersonsByStopNumber.Add(_nIndex, _personArrival.NumberofPersonInQueueAtStop); } }
public void Initialize() { int _totalBusStops = _busTerminalConfiguration.TotalNumberofBusStops; int _busNumber = 1; for (int _nIndex = 1; _nIndex <= _totalBusStops; _nIndex++) { _lblPassengerCount = Controls.Find(string.Format("lblPassengerCount{0}", _nIndex), true).FirstOrDefault() as Label; int _currentPassangersAtStop = 0; int.TryParse(_lblPassengerCount.Text, out _currentPassangersAtStop); if ((_nIndex % 3).Equals(0)) { //Bus arrival event BusArrivalEvent _busArrivalEvent = new BusArrivalEvent() { NumberofPersonInQueueAtStop = _currentPassangersAtStop, BusNumber = _busNumber, ClockTime = _nIndex }; _busArrivalEvent = _busArrivalEvent.CreateEvent(_nIndex) as BusArrivalEvent; AddToQueue(_busArrivalEvent); BoardingEvent _boardingEvent = new BoardingEvent() { NumberofPersonInQueueAtStop = _currentPassangersAtStop, BusNumber = _busNumber, TimeofExecution = _busArrivalEvent.TimeofExecution }; _boardingEvent = _boardingEvent.CreateEvent(_nIndex) as BoardingEvent; AddToQueue(_boardingEvent); _busNumber += 1; } //Person Arrival event. PersonArrivalEvent _personArrival = new PersonArrivalEvent() { NumberofPersonInQueueAtStop = _currentPassangersAtStop, ClockTime = _nIndex }; _personArrival = _personArrival.CreateEvent(_nIndex) as PersonArrivalEvent; AddToQueue(_personArrival); _lblPassengerCount.Text = _personArrival.NumberofPersonInQueueAtStop.ToString(); } _ntotalBuses = _busNumber; }
public override BusStopEvents ExecuteEvent() { BoardingEvent _event = null; try { _event = this; ApplicationLog.Instance.WriteInfo(string.Format("Boarding passenger in Bus# {0} at stop# {1}.", BusNumber, _event.BusStopNumber)); _event.NumberofPersonInQueueAtStop -= 1; } catch (Exception ex) { ApplicationLog.Instance.WriteException(ex); } return(_event); }