Exemple #1
0
        /// <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="SportEventSummaryDTO"/> class
        /// </summary>
        /// <param name="sportEvent">A <see cref="sportEvent"/> containing basic information about the event</param>
        internal SportEventSummaryDTO(sportEvent sportEvent)
        {
            Guard.Argument(sportEvent, nameof(sportEvent)).NotNull();
            Guard.Argument(sportEvent.id, nameof(sportEvent.id)).NotNull().NotEmpty();

            Id        = URN.Parse(sportEvent.id);
            Scheduled = sportEvent.scheduledSpecified
                ? (DateTime?)sportEvent.scheduled.ToLocalTime()
                : null;
            ScheduledEnd = sportEvent.scheduled_endSpecified
                ? (DateTime?)sportEvent.scheduled_end.ToLocalTime()
                : null;
            if (sportEvent.tournament?.sport != null)
            {
                if (URN.TryParse(sportEvent.tournament.sport.id, out var sportId))
                {
                    SportId = sportId;
                }
            }

            Name = sportEvent.name;

            if (!string.IsNullOrEmpty(sportEvent.replaced_by))
            {
                if (URN.TryParse(sportEvent.replaced_by, out var replacedBy))
                {
                    ReplacedBy = replacedBy;
                }
            }

            StartTimeTbd = sportEvent.start_time_tbdSpecified ? (bool?)sportEvent.start_time_tbd : null;

            StatusOnEvent = sportEvent.status;
        }
Exemple #3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="BasicTournamentDTO"/> class.
        /// </summary>
        /// <param name="sportEvent">The <see cref="sportEvent"/> used for creating instance</param>
        internal BasicTournamentDTO(sportEvent sportEvent)
            : base(sportEvent)
        {
            Guard.Argument(sportEvent, nameof(sportEvent)).NotNull();

            TournamentCoverage = null;
            Category           = sportEvent.tournament.category == null
                ? null
                : URN.Parse(sportEvent.tournament.category.id);
            Competitors = sportEvent.competitors.Select(s => new CompetitorDTO(s));
        }
