コード例 #1
0
 public void ExecuteAddCommand()
 {
     if (SelectedStationAvailable != null && !SelectedStations.Contains(SelectedStationAvailable))
     {
         selectedStations.Add(SelectedStationAvailable);
     }
 }
コード例 #2
0
ファイル: SettingsVM.cs プロジェクト: danielkreuzer/C-sharp
        public SettingsVM(ISimulator simulator)
        {
            this._simulator = simulator;
            SynchronizationContext uiContext = SynchronizationContext.Current;

            // start threads for async operations with UI-Context
            Stations = new ObservableCollection <StationVM>();
            Task.Run(() => LoadStationsAsync(uiContext));

            MeasurementTypes = new ObservableCollection <MeasurementType>();
            Task.Run(() => LoadTypesAsync(uiContext));

            // register event handlers to watch for simulation status changes
            simulator.IsSimulatingChanged += value => IsSimulating = value;

            simulator.StationIsInSimulationChanged += (added, station) => {
                if (added)
                {
                    SelectedStations.Add(station);
                }
                else
                {
                    for (int i = 0; i < SelectedStations.Count; i++)
                    {
                        if (SelectedStations[i].Id == station.Id)
                        {
                            SelectedStations.RemoveAt(i);
                        }
                    }
                }

                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(SelectedStations)));
                UpdateSimulationReady();
            };
        }
コード例 #3
0
 public void AddStation(Station station)
 {
     if (!StationIsInSimulation(station))
     {
         SelectedStations.Add(station);
         StationIsInSimulationChanged?.Invoke(true, station);
     }
 }
コード例 #4
0
        public void StartSimulator()
        {
            IsSimulating = true;
            IsSimulatingChanged?.Invoke(IsSimulating);

            _tokenSource = new CancellationTokenSource();
            var token = _tokenSource.Token;

            if (IsLoadTesting)
            {
                SelectedStations.ForEach(station => {
                    Task.Run(() => Simulate(station, token), token);
                    _runningTasks++;
                });
            }
            else
            {
                Task.Run(() => Simulate(CurrentStation, token), token);
                _runningTasks++;
            }
        }
コード例 #5
0
 public bool StationIsInSimulation(Station station)
 {
     return(SelectedStations.FindAll(s => s.Id == station.Id).Any());
 }
コード例 #6
0
 public void RemoveStation(Station station)
 {
     SelectedStations.RemoveAll(s => s.Id == station.Id);
     StationIsInSimulationChanged?.Invoke(false, station);
 }