/// <summary> /// Обработчик события от <see cref="NataInfo.Nibus.Nms.NmsProtocol.InformationReportReceived"/>. /// </summary> /// <param name="sender">Источник события.</param> /// <param name="e">The <see cref="NataInfo.Nibus.Nms.NmsInformationReportEventArgs"/> instance containing the event data.</param> protected override void OnInformationReportReceived(object sender, NmsInformationReportEventArgs e) { base.OnInformationReportReceived(sender, e); if (e.Identified) { return; } if (e.InformationReport.Id == TennisStats) { var report = e.InformationReport; var source = report.Datagram.Source; LazyInvokeEvent(TennisStatChanged, () => new TennisStatChangedEventArgs(source, report.GetTennisStat())); e.Identified = true; } }
/// <summary> /// Обработчик события от <see cref="NataInfo.Nibus.Nms.NmsProtocol.InformationReportReceived"/>. /// </summary> /// <param name="sender">Источник события.</param> /// <param name="e">The <see cref="NataInfo.Nibus.Nms.NmsInformationReportEventArgs"/> instance containing the event data.</param> /// <remarks>Если тип события определен устанавливается значение <see cref="NmsInformationReportEventArgs.Identified"/> = <c>true</c></remarks> protected virtual void OnInformationReportReceived(object sender, NmsInformationReportEventArgs e) { var report = e.InformationReport; var source = report.Datagram.Source; e.Identified = true; switch (report.Id) { case (int)GameReports.Timer: LazyInvokeEvent(TimerChanged, () => new TimerChangedEventArgs(source, report.GetTimerInfo())); break; case (int)GameReports.HomeTeamScore: LazyInvokeEvent(HomeScoreChanged, () => new ScoreChangedEventArgs(source, (ushort)report.Value)); break; case (int)GameReports.VisitingTeamScore: LazyInvokeEvent(VisitorScoreChanged, () => new ScoreChangedEventArgs(source, (ushort)report.Value)); break; case (int)GameReports.Period: LazyInvokeEvent(PeriodChanged, () => new PeriodChangedEventArgs(source, (byte)report.Value)); break; case (int)GameReports.HomeTeamFouls: LazyInvokeEvent(HomeFoulsChanged, () => new FoulsChangedEventArgs(source, (byte)report.Value)); break; case (int)GameReports.VisitingTeamFouls: LazyInvokeEvent(VisitorFoulsChanged, () => new FoulsChangedEventArgs(source, (byte)report.Value)); break; case (int)GameReports.HomeTeamTimebreaks: LazyInvokeEvent( HomeTimebreaksChanged, () => new TimebreaksChangedEventArgs(source, (byte)report.Value)); break; case (int)GameReports.VisitingTeamTimebreaks: LazyInvokeEvent( VisitorTimebreaksChanged, () => new TimebreaksChangedEventArgs(source, (byte)report.Value)); break; case (int)GameReports.TeamCount: LazyInvokeEvent(TeamCountChanged, () => new TeamCountChangedEventArgs(source, report.Value)); break; case (int)GameReports.PlayerInfo: LazyInvokeEvent( PlayerInfoChanged, () => new PlayerInfoChangedEventArgs(source, report.GetPlayerInfo())); break; case (int)GameReports.PlayerStat: LazyInvokeEvent( PlayerStatChanged, () => new PlayerStatChangedEventArgs(source, report.GetPlayerStat())); break; case (int)GameReports.HomeTeamName: LazyInvokeEvent(HomeNameChanged, () => new TeamNameChangedEventArgs(source, (string)report.Value)); break; case (int)GameReports.VisitingTeamName: LazyInvokeEvent( VisitorNameChanged, () => new TeamNameChangedEventArgs(source, (string)report.Value)); break; case (int)GameReports.HomeTeamCountry: LazyInvokeEvent(HomeCountryChanged, () => new CountryChangedEventArgs(source, (string)report.Value)); break; case (int)GameReports.VisitingTeamCountry: LazyInvokeEvent( VisitorCountryChanged, () => new CountryChangedEventArgs(source, (string)report.Value)); break; case (int)GameReports.TournamentName: LazyInvokeEvent( TournamentChanged, () => new TournamentChangedEventArgs(source, (string)report.Value)); break; case (int)GameReports.BallOwner: LazyInvokeEvent( BallOwnerChanged, () => new BallOwnerChangedEventArgs(source, (BallOwner)(byte)report.Value)); break; case (int)GameReports.ShowMessage: LazyInvokeEvent( ShowInfoMessage, () => new ShowInfoMessageEventArgs(source, report.GetInfoMessage())); break; case (int)GameReports.ChangeSport: LazyInvokeEvent(SportChanged, () => new SportChangedEventArgs(source, report.GetProviderInfo())); break; default: e.Identified = false; break; } }