Exemple #4
0
        /// <summary>
        /// Initializes a new instance of the <see cref="BasicTournamentDTO"/> class.
        /// </summary>
        /// <param name="sportEvent">The <see cref="sportEvent"/> used for creating instance</param>
        internal BasicTournamentDTO(sportEvent sportEvent)
            : base(sportEvent)
        {
            Contract.Requires(sportEvent != null);

            TournamentCoverage = null;
            Category           = sportEvent.tournament.category == null
                ? null
                : URN.Parse(sportEvent.tournament.category.id);
            Competitors = sportEvent.competitors.Select(s => new CompetitorDTO(s));
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="StageDTO"/> class
 /// </summary>
 /// <param name="sportEvent">A <see cref="sportEvent"/> containing basic information about the event</param>
 internal StageDTO(sportEvent sportEvent)
     : base(sportEvent)
 {
     if (sportEvent.parent != null)
     {
         ParentStage = new StageDTO(sportEvent.parent);
     }
     if (sportEvent.races != null && sportEvent.races.Any())
     {
         Stages = sportEvent.races.Select(s => new StageDTO(s));
     }
     if (sportEvent.tournament != null)
     {
         Tournament = new TournamentDTO(sportEvent.tournament);
     }
 }
Exemple #6
0
        /// <summary>
        /// Maps the <see cref="sportEvent"/> instance to the one of the derived types of <see cref="SportEventSummaryDTO"/>
        /// </summary>
        /// <param name="item">The item to be mapped</param>
        /// <returns>A <see cref="SportEventSummaryDTO"/> derived instance</returns>
        /// <exception cref="ArgumentException">id</exception>
        public static SportEventSummaryDTO MapSportEvent(sportEvent item)
        {
            if (item == null)
            {
                return(null);
            }
            var id = URN.Parse(item.id);

            //var sportId = URN.Parse("sr:sport:0");
            //if (item.tournament?.sport != null)
            //{
            //    sportId = URN.Parse(item.tournament.sport.id);
            //}

            switch (id.TypeGroup)
            {
            case ResourceTypeGroup.MATCH:
            {
                return(new MatchDTO(item));
            }

            case ResourceTypeGroup.STAGE:
            {
                return(new StageDTO(item));
            }

            case ResourceTypeGroup.BASIC_TOURNAMENT:
            {
                return(new BasicTournamentDTO(item));
            }

            case ResourceTypeGroup.TOURNAMENT:
            case ResourceTypeGroup.SEASON:
            {
                return(new TournamentInfoDTO(item));
            }

            case ResourceTypeGroup.UNKNOWN:
            {
                return(new SportEventSummaryDTO(item));
            }

            default:
                throw new ArgumentException($"ResourceTypeGroup: {id.TypeGroup} is not supported", nameof(id));
            }
        }
Exemple #7
0
 /// <summary>
 ///     Initializes a new instance of the <see cref="StageDTO" /> class
 /// </summary>
 /// <param name="sportEvent">A <see cref="sportEvent" /> containing basic information about the event</param>
 internal StageDTO(sportEvent sportEvent)
     : base(sportEvent)
 {
     if (sportEvent.parent != null)
     {
         ParentStage = new StageDTO(sportEvent.parent);
     }
     if (sportEvent.races != null && sportEvent.races.Any())
     {
         Stages = sportEvent.races.Select(s => new StageDTO(s));
     }
     if (sportEvent.tournament != null)
     {
         Contract.Assume(!string.IsNullOrEmpty(sportEvent.tournament.id));
         Contract.Assume(!string.IsNullOrEmpty(sportEvent.tournament.name));
         Tournament = new TournamentDTO(sportEvent.tournament);
     }
 }
        /// <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;
            }
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="TournamentInfoDTO" /> class
        /// </summary>
        /// <param name="sportEvent">A <see cref="sportEvent" /> containing basic tournament info</param>
        internal TournamentInfoDTO(sportEvent sportEvent)
            : base(sportEvent)
        {
            TournamentCoverage = null;

            Category = sportEvent.tournament.category == null
                ? null
                : new CategorySummaryDTO(sportEvent.tournament.category);

            Sport = sportEvent.tournament.sport == null
                ? null
                : new SportEntityDTO(sportEvent.tournament.sport.id, sportEvent.tournament.sport.name);

            Competitors = sportEvent.competitors == null
                ? null
                : new ReadOnlyCollection <CompetitorDTO>(sportEvent.competitors.Select(c => new CompetitorDTO(c))
                                                         .ToList());

            CurrentSeason = null;

            Season = sportEvent.season == null
                ? null
                : new CurrentSeasonInfoDTO(sportEvent.season);

            SeasonCoverage = null;

            Groups = null;

            Schedule = null;

            CurrentRound = sportEvent.tournament_round == null
                ? null
                : new RoundDTO(sportEvent.tournament_round);

            Year = null;

            TournamentInfo = sportEvent.tournament == null
                ? null
                : new TournamentInfoDTO(sportEvent.tournament);

            //TODO: missing year
        }
        public static matchSummaryEndpoint GetMatchSummaryEndpoint(int id = 0, int subItemCount = 2)
        {
            var sportEvent = new sportEvent
            {
                competitors            = GetTeamCompetitorList(subItemCount).ToArray(),
                id                     = id == 0 ? SR.Urn("match", 10000).ToString() : SR.Urn(id, "match").ToString(),
                liveodds               = "booked",
                scheduledSpecified     = true,
                scheduled              = new DateTime(2017, 2, 17),
                scheduled_endSpecified = true,
                scheduled_end          = new DateTime(2017, 2, 18)
            };

            return(new matchSummaryEndpoint
            {
                coverage_info = GetCoverageInfo(subItemCount),
                sport_event = sportEvent,
                sport_event_conditions = GetSportEventConditions()
            });
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MatchDTO"/> class
        /// </summary>
        /// <param name="sportEvent">A <see cref="sportEvent"/> instance containing basic information about the sport event</param>
        internal MatchDTO(sportEvent sportEvent)
            : base(sportEvent)
        {
            Guard.Argument(sportEvent, nameof(sportEvent)).NotNull();

            if (sportEvent.season != null)
            {
                Season = new SeasonDTO(sportEvent.season);
            }
            if (sportEvent.tournament_round != null)
            {
                Round = new RoundDTO(sportEvent.tournament_round);
            }
            if (sportEvent.tournament != null)
            {
                Guard.Argument(sportEvent.tournament.id, nameof(sportEvent.tournament.id)).NotNull().NotEmpty();
                Guard.Argument(sportEvent.tournament.name, nameof(sportEvent.tournament.name)).NotNull().NotEmpty();
                Tournament = new TournamentDTO(sportEvent.tournament);
            }
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SportEventSummaryDTO"/> class
        /// </summary>
        /// <param name="sportEvent">A <see cref="sportEvent"/> containing basic information about the event</param>
        internal SportEventSummaryDTO(sportEvent sportEvent)
        {
            Guard.Argument(sportEvent, nameof(sportEvent)).NotNull();
            Guard.Argument(sportEvent.id, nameof(sportEvent.id)).NotNull().NotEmpty();

            Id        = URN.Parse(sportEvent.id);
            Scheduled = sportEvent.scheduledSpecified
                ? (DateTime?)sportEvent.scheduled.ToLocalTime()
                : null;
            ScheduledEnd = sportEvent.scheduled_endSpecified
                ? (DateTime?)sportEvent.scheduled_end.ToLocalTime()
                : null;
            if (sportEvent.tournament?.sport != null)
            {
                URN sportId;
                if (URN.TryParse(sportEvent.tournament.sport.id, out sportId))
                {
                    SportId = sportId;
                }
            }
            Name = sportEvent.name;
            SportEventType?type;

            if (RestMapperHelper.TryGetSportEventType(sportEvent.type, out type))
            {
                Type = type;
            }
            if (!string.IsNullOrEmpty(sportEvent.replaced_by))
            {
                URN replacedBy;
                if (URN.TryParse(sportEvent.replaced_by, out replacedBy))
                {
                    ReplacedBy = replacedBy;
                }
            }
            StartTimeTbd = sportEvent.start_time_tbdSpecified ? (bool?)sportEvent.start_time_tbd : null;

            StatusOnEvent = sportEvent.status;

            LiveOdds = sportEvent.liveodds;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="MatchDTO"/> class
        /// </summary>
        /// <param name="sportEvent">A <see cref="sportEvent"/> instance containing basic information about the sport event</param>
        internal MatchDTO(sportEvent sportEvent)
            : base(sportEvent)
        {
            Contract.Requires(sportEvent != null);

            if (sportEvent.season != null)
            {
                Contract.Assume(!string.IsNullOrEmpty(sportEvent.season.id));
                Contract.Assume(!string.IsNullOrEmpty(sportEvent.season.name));
                Season = new SportEntityDTO(sportEvent.season.id, sportEvent.season.name);
            }
            if (sportEvent.tournament_round != null)
            {
                Round = new RoundDTO(sportEvent.tournament_round);
            }
            if (sportEvent.tournament != null)
            {
                Contract.Assume(!string.IsNullOrEmpty(sportEvent.tournament.id));
                Contract.Assume(!string.IsNullOrEmpty(sportEvent.tournament.name));
                Tournament = new TournamentDTO(sportEvent.tournament);
            }
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="SportEventSummaryDTO" /> class
        /// </summary>
        /// <param name="sportEvent">A <see cref="sportEvent" /> containing basic information about the event</param>
        internal SportEventSummaryDTO(sportEvent sportEvent)
        {
            Contract.Requires(sportEvent != null);
            Contract.Requires(!string.IsNullOrEmpty(sportEvent.id));

            Id        = URN.Parse(sportEvent.id);
            Scheduled = sportEvent.scheduledSpecified
                ? (DateTime?)sportEvent.scheduled
                : null;
            ScheduledEnd = sportEvent.scheduled_endSpecified
                ? (DateTime?)sportEvent.scheduled_end
                : null;
            if (sportEvent.tournament?.sport != null)
            {
                URN sportId;
                if (URN.TryParse(sportEvent.tournament.sport.id, out sportId))
                {
                    SportId = sportId;
                }
            }

            Name = sportEvent.name;
            SportEventType?type;

            if (RestMapperHelper.TryGetSportEventType(sportEvent.type, out type))
            {
                Type = type;
            }
            if (!string.IsNullOrEmpty(sportEvent.replaced_by))
            {
                URN replacedBy;
                if (URN.TryParse(sportEvent.replaced_by, out replacedBy))
                {
                    ReplacedBy = replacedBy;
                }
            }

            StartTimeTbd = sportEvent.start_time_tbdSpecified ? (bool?)sportEvent.start_time_tbd : null;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="StageDTO"/> class
 /// </summary>
 /// <param name="sportEvent">A <see cref="sportEvent"/> containing basic information about the event</param>
 internal StageDTO(sportEvent sportEvent)
     : base(sportEvent)
 {
     if (sportEvent.races != null && sportEvent.races.Any())
     {
         Stages = sportEvent.races.Select(s => new StageDTO(s));
     }
     if (sportEvent.tournament != null)
     {
         Tournament = new TournamentDTO(sportEvent.tournament);
     }
     if (sportEvent.parent != null)
     {
         ParentStage = new StageDTO(sportEvent.parent);
     }
     if (ParentStage == null && Type != null && Type == SportEventType.Parent && sportEvent.tournament != null)
     {
         ParentStage = new StageDTO(new TournamentDTO(sportEvent.tournament));
     }
     if (!sportEvent.additional_parents.IsNullOrEmpty())
     {
         AdditionalParents = sportEvent.additional_parents.Select(s => new StageDTO(s));
     }
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="TournamentInfoDTO"/> class
        /// </summary>
        /// <param name="tournament">A <see cref="tournament"/> containing detailed tournament info</param>
        internal TournamentInfoDTO(tournamentInfoEndpoint tournament)
            : base(new sportEvent
        {
            id   = tournament.tournament.id,
            name = tournament.tournament.name,
            scheduledSpecified     = IsTournamentScheduleSpecified(tournament.tournament, true) || tournament.tournament.current_season != null,
            scheduled              = GetExtendedTournamentSchedule(tournament.tournament, true),
            scheduled_endSpecified = IsTournamentScheduleSpecified(tournament.tournament, false) || tournament.tournament.current_season != null,
            scheduled_end          = GetExtendedTournamentSchedule(tournament.tournament, false),
            tournament             = tournament.tournament
        })
        {
            TournamentCoverage = tournament.coverage_info == null
                ? null
                : new TournamentCoverageDTO(tournament.coverage_info);

            Category = tournament.tournament.category == null
                ? null
                : new CategorySummaryDTO(tournament.tournament.category);

            Sport = tournament.tournament.sport == null
                ? null
                : new SportEntityDTO(tournament.tournament.sport.id, tournament.tournament.sport.name);

            Competitors = tournament.competitors != null
                ? new ReadOnlyCollection <CompetitorDTO>(tournament.competitors.Select(c => new CompetitorDTO(c)).ToList())
                : tournament.tournament?.competitors == null // used for stage events
                    ? null
                    : new ReadOnlyCollection <CompetitorDTO>(tournament.tournament.competitors.Select(c => new CompetitorDTO(c)).ToList());

            CurrentSeason = tournament.tournament.current_season == null
                ? null
                : new CurrentSeasonInfoDTO(tournament.tournament.current_season);

            Season = tournament.season == null
                ? null
                : new CurrentSeasonInfoDTO(tournament.season);

            SeasonCoverage = tournament.season_coverage_info == null
                ? null
                : new SeasonCoverageDTO(tournament.season_coverage_info);

            Groups = tournament.groups == null
                ? null
                : new ReadOnlyCollection <GroupDTO>(tournament.groups.Select(g => new GroupDTO(g)).ToList());

            Schedule = null;

            CurrentRound = tournament.round == null
                ? null
                : new RoundDTO(tournament.round);

            Year = tournament.tournament?.current_season == null
                ? tournament.season?.year
                : tournament.tournament.current_season.year;

            TournamentInfo = null;

            if (tournament.tournament?.category != null)
            {
                var sportEvent = new sportEvent
                {
                    id   = tournament.tournament.id,
                    name = tournament.tournament.name,
                    scheduledSpecified     = IsTournamentScheduleSpecified(tournament.tournament, true) || tournament.tournament.current_season != null,
                    scheduled              = GetExtendedTournamentSchedule(tournament.tournament, true),
                    scheduled_endSpecified = IsTournamentScheduleSpecified(tournament.tournament, false) || tournament.tournament.current_season != null,
                    scheduled_end          = GetExtendedTournamentSchedule(tournament.tournament, false),
                    tournament             = tournament.tournament
                };
                TournamentInfo = new TournamentInfoDTO(sportEvent)
                {
                    Category      = new CategorySummaryDTO(tournament.tournament.category.id, tournament.tournament.category.name, tournament.tournament.category.country_code),
                    CurrentSeason = tournament.tournament.current_season == null
                        ? null
                        : new CurrentSeasonInfoDTO(tournament.tournament.current_season)
                };
            }

            GeneratedAt = tournament.generated_atSpecified ? tournament.generated_at : (DateTime?)null;

            ExhibitionGames = tournament.tournament.exhibition_gamesSpecified
                ? tournament.tournament.exhibition_games
                : (bool?)null;
        }