/// <summary>
        /// This method is to execute current date currency conversion
        /// </summary>
        /// <returns></returns>
        public async Task CurrencyConversion()
        {
            CurrencyBase curBase = new CurrencyBase();

            Console.Clear();
            Console.BackgroundColor = ConsoleColor.DarkBlue;
            Console.WriteLine("-------------------------Fetch latest currency data-----------------");
            Console.ResetColor();
            string inputBaseCurrencyMessage = "Please enter base currency data in 3 character ISO format[Example:'EUR']";

            curBase.BaseCurrency = GetCurrencyCode(inputBaseCurrencyMessage);
            string baseCurrencyMessage = "Please enter amount in {0}:" + curBase.BaseCurrency;

            curBase.BaseAmount = ReadDouble(baseCurrencyMessage);
            string inputConvertedCurrencyMessage = "Please enter converted currency data in 3 character ISO format[Example:'EUR']";

            curBase.ConvertCurrency = GetCurrencyCode(inputConvertedCurrencyMessage);
            APIResponse aPIResponse =
                await _aPIInteraction.GetCurrencyConversionData(curBase, _configuration.GetValue <string>("URL"),
                                                                _configuration.GetValue <string>("AccessKey"));

            ProcessCurrencyCalculationResponse(aPIResponse, curBase);
        }
        /// <summary>
        /// This method is to fetch latest rates
        /// </summary>
        /// <param name="baseCur"></param>
        /// <param name="toCur"></param>
        /// <param name="baseAmount"></param>
        /// <returns></returns>
        public async Task <ExchangeAPIResponse> GetLatestConversion(string baseCur, string toCur, string baseAmount)
        {
            ExchangeAPIResponse exchangeResponse = new ExchangeAPIResponse();
            CurrencyBase        currencyBase     = new CurrencyBase();

            currencyBase.BaseAmount = _calculationHelper.CheckIfDouble(baseAmount);
            if (!double.IsNaN(currencyBase.BaseAmount))
            {
                currencyBase.BaseCurrency    = baseCur;
                currencyBase.ConvertCurrency = toCur;
                APIResponse aPIResponse =
                    await _aPIInteraction.GetCurrencyConversionData(currencyBase, _configuration.GetValue <string>("URL"),
                                                                    _configuration.GetValue <string>("AccessKey"));

                return(SendLatestRatesResponse(aPIResponse, currencyBase));
            }
            else
            {
                exchangeResponse.IsSuccess   = false;
                exchangeResponse.Description = "Base Amount is not a valid number";
                exchangeResponse.StatusCode  = HttpStatusCode.BadRequest;
                return(exchangeResponse);
            }
        }