示例#1
0
        /// <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;
            }
        }
示例#2
0
        /// <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;
            }
        }