public double CalculateCurrency(int amount, string cur1, string cur2) { cur1 = cur1.ToUpper(); cur2 = cur2.ToUpper(); var availableCurrencies = this.GetCurrencyCodes(); var calculatedCurrency = (double)amount; if (!availableCurrencies.Contains(cur1) || !availableCurrencies.Contains(cur2)) { throw new ArgumentOutOfRangeException("not supported currency given, you can check supported currencies under app main url directory"); } if (cur1 == cur2) { return(calculatedCurrency); } if (cur1 != "PLN") { var rate = double.Parse(_connector.GetRates(cur1).Rates[0].Mid); calculatedCurrency *= rate; } if (cur2 != "PLN") { var rate = double.Parse(_connector.GetRates(cur2).Rates[0].Mid); calculatedCurrency /= rate; } return(Math.Round(calculatedCurrency, 2)); }