예제 #1
0
        public async Task GetSportEventFixtureAsync(URN id, CultureInfo culture, bool useCachedProvider, ISportEventCI requester)
        {
            RecordCall("GetSportEventFixtureAsync");
            var filePath         = GetFile(FixtureXml, culture);
            var restDeserializer = new Deserializer <fixturesEndpoint>();
            var mapper           = new FixtureMapperFactory();
            var stream           = FileHelper.OpenFile(filePath);
            var result           = mapper.CreateMapper(restDeserializer.Deserialize(stream)).Map();

            if (result != null)
            {
                await _cacheManager.SaveDtoAsync(id, result, culture, DtoType.Fixture, requester).ConfigureAwait(false);
            }
        }
        private void InitSportEventCache()
        {
            var testDataFetcher = new TestDataFetcher();

            _eventCache = new MemoryCache("test");
            var fixtureDeserializer  = new Deserializer <fixturesEndpoint>();
            var fixtureMapperFactory = new FixtureMapperFactory();

            var fixtureProvider = new DataProvider <fixturesEndpoint, FixtureDTO>(
                DirPath + FixtureXml,
                testDataFetcher,
                fixtureDeserializer,
                fixtureMapperFactory);

            var dateDeserializer  = new Deserializer <scheduleEndpoint>();
            var dateMapperFactory = new SportEventsScheduleMapperFactory();

            var dateProvider = new DateScheduleProvider(
                DirPath + ScheduleXml,
                DirPath + ScheduleXml,
                testDataFetcher,
                dateDeserializer,
                dateMapperFactory);

            // tournament schedule provider
            var tourDeserializer  = new Deserializer <tournamentScheduleEndpoint>();
            var tourMapperFactory = new TournamentScheduleMapperFactory();

            var tourProvider = new DataProvider <tournamentScheduleEndpoint, EntityList <MatchSummaryDTO> >(
                DirPath + TourXml,
                testDataFetcher,
                tourDeserializer,
                tourMapperFactory);

            var detailsDeserializer  = new Deserializer <matchSummaryEndpoint>();
            var detailsMapperFactory = new SportEventDetailsMapperFactory();

            var eventDetailsProvider = new DataProvider <matchSummaryEndpoint, SportEventDetailsDTO>(
                DirPath + DetailsXml,
                testDataFetcher,
                detailsDeserializer,
                detailsMapperFactory);

            var timer = new TestTimer(false);

            _sportEventCacheItemFactory = new SportEventCacheItemFactory(fixtureProvider, eventDetailsProvider, DefaultCulture);

            _sportEventCache = new SportEventCache(_eventCache, dateProvider, tourProvider, _sportEventCacheItemFactory, timer, Cultures);
        }
예제 #3
0
        public async Task GetSportEventFixtureAsync(URN id, CultureInfo culture, bool useCachedProvider, ISportEventCI requester)
        {
            RecordCall("GetSportEventFixtureAsync");
            var filePath         = GetFile(FixtureXml, culture);
            var restDeserializer = new Deserializer <fixturesEndpoint>();
            var mapper           = new FixtureMapperFactory();
            var stream           = FileHelper.OpenFile(filePath);
            var result           = mapper.CreateMapper(restDeserializer.Deserialize(stream)).Map();

            await ExecuteDelayAsync(id, culture).ConfigureAwait(false);

            if (result == null)
            {
                Debug.WriteLine($"GetSportEventFixtureAsync for {id} and {culture.TwoLetterISOLanguageName}: no result.");
                return;
            }

            await LogSaveDtoAsync(id, result, culture, DtoType.Fixture, requester).ConfigureAwait(false);
        }