/// <summary> /// Initializes a new instance of the <see cref="LotteryCI"/> class /// </summary> /// <param name="eventSummary">The event summary</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="ObjectCache"/> used to cache the sport events fixture timestamps</param> public LotteryCI(LotteryDTO eventSummary, IDataRouterManager dataRouterManager, ISemaphorePool semaphorePool, CultureInfo currentCulture, CultureInfo defaultCulture, ObjectCache fixtureTimestampCache) : base(eventSummary, dataRouterManager, semaphorePool, currentCulture, defaultCulture, fixtureTimestampCache) { Contract.Requires(eventSummary != null); Contract.Requires(currentCulture != null); Merge(eventSummary, currentCulture); }
/// <summary> /// Initializes a new instance of the <see cref="LotteryCI"/> class /// </summary> /// <param name="eventSummary">The event summary</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 LotteryCI(LotteryDTO eventSummary, IDataRouterManager dataRouterManager, ISemaphorePool semaphorePool, CultureInfo currentCulture, CultureInfo defaultCulture, MemoryCache fixtureTimestampCache) : base(eventSummary, dataRouterManager, semaphorePool, currentCulture, defaultCulture, fixtureTimestampCache) { Guard.Argument(eventSummary, nameof(eventSummary)).NotNull(); Guard.Argument(currentCulture, nameof(currentCulture)).NotNull(); Merge(eventSummary, currentCulture); }
/// <summary> /// Merges the specified event summary /// </summary> /// <param name="eventSummary">The event summary</param> /// <param name="culture">The culture</param> /// <param name="useLock">Should the lock mechanism be used during merge</param> public void Merge(LotteryDTO eventSummary, CultureInfo culture, bool useLock) { if (useLock) { lock (MergeLock) { Merge(eventSummary, culture); } } else { Merge(eventSummary, culture); } }
/// <summary> /// Merges the specified event summary /// </summary> /// <param name="eventSummary">The event summary</param> /// <param name="culture">The culture</param> private void Merge(LotteryDTO eventSummary, CultureInfo culture) { base.Merge(eventSummary, culture, false); if (_categoryId == null && eventSummary.Category != null) { _categoryId = eventSummary.Category.Id; } if (_bonusInfo == null && eventSummary.BonusInfo != null) { _bonusInfo = new BonusInfoCI(eventSummary.BonusInfo); } if (_drawInfo == null && eventSummary.DrawInfo != null) { _drawInfo = new DrawInfoCI(eventSummary.DrawInfo); } if (eventSummary.DrawEvents != null && eventSummary.DrawEvents.Any()) { _scheduledDraws = eventSummary.DrawEvents.Select(s => s.Id); } }