Ejemplo n.º 1
0
 public TrainStateViewModel(Area area, int?trainNumber)
 {
     m_LiveDataBll = new LiveDataBLL();
     SaveCommand   = new CommandHandler(__Save, false);
     m_Area        = area;
     TrainNumber   = trainNumber;
 }
Ejemplo n.º 2
0
        public ESTWTestDataScope(LiveDataBLL liveDataBll)
        {
            var property          = liveDataBll.GetType().GetProperty("InitializationBLL", BindingFlags.NonPublic | BindingFlags.Instance);
            var initializationBll = property.GetValue(liveDataBll) as InitializationBLL;

            __Init(initializationBll);
        }
Ejemplo n.º 3
0
        public ExpectedDelayViewModel(Area area, TrainInformation train, Schedule schedule)
        {
            m_Area        = area;
            m_Train       = train;
            SaveCommand   = new CommandHandler(__Save, false);
            m_LiveDataBll = new LiveDataBLL();

            if (m_Train == null)
            {
                var createResult = m_LiveDataBll.CreateLiveTrainInformation(schedule.Train.Number, schedule.Station.ESTW);

                if (createResult.Succeeded)
                {
                    m_Train = createResult.Result;
                }
                else
                {
                    MessageBox.Show(createResult.Message, "Fehler", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
            }

            var candidates = m_Train.Schedules.Where((s1, i1) => !m_Train.Schedules.Skip(i1 + 1).Any(s2 => s2.IsArrived)) // Must be first criterion due to indizes
                             .Where(s => !s.IsDeparted)
                             .Where(s => s.Schedule.Station.ESTW.Stations.Any(s2 => Runtime.VisibleStations.Contains(s2)))
                             .GroupBy(s => new { s.Schedule.Station.ShortSymbol, s.Schedule.Time })
                             .Select(g => g.FirstOrDefault());

            Schedules        = new ObservableCollection <LiveSchedule>(candidates);
            SelectedSchedule = Schedules.FirstOrDefault(s => s.Schedule.Station.ShortSymbol == schedule.Station.ShortSymbol && s.Schedule.Time == schedule.Time);

            m_ArrivalChanged   = false;
            m_DepartureChanged = false;
        }
Ejemplo n.º 4
0
        public MainViewModel()
        {
            m_NewCommand                      = new CommandHandler <string>(__New, true);
            m_OpenCommand                     = new CommandHandler(__Open, true);
            m_SaveCommand                     = new CommandHandler(__Save, false);
            m_SaveAsCommand                   = new CommandHandler(__SaveAs, false);
            m_SettingsCommand                 = new CommandHandler(__Settings, true);
            m_EstwOnlineCommand               = new CommandHandler(__StartEstwOnline, true);
            m_ExitCommand                     = new CommandHandler(__Exit, true);
            m_EstwSelectionCommand            = new CommandHandler(__ShowEstwSelectionWindow, false);
            m_TrainProgressInformationCommand = new CommandHandler(__ShowTrainProgressInformationWindow, false);
            m_TimeTableCommand                = new CommandHandler <Station>(__ShowTimeTableWindow, true);
            m_TrainScheduleCommand            = new CommandHandler(__ShowTrainScheduleWindow, false);
            m_SystemStateCommand              = new CommandHandler(__ShowSystemStateWindow, false);
            m_SaveLayoutCommand               = new CommandHandler(__SaveLayout, true);
            m_ClearChildWindowsCommand        = new CommandHandler(__ClearChildWindows, true);
            m_ShowHelpCommand                 = new CommandHandler(__ShowHelp, true);
            m_ShowQuickStartHelpCommand       = new CommandHandler(__ShowQuickStartHelp, true);
            m_AboutCommand                    = new CommandHandler(__ShowAboutWindow, true);
            m_DebugModeCommand                = new CommandHandler(__ToggleDebugMode, true);

            m_InitializationBll = new InitializationBLL();
            m_LiveDataBll       = new LiveDataBLL();
            m_SettingsBll       = new SettingsBLL();
            m_SerializationBll  = new SerializationBLL();

            m_ChildViewModels = new List <ViewModelBase>();
            ChildWindows      = new ObservableCollection <ChildWindow>();

            Runtime.VisibleStationsChanged += __VisibleStationsChanged;

            var AreaResult = m_InitializationBll.GetAreaInformation();

            if (AreaResult.Succeeded)
            {
                Areas = AreaResult.Result.ToObservableCollection();
            }
            else
            {
                ShowMessage(AreaResult);
                Areas = new ObservableCollection <Area>();
            }

            var SettingsResult = m_SettingsBll.AreSettingsComplete();

            if (SettingsResult.Succeeded)
            {
                if (!SettingsResult.Result)
                {
                    __Settings();
                }
            }
            else
            {
                ShowMessage(SettingsResult);
            }

            StatusBarText = "Herzlich willkommen!";
        }
Ejemplo n.º 5
0
 public DelayInfoViewModel(DelayInfo Delay)
     : base()
 {
     CurrentDelay    = Delay;
     SaveCommand     = new CommandHandler(__Save, false);
     m_LiveDataBll   = new LiveDataBLL();
     AllDelayReasons = DelayReason.GetAllDelayReasons();
 }
Ejemplo n.º 6
0
        public ExpectedDelayViewModel(TrainInformation train, Schedule schedule)
        {
            m_Train       = train;
            SaveCommand   = new CommandHandler(__Save, false);
            m_LiveDataBll = new LiveDataBLL();

            var candidates = train.Schedules.Where((s1, i1) => !train.Schedules.Skip(i1 + 1).Any(s2 => s2.IsArrived)) // Must be first criterion due to indizes
                             .Where(s => s.Schedule.Handling != eHandling.Destination && !s.IsDeparted)
                             .Where(s => s.Schedule.Station.ESTW.Stations.Any(s2 => Runtime.VisibleStations.Contains(s2)))
                             .GroupBy(s => new { s.Schedule.Station.ShortSymbol, s.Schedule.Time })
                             .Select(g => g.FirstOrDefault());

            Schedules        = new ObservableCollection <LiveSchedule>(candidates);
            SelectedSchedule = Schedules.FirstOrDefault(s => s.Schedule.Station.ShortSymbol == schedule.Station.ShortSymbol && s.Schedule.Time == schedule.Time);
        }
Ejemplo n.º 7
0
        public TrackChangeViewModel(TrainInformation train, Schedule schedule)
        {
            m_Train       = train;
            SaveCommand   = new CommandHandler(__Save, false);
            m_LiveDataBll = new LiveDataBLL();

            var candidates = train.Schedules.Where((s1, i1) => !train.Schedules.Skip(i1 + 1).Any(s2 => s2.IsArrived)) // Must be first criterion due to indizes
                             .Where(s => !s.IsArrived && (s.Schedule.Track == null || s.Schedule.Track.IsPlatform))
                             .Where(s => s.Schedule.Station.ESTW.Stations.Any(s2 => Runtime.VisibleStations.Contains(s2)))
                             .GroupBy(s => new { s.Schedule.Station.ShortSymbol, s.Schedule.Time })
                             .Select(g => g.FirstOrDefault());

            Schedules        = new ObservableCollection <LiveSchedule>(candidates);
            SelectedSchedule = Schedules.FirstOrDefault(s => s.Schedule.Station.ShortSymbol == schedule.Station.ShortSymbol && s.Schedule.Time == schedule.Time);
            SelectedTrack    = SelectedSchedule?.LiveTrack;
        }
Ejemplo n.º 8
0
        public DelayInfoViewModel(DelayInfo Delay)
            : base()
        {
            CurrentDelay  = Delay;
            SaveCommand   = new CommandHandler(__Save, false);
            m_LiveDataBll = new LiveDataBLL();

            if (Delay.Schedule.Schedule.Station.ESTW.InfrastructureManager == eInfrastructureManager.DB)
            {
                AllDelayReasons = DelayReason.GetDBDelayReasons();
            }
            else if (Delay.Schedule.Schedule.Station.ESTW.InfrastructureManager == eInfrastructureManager.OEBB)
            {
                AllDelayReasons = DelayReason.GetOEBBDelayReasons();
            }
        }
Ejemplo n.º 9
0
        public TrainScheduleViewModel(Dispatcher Dispatcher, Train Train, Area Area)
        {
            this.Dispatcher             = Dispatcher;
            CurrentTrain                = Train;
            m_Area                      = Area;
            m_LiveDataBll               = new LiveDataBLL();
            m_CalculationBll            = new CalculationBLL();
            m_SettingsBll               = new SettingsBLL();
            Stations                    = new ObservableCollection <TrainScheduleStationViewModel>();
            OpenTrainScheduleCommand    = new CommandHandler <int?>(__OpenTrainSchedule, true);
            EditCommand                 = new CommandHandler(__EnterEditMode, true);
            DelayJustificationCommand   = new CommandHandler(__ShowDelayJustificationWindow, false);
            ShowTrainCompositionCommand = new CommandHandler(__ShowTrainComposition, Train.Composition.IsNotNullOrWhiteSpace());
            CloseCommand                = new CommandHandler(OnCloseWindow, true);
            SaveCommand                 = new CommandHandler(__Save, true);
            CancelCommand               = new CommandHandler(__ExitEditMode, true);
            CancelTrainCommand          = new CommandHandler(__CancelTrain, true);

            if (Area != null)
            {
                Refresh(Area);
            }
        }