private void TournamentManager_RaceUpdated(int tournamentID, RaceUpdatedEventArgs e) { if (!Application.Current.Dispatcher.CheckAccess()) { Application.Current.Dispatcher.Invoke(() => this.TournamentManager_RaceUpdated(tournamentID, e)); } else { if ((_race == null) || (tournamentID != this.TournamentID) || (e.Race.RaceNumber != _race.RaceNumber)) { return; } _race = e.Race; this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(this.CurrentRace))); this.PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(this.RaceState))); UpdateLanes(_race); } }
private void TournamentManager_RaceUpdated(int tournamentID, RaceUpdatedEventArgs e) { if (!Application.Current.Dispatcher.CheckAccess()) { Application.Current.Dispatcher.Invoke(() => this.TournamentManager_RaceUpdated(tournamentID, e)); } else { if (tournamentID != this.TournamentID) { return; } foreach (EditRaceViewModel race in this.Races) { if (race.RaceNumber == e.Race.RaceNumber) { race.Update(e.Race); break; } } } }
private void TournamentManager_RaceUpdated(int tournamentID, RaceUpdatedEventArgs e) { Clients.All.currentRaceUpdated(tournamentID, e.Race); }