private readonly ConcurrentDictionary <EventChangeEventArgs, bool> _eventUpdates; // boolean value indicating if this is fixture update public EventChangeManager(TimeSpan fixtureChangeInterval, TimeSpan resultChangeInterval, ISportDataProvider sportDataProvider, ISportEventCache sportEventCache, IOddsFeedConfiguration config, IMetricsRoot metricsRoot) { Guard.Argument(config, nameof(config)).NotNull(); Guard.Argument(sportDataProvider, nameof(sportDataProvider)).NotNull(); Guard.Argument(sportEventCache, nameof(sportEventCache)).NotNull(); _config = config; _sportDataProvider = (SportDataProvider)sportDataProvider; _sportEventCache = sportEventCache; _metricsRoot = metricsRoot; LastFixtureChange = DateTime.MinValue; LastResultChange = DateTime.MinValue; FixtureChangeInterval = fixtureChangeInterval >= TimeSpan.FromMinutes(1) ? fixtureChangeInterval : TimeSpan.FromHours(1); ResultChangeInterval = resultChangeInterval >= TimeSpan.FromMinutes(1) ? resultChangeInterval : TimeSpan.FromHours(1); IsRunning = false; _fixtureTimer = new SdkTimer(TimeSpan.FromSeconds(1), fixtureChangeInterval); _resultTimer = new SdkTimer(TimeSpan.FromSeconds(1), ResultChangeInterval); _fixtureTimer.Elapsed += FixtureTimerOnElapsed; _resultTimer.Elapsed += ResultTimerOnElapsed; _eventUpdates = new ConcurrentDictionary <EventChangeEventArgs, bool>(); _isDispatching = false; }
public void Init() { _cacheManager = new CacheManager(); _dataRouterManager = new TestDataRouterManager(_cacheManager); _variantMemoryCache = new MemoryCache("VariantCache"); _invariantMemoryCache = new MemoryCache("InVariantCache"); _variantDescriptionsMemoryCache = new MemoryCache("VariantDescriptionListCache"); _timer = new SdkTimer(_timerInterval, _timerInterval); _mappingValidatorFactory = new MappingValidatorFactory(); _inVariantMdCache = new InvariantMarketDescriptionCache(_invariantMemoryCache, _dataRouterManager, _mappingValidatorFactory, _timer, TestData.Cultures, _cacheManager); _variantMdCache = new VariantMarketDescriptionCache(_variantMemoryCache, _dataRouterManager, _mappingValidatorFactory, _cacheManager); _variantDescriptionListCache = new VariantDescriptionListCache(_variantDescriptionsMemoryCache, _dataRouterManager, _mappingValidatorFactory, _timer, TestData.Cultures, _cacheManager); var dataFetcher = new TestDataFetcher(); var betStopReasonsCache = new NamedValueCache(new NamedValueDataProvider(FileHelper.FindFile("betstop_reasons.xml"), dataFetcher, "betstop_reason"), ExceptionHandlingStrategy.THROW); var bettingStatusCache = new NamedValueCache(new NamedValueDataProvider(FileHelper.FindFile("betting_status.xml"), dataFetcher, "betting_status"), ExceptionHandlingStrategy.THROW); var namedValueProviderMock = new Mock <INamedValuesProvider>(); namedValueProviderMock.Setup(x => x.BetStopReasons).Returns(betStopReasonsCache); namedValueProviderMock.Setup(x => x.BettingStatuses).Returns(bettingStatusCache); _validator = new FeedMessageValidator( new MarketCacheProvider(_inVariantMdCache, _variantMdCache, _variantDescriptionListCache), TestData.Culture, namedValueProviderMock.Object, TestProducerManager.Create()); }
public void Init() { _cacheManager = new CacheManager(); _dataRouterManager = new TestDataRouterManager(_cacheManager); _variantMemoryCache = new MemoryCache("VariantCache"); _invariantMemoryCache = new MemoryCache("InVariantCache"); _timer = new SdkTimer(_timerInterval, _timerInterval); _mappingValidatorFactory = new MappingValidatorFactory(); _variantMdCache = new VariantMarketDescriptionCache(_variantMemoryCache, _dataRouterManager, _mappingValidatorFactory, _cacheManager); _inVariantMdCache = new InvariantMarketDescriptionCache(_invariantMemoryCache, _dataRouterManager, _mappingValidatorFactory, _timer, new[] { TestData.Culture }, _cacheManager); }