/// <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; }
/// <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; }
/// <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; }