internal MatchTimelineDTO(matchTimelineEndpoint timeline) { Contract.Requires(timeline != null); Contract.Requires(timeline.sport_event != null); SportEvent = RestMapperHelper.MapSportEvent(timeline.sport_event); if (timeline.coverage_info != null) { CoverageInfo = new CoverageInfoDTO(timeline.coverage_info); } if (timeline.sport_event_conditions != null) { SportEventConditions = new SportEventConditionsDTO(timeline.sport_event_conditions); } if (timeline.sport_event_status != null) { SportEventStatus = new SportEventStatusDTO(timeline.sport_event_status, null, RestMapperHelper.FillHomeAwayCompetitors(timeline.sport_event.competitors)); } if (timeline.timeline != null && timeline.timeline.Length > 0) { BasicEvents = timeline.timeline.Select(s => new BasicEventDTO(s)); } }
/// <summary> /// Initializes a new instance of the <see cref="CompetitionDTO" /> class /// </summary> /// <param name="sportEvent">A <see cref="sportEvent" /> instance containing basic information about the sport event</param> internal CompetitionDTO(sportEvent sportEvent) : base(sportEvent) { BookingStatus?bookingStatus; if (RestMapperHelper.TryGetBookingStatus(sportEvent.liveodds, out bookingStatus)) { BookingStatus = bookingStatus; } if (sportEvent.competitors != null && sportEvent.competitors.Any()) { Competitors = new ReadOnlyCollection <TeamCompetitorDTO>(sportEvent.competitors .Select(c => new TeamCompetitorDTO(c)).ToList()); HomeAwayCompetitors = RestMapperHelper.FillHomeAwayCompetitors(sportEvent.competitors); } Conditions = sportEvent.sport_event_conditions == null ? null : new SportEventConditionsDTO(sportEvent.sport_event_conditions); Venue = sportEvent.sport_event_conditions?.venue == null ? null : new VenueDTO(sportEvent.sport_event_conditions.venue); if (Venue == null && sportEvent.venue != null) { Venue = new VenueDTO(sportEvent.venue); } }
/// <summary> /// Initializes a new instance of the <see cref="CompetitionDTO"/> class /// </summary> /// <param name="sportEvent">A <see cref="sportEvent"/> instance containing basic information about the sport event</param> internal CompetitionDTO(sportEvent sportEvent) : base(sportEvent) { if (RestMapperHelper.TryGetBookingStatus(sportEvent.liveodds, out var bookingStatus)) { BookingStatus = bookingStatus; } if (sportEvent.competitors != null && sportEvent.competitors.Any()) { Competitors = new ReadOnlyCollection <TeamCompetitorDTO>(sportEvent.competitors.Select(c => new TeamCompetitorDTO(c)).ToList()); HomeAwayCompetitors = RestMapperHelper.FillHomeAwayCompetitors(sportEvent.competitors); } Conditions = sportEvent.sport_event_conditions == null ? null : new SportEventConditionsDTO(sportEvent.sport_event_conditions); Venue = sportEvent.sport_event_conditions?.venue == null ? null : new VenueDTO(sportEvent.sport_event_conditions.venue); if (Venue == null && sportEvent.venue != null) { Venue = new VenueDTO(sportEvent.venue); } if (RestMapperHelper.TryGetSportEventType(sportEvent.type, out var type)) { Type = type; } if (!string.IsNullOrEmpty(sportEvent.liveodds)) { LiveOdds = sportEvent.liveodds; } if (RestMapperHelper.TryGetStageType(sportEvent.stage_type, out var stageType)) { StageType = stageType; } }
internal MatchTimelineDTO(matchTimelineEndpoint timeline) { Guard.Argument(timeline, nameof(timeline)).NotNull(); Guard.Argument(timeline.sport_event, nameof(timeline.sport_event)).NotNull(); SportEvent = RestMapperHelper.MapSportEvent(timeline.sport_event); if (timeline.coverage_info != null) { CoverageInfo = new CoverageInfoDTO(timeline.coverage_info); } if (timeline.sport_event_conditions != null) { SportEventConditions = new SportEventConditionsDTO(timeline.sport_event_conditions); } if (timeline.sport_event_status != null) { SportEventStatus = new SportEventStatusDTO(timeline.sport_event_status, null, RestMapperHelper.FillHomeAwayCompetitors(timeline.sport_event.competitors)); } if (timeline.timeline != null && timeline.timeline.Length > 0) { BasicEvents = timeline.timeline.Select(s => new BasicEventDTO(s)); } GeneratedAt = timeline.generated_atSpecified ? timeline.generated_at : (DateTime?)null; }