void DoSendStartList(object sender, System.Timers.ElapsedEventArgs e) { string output = null; Application.Current.Dispatcher.Invoke(() => { List <object> remaingStarters = new List <object>(); int c = 0; foreach (var item in _rslVP.GetView()) { if (_limit >= 0 && c >= _limit) { break; } remaingStarters.Add(item); c++; } output = JsonConversion.ConvertOnStartList(remaingStarters); }); OnNewDataToSend(this, new NewDataEventArgs { Data = output }); }
private void selectNextParticipant(RaceParticipant currentParticipant) { RaceParticipant nextParticipant = null; bool useNext = false; foreach (var sle in _rslVP.GetView().SourceCollection.OfType <StartListEntry>()) { if (useNext) { nextParticipant = sle.Participant; break; } if (sle.Participant == currentParticipant) { useNext = true; } } if (nextParticipant != null) { txtStartNumber.Text = nextParticipant.StartNumber.ToString(); } txtStartNumber.Focus(); }
private void ListenToCurrentRaceRun() { if (_currentRace != _dm.GetCurrentRaceRun()) { if (_notifier != null) { _notifier.CollectionChanged -= StartListChanged; _notifier.ItemChanged -= StartListItemChanged; _notifier = null; } _rslVP = null; Application.Current.Dispatcher.Invoke(() => { RaceRun raceRun = _dm.GetCurrentRaceRun(); _rslVP = new RemainingStartListViewProvider(); _rslVP.Init(raceRun.GetStartListProvider(), raceRun); _notifier = new ItemsChangedNotifier(_rslVP.GetView()); _notifier.CollectionChanged += StartListChanged; _notifier.ItemChanged += StartListItemChanged; }); _currentRace = _dm.GetCurrentRaceRun(); SendStartList(); } }
private void ConnectUiToRaceRun(RaceRun raceRun) { if (raceRun != null) { _rslVP = (new ViewConfigurator(_thisRace)).GetRemainingStartersViewProvider(raceRun); dgRemainingStarters.ItemsSource = _rslVP.GetView(); UiUtilities.EnableOrDisableColumns(_thisRace, dgRemainingStarters); dgRunning.ItemsSource = raceRun.GetOnTrackList(); UiUtilities.EnableOrDisableColumns(_thisRace, dgRunning); dgFinish.ItemsSource = raceRun.GetInFinishList(); UiUtilities.EnableOrDisableColumns(_thisRace, dgFinish); lblStartList.DataContext = _rslVP.GetView(); } else { dgRemainingStarters.ItemsSource = null; dgRunning.ItemsSource = null; dgFinish.ItemsSource = null; } }