Пример #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            IDataProvider            dataProvider    = new CommonWebFilesReader();
            ICurrenciesFactory       currencyFactory = new CurrenciesFactory();
            IFormattedCurrencyReader XMLReader       = new XMLCurrencyRatesReader(currencyFactory, dataProvider);
            ICurrencyRatesStorage    storage         = new CurrencyRatesDictionary(XMLReader);
            ICurrencyConverter       currConverter   = new CurrenciesConverter();

            var curr = storage.GetCurrencyByCode("USD");

            Console.WriteLine($"Currency: {curr.Name}  Rate: {curr.Rate}");
            //var dict = r.RetrieveActualDataAsync(null).Result;

            //foreach (var d in dict)
            //{
            //    Console.WriteLine($"Code: {d.Key} and currency name: {GetCurrName(d.Key)}");//Enum.GetName(typeof(CurrencyCodes), d.Key))}
            //}
            //string ratesDataXML  = CommonWebFilesReader.ReadFileAsync().Result;
            //XDocument doc = XDocument.Parse(ratesDataXML);

            //Console.WriteLine(ratesDataXML.Length);
            Console.ReadKey();
        }
        public void HundredRubToUSDConvertingTest()
        {
            ICurrencyConverter currConverter     = new CurrenciesConverter();
            ICurrenciesFactory currenciesFactory = new CurrenciesFactory();

            decimal rubRate = 90.0681M;
            decimal usdRate = 1.2219M;

            ICurrency rubles  = currenciesFactory.GetCurrency(CurrencyConverter.BL.Enums.ECurrencyCodes.RUB.ToString(), rubRate);
            ICurrency dollars = currenciesFactory.GetCurrency(CurrencyConverter.BL.Enums.ECurrencyCodes.USD.ToString(), usdRate);

            decimal resultAmountOfDollars = currConverter.Convert(rubles, dollars, 100M);

            Assert.Equal(1.3566M, decimal.Round(resultAmountOfDollars, 4));
        }