//TODO refactor to Dictionary ? public IExchangeCase GetExchangeCase(CurrencyRate currencyFrom, CurrencyRate currencyTo, CurrencyRate baseCurrency) { if (currencyFrom.Equals(currencyTo)) { return(new CurrencyFromCurrencyToTheSameCase(currencyFrom, currencyTo)); } if (currencyFrom.Equals(baseCurrency)) { return(new CurrencyFromIsBaseCurrencyCase(currencyFrom, currencyTo)); } if (currencyTo.Equals(baseCurrency)) { return(new CurrencyToIsBaseCurrencyCase(currencyFrom, currencyTo)); } return(new CurrencyFromAndCurrencyToAreNotBaseCase(currencyFrom, currencyTo)); }