示例#1
0
            private Task <IEnumerable <CurrencyRatesSnapshot> > DeserializeTestDataAsync()
            {
                // Arrange:
                ICurrencyRateDeserializer deserializer = new EcbXmlCurrencyRateDeserializer();

                using (var stream = GetStreamFromString(SampleXml))
                {
                    // Act:
                    return(deserializer.DeserializeCurrencyRatesAsync(stream));
                }
            }
        public static void AddXch(this IServiceCollection services, string currencyServiceUri, TimeSpan currencyCacheTimoutInterval)
        {
            Func <IBasicHttpWebRequestExecutor> webRequestFactory = () => new BasicHttpWebRequestExecutor();

            services.AddSingleton(webRequestFactory);

            ICurrencyRateDeserializer deserializer = new EcbXmlCurrencyRateDeserializer();

            services.AddSingleton(deserializer);

            var basicProvider = new BasicCurrencyRateProvider(currencyServiceUri, webRequestFactory, deserializer);
            ICurrencyRateProvider cachingProvider = new CachingCurrencyRateProvider(basicProvider, currencyCacheTimoutInterval, true);

            services.AddSingleton(cachingProvider);
        }