private void ProcessCurrencies(string ignoreCases, string apiUrl, string apiKey, string d365BaseCurrency, OptionSetValue apiValue)
        {
            IApi      api;
            ExRateAPI apiType = (ExRateAPI)apiValue.Value;

            api = GetAPIObject(apiType);

            HttpResponseMessage resp = api.CallAPI(ignoreCases, d365BaseCurrency, apiUrl, apiKey);

            ProcessCurrenciesRate(ignoreCases, d365BaseCurrency, resp, api);
        }
        private static IApi GetAPIObject(ExRateAPI apiType)
        {
            IApi api;

            switch (apiType)
            {
            case ExRateAPI.Fixer:
                api = new FixerAPI();
                break;

            case ExRateAPI.ExchangeRateApi:
                api = new ExchangeRateAPI();
                break;

            case ExRateAPI.FloatRates:
                api = new FoatRatesAPI();
                break;

            default:
                throw new Exception("API type not found!");
            }

            return(api);
        }