/// <summary>
        /// Initializes a new instance of the <see cref="SportEventStatusDTO"/> class.
        /// </summary>
        /// <param name="record">A <see cref="restSportEventStatus" /> instance containing status data about the associated sport event</param>
        public SportEventStatusDTO(stageSportEventStatus record)
        {
            Guard.Argument(record, nameof(record)).NotNull();

            var tempProperties = new Dictionary <string, object>(0);

            if (record.results != null && record.results.Any())
            {
                var i = 0;
                foreach (var resultType in record.results)
                {
                    i++;
                    ApplyPropertyValue(true, $"Result{i}_Climber", resultType.climber, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_ClimberRanking", resultType.climber_ranking, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Id", resultType.id, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Points", resultType.points, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Sprint", resultType.sprint, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_SprintRanking", resultType.sprint_ranking, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Status", resultType.status, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_StatusComment", resultType.status_comment, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Time", resultType.time, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_TimeRanking", resultType.time_ranking, tempProperties);
                }
            }
            ApplyPropertyValue(true, "WinnerId", record.winner_id, tempProperties);

            Properties = new ReadOnlyDictionary <string, object>(tempProperties);

            Status = MessageMapperHelper.GetEnumValue(record.status, EventStatus.Unknown);
            ApplyPropertyValue(true, "Status", (int)Status, tempProperties);

            MatchStatusId = -1;

            WinnerId = !string.IsNullOrEmpty(record.winner_id) ? URN.Parse(record.winner_id) : null;

            ReportingStatus = ReportingStatus.Unknown;

            PeriodScores = null;

            EventClock = null;

            var eventResults = new List <EventResultDTO>();

            if (record.results != null && record.results.Any())
            {
                foreach (var stageResultCompetitor in record.results)
                {
                    eventResults.Add(new EventResultDTO(stageResultCompetitor));
                }

                EventResults = eventResults;
            }

            SportEventStatistics = null;
        }
Beispiel #2
0
        /// <summary>
        /// Initializes a new instance of the <see cref="SportEventStatusDTO"/> class.
        /// </summary>
        /// <param name="stageSES">A <see cref="restSportEventStatus" /> instance containing status data about the associated sport event</param>
        /// <remarks>From SportEventSummary</remarks>
        public SportEventStatusDTO(stageSportEventStatus stageSES)
        {
            Guard.Argument(stageSES, nameof(stageSES)).NotNull();

            var tempProperties = new Dictionary <string, object>();

            //TODO: review this
            var eventResults = new List <EventResultDTO>();

            if (stageSES.results != null && stageSES.results.competitor != null && stageSES.results.competitor.Any())
            {
                var i = 0;
                foreach (var resultType in stageSES.results.competitor)
                {
                    i++;
                    ApplyPropertyValue(true, $"Result{i}_Climber", resultType.climber, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_ClimberRanking", resultType.climber_ranking, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Id", resultType.id, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Points", resultType.points, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Sprint", resultType.sprint, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_SprintRanking", resultType.sprint_ranking, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Status", resultType.status, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_StatusComment", resultType.status_comment, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Time", resultType.time, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_TimeRanking", resultType.time_ranking, tempProperties);

                    eventResults.Add(new EventResultDTO(resultType));
                }
                EventResults = eventResults;
            }

            ApplyPropertyValue(true, "WinnerId", stageSES.winner_id, tempProperties);
            ApplyPropertyValue(stageSES.period_of_leaderSpecified, "period_of_leader", stageSES.period_of_leader, tempProperties);

            Properties = new ReadOnlyDictionary <string, object>(tempProperties);

            Status = MessageMapperHelper.GetEnumValue(stageSES.status, EventStatus.Unknown);
            ApplyPropertyValue(true, "Status", (int)Status, tempProperties);

            MatchStatusId = -1;

            WinnerId = !string.IsNullOrEmpty(stageSES.winner_id) ? URN.Parse(stageSES.winner_id) : null;

            PeriodOfLadder = stageSES.period_of_leaderSpecified ? stageSES.period_of_leader : (int?)null;

            ReportingStatus = ReportingStatus.Unknown;

            PeriodScores = null;

            EventClock = null;

            SportEventStatistics = null;
        }
Beispiel #3
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="SportEventStatusDTO" /> class.
        /// </summary>
        /// <param name="record">
        ///     A <see cref="restSportEventStatus" /> instance containing status data about the associated sport
        ///     event
        /// </param>
        public SportEventStatusDTO(stageSportEventStatus record)
        {
            Contract.Requires(record != null);

            var tempProperties = new Dictionary <string, object>(0);

            if (record.results != null && record.results.Any())
            {
                var i = 0;
                foreach (var resultType in record.results)
                {
                    i++;
                    ApplyPropertyValue(true, $"Result{i}_Climber", resultType.climber, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_ClimberRanking", resultType.climber_ranking, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Id", resultType.id, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Points", resultType.points, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Sprint", resultType.sprint, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_SprintRanking", resultType.sprint_ranking, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Status", resultType.status, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_StatusComment", resultType.status_comment, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_Time", resultType.time, tempProperties);
                    ApplyPropertyValue(true, $"Result{i}_TimeRanking", resultType.time_ranking, tempProperties);
                }
            }

            ApplyPropertyValue(true, "WinnerId", record.winner_id, tempProperties);

            Properties = new ReadOnlyDictionary <string, object>(tempProperties);

            Status = MessageMapperHelper.GetEnumValue(record.status, EventStatus.Unknown);
            ApplyPropertyValue(true, "Status", (int)Status, tempProperties);
            //IsReported = record.reportingSpecified
            //    ? (int?)record.reporting
            //    : null;

            //HomeScore = record.home_scoreSpecified
            //    ? (decimal?)record.home_score
            //    : null;

            //AwayScore = record.away_scoreSpecified
            //    ? (decimal?)record.away_score
            //    : null;

            //if (!string.IsNullOrEmpty(record.status))
            //{
            //    int statusId;
            //    int.TryParse(record.status, out statusId);
            //    MatchStatusId = statusId;
            //}

            MatchStatusId = -1;

            WinnerId = !string.IsNullOrEmpty(record.winner_id) ? URN.Parse(record.winner_id) : null;

            ReportingStatus = ReportingStatus.Unknown;

            PeriodScores = null;

            EventClock = null;

            var eventResults = new List <EventResultDTO>();

            if (record.results != null && record.results.Any())
            {
                foreach (var stageResultCompetitor in record.results)
                {
                    eventResults.Add(new EventResultDTO(stageResultCompetitor));
                }

                EventResults = eventResults;
            }

            SportEventStatistics = null;
        }