Example #1
0
        /// <summary>
        ///     Initializes a new instance of the <see cref="IDelayedInfo" />
        /// </summary>
        /// <param name="delayedInfoCI">The delayed info cache item</param>
        public DelayedInfo(DelayedInfoCI delayedInfoCI)
        {
            Contract.Requires(delayedInfoCI != null);

            Id           = delayedInfoCI.Id;
            Descriptions = delayedInfoCI.Descriptions as IReadOnlyDictionary <CultureInfo, string>;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="IDelayedInfo"/>
        /// </summary>
        /// <param name="delayedInfoCI">The delayed info cache item</param>
        public DelayedInfo(DelayedInfoCI delayedInfoCI)
        {
            Guard.Argument(delayedInfoCI, nameof(delayedInfoCI)).NotNull();

            Id           = delayedInfoCI.Id;
            Descriptions = delayedInfoCI.Descriptions as IReadOnlyDictionary <CultureInfo, string>;
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="MatchCI"/> class
 /// </summary>
 /// <param name="exportable">A <see cref="ExportableMatchCI" /> specifying the current instance</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="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="MemoryCache"/> used to cache the sport events fixture timestamps</param>
 public MatchCI(ExportableMatchCI exportable,
     IDataRouterManager dataRouterManager,
     ISemaphorePool semaphorePool,
     CultureInfo defaultCulture,
     MemoryCache fixtureTimestampCache)
     : base(exportable, dataRouterManager, semaphorePool, defaultCulture, fixtureTimestampCache)
 {
     _season = exportable.Season != null ? new CacheItem(exportable.Season) : null;
     _tournamentRound = exportable.TournamentRound != null ? new RoundCI(exportable.TournamentRound) : null;
     _tournamentId = exportable.TournamentId != null ? URN.Parse(exportable.TournamentId) : null;
     _fixture = exportable.Fixture != null ? new Fixture(exportable.Fixture) : null;
     _eventTimeline = exportable.EventTimeline != null ? new EventTimelineCI(exportable.EventTimeline) : null;
     _delayedInfo = exportable.DelayedInfo != null ? new DelayedInfoCI(exportable.DelayedInfo) : null;
 }
        /// <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);
                }
            }
        }