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)); }