/// <summary>
        /// Function finds and returns a list of stages generated off first station.
        /// Finds all next transfers stages.
        /// </summary>
        /// <param name="off"></param>
        /// <returns></returns>
        public static List <Stage> findNextTransferStages(TrainStation from)
        {
            List <Stage> stages = new List <Stage>();
            // retreive all available trainLine1 passing trough toStation of previousStage
            List <TrainLine> availableTrainLines = from.getTrainLines();

            // loop over all available trainLines
            foreach (TrainLine line in availableTrainLines)
            {
                // find all available possible changing station on trainLine1
                List <TrainStation> changingStations = findChangingStationOnTrainLine(line);
                // loop over all changing station
                foreach (TrainStation to in changingStations)
                {
                    // randomizeTimetable stage on line between stations off and to
                    Stage stage = generateStage(line, from, to);
                    // if exists
                    if (stage != null)
                    {
                        // addConstraint to stages
                        stages.Add(stage);
                    }
                }
            }
            return(stages);
        }
        //-----------------------------------------------------
        // Method generating NEXT FINAL STAGES
        //-----------------------------------------------------

        /// <summary>
        /// Function finds and returns a list of final stage
        /// generated off previous stage and toStation.
        /// </summary>
        /// <param name="previousStage"></param>
        /// <param name="to"></param>
        /// <returns></returns>
        public static List <Stage> findNextFinalStages(TrainStation from, TrainStation to)
        {
            List <Stage> stages = new List <Stage>();
            // retreive all available trainLine1 passing trough toStation of previousStage
            List <TrainLine> availableTrainLines = from.getTrainLines();

            // loop over all available trainLines
            foreach (TrainLine line in availableTrainLines)
            {
                Stage stage = generateStage(line, from, to);

                // if exists
                if (stage != null)
                {
                    // addConstraint to stages
                    stages.Add(stage);
                }
            }
            return(stages);
        }
Exemple #3
0
        private void prepareListViewListOfTrainLines()
        {
            List <TrainLine> trainLines = trainStation.getTrainLines();

            listViewTrainLines.BeginUpdate();

            listViewTrainLines.Items.Clear();
            foreach (TrainLine line in trainLines)
            {
                ListViewItem lvi = new ListViewItem();
                lvi.Text = line.LineNumber.ToString();
                lvi.Tag  = line.LineNumber.ToString();

                lvi.SubItems.Add(line.TypeTrain.ToString());
                lvi.SubItems.Add(line.Period.ToString());
                lvi.SubItems.Add(line.getFirstTrainStop().TrainStation.Name);
                lvi.SubItems.Add(line.getLastTrainStop().TrainStation.Name);

                listViewTrainLines.Items.Add(lvi);
            }
            listViewTrainLines.EndUpdate();
        }