public void FixtureDTOMappingTest() { var msg = RMF.GetFixture(); var dto = new FixtureDTO(msg, null); Assert.AreEqual(msg.id, dto.Id.ToString()); Assert.AreEqual(msg.name, dto.Name); Assert.AreEqual(msg.liveodds, dto.LiveOdds); Assert.AreEqual(SdkInfo.ParseDate(msg.next_live_time), dto.NextLiveTime); Assert.AreEqual(msg.start_time, dto.StartTime); Assert.AreEqual(msg.scheduled, dto.Scheduled); Assert.AreEqual(msg.scheduled_end, dto.ScheduledEnd); Assert.AreEqual(!string.IsNullOrEmpty(msg.replaced_by) ? URN.Parse(msg.replaced_by) : null, dto.ReplacedBy); Assert.AreEqual(msg.start_time_tbdSpecified ? (bool?)msg.start_time_tbd : null, dto.StartTimeTbd); Assert.AreEqual(msg.competitors.Length, dto.Competitors.Count()); for (var i = 0; i < msg.competitors.Length; i++) { ValidateTeamCompetitor(msg.competitors[i], dto.Competitors.ToList()[i]); } ValidateCoverageInfo(msg.coverage_info, dto.Coverage); Assert.AreEqual(msg.delayed_info.id, dto.DelayedInfo.Id); Assert.AreEqual(msg.extra_info.Length, dto.ExtraInfo.ToList().Count); for (var i = 0; i < msg.extra_info.Length; i++) { Assert.IsTrue(dto.ExtraInfo.ContainsKey(msg.extra_info[i].key)); dto.ExtraInfo.TryGetValue(msg.extra_info[i].key, out var eiValue); Assert.AreEqual(msg.extra_info[i].value, eiValue); } }
/// <summary> /// Merges the specified fixture /// </summary> /// <param name="fixture">The fixture</param> /// <param name="culture">The culture</param> /// <param name="useLock">Should the lock mechanism be used during merge</param> public void MergeFixture(FixtureDTO fixture, CultureInfo culture, bool useLock) { //Merge(fixture, culture); if (useLock) { lock (MergeLock) { if (fixture.ReferenceIds != null) { _referenceId = new ReferenceIdCI(fixture.ReferenceIds); } if (fixture.BookingStatus != null) { _bookingStatus = fixture.BookingStatus; } } } else { if (fixture.ReferenceIds != null) { _referenceId = new ReferenceIdCI(fixture.ReferenceIds); } if (fixture.BookingStatus != null) { _bookingStatus = fixture.BookingStatus; } } }
public void Init() { _record = Deserializer.Deserialize(FileHelper.OpenFile(TestData.RestXmlPath, InputXml)); _entity = new FixtureMapperFactory().CreateMapper(_record).Map(); _assertHelper = new AssertHelper(_entity); }
/// <summary> /// Merges the specified fixture /// </summary> /// <param name="fixture">The fixture</param> /// <param name="culture">The culture</param> /// <param name="useLock">Should the lock mechanism be used during merge</param> public new void MergeFixture(FixtureDTO fixture, CultureInfo culture, bool useLock) { if (useLock) { lock (MergeLock) { base.MergeFixture(fixture, culture, false); _categoryId = fixture.Tournament?.Category?.Id; if (fixture.Type != null) { _stageType = fixture.Type.Value == SportEventType.Parent ? StageType.Parent : StageType.Child; } } } else { base.MergeFixture(fixture, culture, false); _categoryId = fixture.Tournament?.Category?.Id; if (fixture.Type != null) { _stageType = fixture.Type.Value == SportEventType.Parent ? StageType.Parent : StageType.Child; } } }
/// <summary> /// Builds a <see cref="SportEventCI" /> instance from the provided <see cref="FixtureDTO" /> instance /// </summary> /// <param name="fixture">A <see cref="FixtureDTO" /> instance containing fixture (pre-match) related sport event info</param> /// <param name="currentCulture">A <see cref="CultureInfo" /> of the <see cref="FixtureDTO" /> data</param> /// <returns>a new instance of <see cref="SportEventCI" /> instance</returns> public SportEventCI Build(FixtureDTO fixture, CultureInfo currentCulture) { if (fixture.Id.TypeGroup == ResourceTypeGroup.STAGE) { return(new StageCI(fixture, _dataRouterManager, _semaphorePool, currentCulture, _defaultCulture, _fixtureTimestampCache)); } if (fixture.Id.TypeGroup == ResourceTypeGroup.MATCH) { return(new MatchCI(fixture, _dataRouterManager, _semaphorePool, currentCulture, _defaultCulture, _fixtureTimestampCache)); } if (fixture.Id.TypeGroup == ResourceTypeGroup.SEASON || fixture.Id.TypeGroup == ResourceTypeGroup.BASIC_TOURNAMENT || fixture.Id.TypeGroup == ResourceTypeGroup.TOURNAMENT) { return(new TournamentInfoCI(fixture, _dataRouterManager, _semaphorePool, currentCulture, _defaultCulture, _fixtureTimestampCache)); } if (fixture.Id.TypeGroup == ResourceTypeGroup.DRAW || fixture.Id.TypeGroup == ResourceTypeGroup.LOTTERY) { // should not be any fixture var a = 1; } return(new SportEventCI(fixture, _dataRouterManager, _semaphorePool, currentCulture, _defaultCulture, _fixtureTimestampCache)); }
internal Fixture(FixtureDTO fixtureDto) { Guard.Argument(fixtureDto, nameof(fixtureDto)).NotNull(); StartTime = fixtureDto.StartTime; NextLiveTime = fixtureDto.NextLiveTime; StartTimeConfirmed = fixtureDto.StartTimeConfirmed; StartTimeTBD = fixtureDto.StartTimeTbd; ReplacedBy = fixtureDto.ReplacedBy; ExtraInfo = fixtureDto.ExtraInfo; if (fixtureDto.TvChannels != null) { if (TvChannels == null) { TvChannels = fixtureDto.TvChannels.Select(tvChannelDTO => new TvChannel(tvChannelDTO.Name, tvChannelDTO.StartTime, tvChannelDTO.StreamUrl)).ToList(); } else { var tvChannels = TvChannels.ToList(); foreach (var tvChannelDTO in fixtureDto.TvChannels) { var tvChannel = tvChannels.Find(f => f.Name.Equals(tvChannelDTO.Name, StringComparison.InvariantCultureIgnoreCase)); if (tvChannel != null) { tvChannels.Remove(tvChannel); } tvChannels.Add(new TvChannel(tvChannelDTO.Name, tvChannelDTO.StartTime, tvChannelDTO.StreamUrl)); } TvChannels = tvChannels; } } if (fixtureDto.Coverage != null) { CoverageInfo = new CoverageInfo(fixtureDto.Coverage.Level, fixtureDto.Coverage.IsLive, fixtureDto.Coverage.Includes, fixtureDto.Coverage.CoveredFrom); } if (fixtureDto.ProductInfo != null) { ProductInfo = new ProductInfo(fixtureDto.ProductInfo); } if (fixtureDto.ReferenceIds != null) { References = new Reference(new ReferenceIdCI(fixtureDto.ReferenceIds)); } if (fixtureDto.ScheduledStartTimeChanges != null) { ScheduledStartTimeChanges = fixtureDto.ScheduledStartTimeChanges.Select(s => new ScheduledStartTimeChange(s)); } if (fixtureDto.ParentStage != null) { ParentStageId = fixtureDto.ParentStage.Id; } if (!fixtureDto.AdditionalParents.IsNullOrEmpty()) { AdditionalParentsIds = fixtureDto.AdditionalParents.Select(s => s.Id); } }
/// <summary> /// Merges the specified fixture /// </summary> /// <param name="fixture">The fixture</param> /// <param name="culture">The culture</param> private void ActualMergeFixture(FixtureDTO fixture, CultureInfo culture) { Merge(new TournamentInfoDTO(fixture), culture, false); if (fixture.ReferenceIds != null) { _referenceId = new ReferenceIdCI(fixture.ReferenceIds); } }
/// <summary> /// Initializes a new instance of the <see cref="MatchCI"/> class /// </summary> /// <param name="fixture">The fixture data</param> /// <param name="dataRouterManager">The <see cref="IDataRouterManager"/> used to obtain summary and fixture</param> /// <param name="semaphorePool">The semaphore pool</param> /// <param name="currentCulture">The current culture</param> /// <param name="defaultCulture">The default culture</param> /// <param name="fixtureTimestampCache">A <see cref="MemoryCache"/> used to cache the sport events fixture timestamps</param> public MatchCI(FixtureDTO fixture, IDataRouterManager dataRouterManager, ISemaphorePool semaphorePool, CultureInfo currentCulture, CultureInfo defaultCulture, MemoryCache fixtureTimestampCache) : base(fixture, dataRouterManager, semaphorePool, currentCulture, defaultCulture, fixtureTimestampCache) { Merge(fixture, currentCulture, true); }
/// <summary> /// Initializes a new instance of the <see cref="TournamentInfoCI"/> class /// </summary> /// <param name="fixture">The fixture data</param> /// <param name="dataRouterManager">The <see cref="IDataRouterManager"/> used to obtain summary and fixture</param> /// <param name="semaphorePool">A <see cref="ISemaphorePool" /> instance used to obtain sync objects</param> /// <param name="currentCulture">A <see cref="CultureInfo" /> of the <see cref="SportEventSummaryDTO" /> instance</param> /// <param name="defaultCulture">A <see cref="CultureInfo" /> specifying the language used when fetching info which is not translatable (e.g. Scheduled, ..)</param> /// <param name="fixtureTimestampCache">A <see cref="ObjectCache"/> used to cache the sport events fixture timestamps</param> public TournamentInfoCI(FixtureDTO fixture, IDataRouterManager dataRouterManager, ISemaphorePool semaphorePool, CultureInfo currentCulture, CultureInfo defaultCulture, ObjectCache fixtureTimestampCache) : base(fixture, dataRouterManager, semaphorePool, currentCulture, defaultCulture, fixtureTimestampCache) { Merge(fixture, currentCulture, true); }
internal Fixture(FixtureDTO fixtureDto) { Contract.Requires(fixtureDto != null); StartTime = fixtureDto.StartTime; NextLiveTime = fixtureDto.NextLiveTime; StartTimeConfirmed = fixtureDto.StartTimeConfirmed; StartTimeTBD = fixtureDto.StartTimeTBD; ReplacedBy = fixtureDto.ReplacedBy; ExtraInfo = fixtureDto.ExtraInfo; if (fixtureDto.TvChannels != null) { if (TvChannels == null) { TvChannels = fixtureDto.TvChannels.Select(tvChannelDTO => new TvChannel(tvChannelDTO.Name, tvChannelDTO.StartTime, tvChannelDTO.StreamUrl)).ToList(); } else { var tvChannels = TvChannels.ToList(); foreach (var tvChannelDTO in fixtureDto.TvChannels) { var tvChannel = tvChannels.Find(f => f.Name.Equals(tvChannelDTO.Name, StringComparison.InvariantCultureIgnoreCase)); if (tvChannel != null) { tvChannels.Remove(tvChannel); } tvChannels.Add(new TvChannel(tvChannelDTO.Name, tvChannelDTO.StartTime, tvChannelDTO.StreamUrl)); } TvChannels = tvChannels; } } if (fixtureDto.CoverageInfo != null) { CoverageInfo = new CoverageInfo(fixtureDto.CoverageInfo.Level, fixtureDto.CoverageInfo.IsLive, fixtureDto.CoverageInfo.Includes, fixtureDto.CoverageInfo.CoveredFrom); } if (fixtureDto.ProductInfo != null) { ProductInfo = new ProductInfo(fixtureDto.ProductInfo.IsAutoTraded, fixtureDto.ProductInfo.IsInHostedStatistics, fixtureDto.ProductInfo.IsInLiveCenterSoccer, fixtureDto.ProductInfo.IsInLiveScore, fixtureDto.ProductInfo.ProductInfoLinks?.Select(t => new ProductInfoLink(t.Reference, t.Name)), fixtureDto.ProductInfo.StreamingChannels?.Select(t => new StreamingChannel(t.Id, t.Name))); } if (fixtureDto.ReferenceIds != null) { References = new Reference(new ReferenceIdCI(fixtureDto.ReferenceIds)); } if (fixtureDto.ScheduledStartTimeChanges != null) { ScheduledStartTimeChanges = fixtureDto.ScheduledStartTimeChanges.Select(s => new ScheduledStartTimeChange(s)); } }
/// <summary> /// Merges the specified fixture /// </summary> /// <param name="fixture">The fixture</param> /// <param name="culture">The culture</param> /// <param name="useLock">Should the lock mechanism be used during merge</param> public new void MergeFixture(FixtureDTO fixture, CultureInfo culture, bool useLock) { if (useLock) { lock (MergeLock) { ActualMergeFixture(fixture, culture); } } else { ActualMergeFixture(fixture, culture); } }
/// <summary> /// Merges the specified fixtureDTO /// </summary> /// <param name="fixtureDTO">The fixtureDTO</param> /// <param name="culture">The culture</param> /// <param name="useLock">Should the lock mechanism be used during merge</param> public new void MergeFixture(FixtureDTO fixtureDTO, CultureInfo culture, bool useLock) { if (useLock) { lock (MergeLock) { base.MergeFixture(fixtureDTO, culture, false); _categoryId = fixtureDTO.Tournament?.Category?.Id; } } else { base.MergeFixture(fixtureDTO, culture, false); _categoryId = fixtureDTO.Tournament?.Category?.Id; } }
/// <summary> /// Merges the specified fixture /// </summary> /// <param name="fixture">The fixture</param> /// <param name="culture">The culture</param> private void ActualMergeFixture(FixtureDTO fixture, CultureInfo culture) { base.MergeFixture(fixture, culture, false); Merge(fixture, culture, false); _fixture = new Fixture(fixture); if (fixture.DelayedInfo != null) { if (_delayedInfo == null) { _delayedInfo = new DelayedInfoCI(fixture.DelayedInfo, culture); } else { _delayedInfo.Merge(fixture.DelayedInfo, culture); } } }
/// <summary> /// Merges the specified fixtureDTO /// </summary> /// <param name="fixtureDTO">The fixtureDTO</param> /// <param name="culture">The culture</param> /// <param name="useLock">Should the lock mechanism be used during merge</param> public void MergeFixture(FixtureDTO fixtureDTO, CultureInfo culture, bool useLock) { if (useLock) { lock (MergeLock) { if (fixtureDTO.ReferenceIds != null) { _referenceId = new ReferenceIdCI(fixtureDTO.ReferenceIds); } if (fixtureDTO.BookingStatus != null) { _bookingStatus = fixtureDTO.BookingStatus; } } } else { if (fixtureDTO.ReferenceIds != null) { _referenceId = new ReferenceIdCI(fixtureDTO.ReferenceIds); } if (fixtureDTO.BookingStatus != null) { _bookingStatus = fixtureDTO.BookingStatus; } } if (!string.IsNullOrEmpty(fixtureDTO.LiveOdds)) { _liveOdds = fixtureDTO.LiveOdds; } if (fixtureDTO.Type != null) { _sportEventType = fixtureDTO.Type; } if (fixtureDTO.StageType != null) { _stageType = fixtureDTO.StageType; } }
public async System.Threading.Tasks.Task HttpCall() { results = new FixturesDTO(); var result = new FixtureResultDTO() { GoalsAwayTeam = 2, GoalsHomeTeam = 2 }; var fixture = new FixtureDTO() { AwayTeamName = "druzyna przeciwna", HomeTeamName = "druzyna gospodarzy", //Date = System.DateTime.Parse("") Result = result, Status = "active" }; results.Fixtures = new List <FixtureDTO>(); results.Fixtures.Add(fixture); }
public ActionResult <ICollection <FixtureEncounterDTO> > GenerateFixture([FromBody] FixtureDTO data) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { fixtureSelector.CreateInstance(data.AlgorithmName, encounterBL); var teams = sportBL.GetById(data.SportId).Teams; var encounters = mapper.Map <FixtureEncounterDTO[]>(fixtureSelector.GenerateFixture(teams, data.Date)); var response = Ok(encounters); return(Ok(encounters)); } catch (SportDoesNotExistException e) { return(NotFound(e.Message)); } catch (FixtureGeneratorAlgorithmDoesNotExistException e) { return(NotFound(e.Message)); } catch (NotEnoughTeamsForEncounterException e) { return(NotFound(e.Message)); } catch (AlgorithmDoesNotExistException e) { return(NotFound(e.Message)); } catch (ThereAreNoAlgorithmsException e) { return(NotFound(e.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }