//// GET api/values
        //[HttpGet]
        //public ActionResult<IEnumerable<CurrencyGetViewModel>> GetPaged()
        //{
        //    var currenciesMap = GetIsoCodeCurrenciesMap();

        //    return currenciesMap.Values;
        //}

        private Dictionary <string, CurrencyGetViewModel> GetIsoCodeCurrenciesMap()
        {
            if (IsoCodeCurrenciesMap.Keys.Count > 0)
            {
                return(IsoCodeCurrenciesMap);
            }

            ////var customSettings = CustomSettings.Value;
            //var customSettings = CustomSettings;
            //Console.WriteLine(customSettings.Currency.DefaultIsoCode);

            //var currenciesSettings = CurrenciesSettings.Value;
            //var currenciesSettings = CurrenciesSettings;
            //Console.WriteLine(currenciesSettings.DefaultIsoCode);

            //var currenciesSettings = CurrenciesSettings;

            //var isoCodeCurrenciesMap =
            //    new Dictionary<string, CurrencyGetViewModel>(StringComparer.CurrentCultureIgnoreCase);

            var normalisedDefaultIsoCode = CurrenciesSettings.DefaultIsoCode?.ToUpper().Trim();

            foreach (var currenciesItem in CurrenciesSettings.Currencies)
            {
                try
                {
                    var normalisedIsoCode = currenciesItem.IsoCode?.ToUpper().Trim();

                    var currencyGetViewModel = new CurrencyGetViewModel(
                        normalisedIsoCode,
                        currenciesItem.Symbol,
                        currenciesItem.Name)
                    {
                        IsDefault =
                            normalisedIsoCode == normalisedDefaultIsoCode
                    };

                    IsoCodeCurrenciesMap.Add(
                        normalisedIsoCode,
                        currencyGetViewModel);

                    //bool wasAddSuccessful = currenciesMap.TryAdd(
                    //    normalisedIsoCode,
                    //    currencyGetViewModel);
                }
                catch (ArgumentException ex)
                {
                    // throw;
                    Logger.LogWarning("{@Ex}", ex);
                }
            }

            return(IsoCodeCurrenciesMap);
        }
        //// GET api/values/5
        //[HttpGet("{isoCode}")]
        //[ProducesResponseType(StatusCodes.Status404NotFound)]
        //[ProducesDefaultResponseType]
        //[ProducesResponseType(StatusCodes.Status200OK)]
        //public ActionResult<CurrencyGetViewModel> Get(string isoCode)
        //{
        //    if (isoCode == null)
        //    {
        //        return BadRequest();
        //    }

        //    var isoCodeCurrenciesMap = GetIsoCodeCurrenciesMap();

        //    if (isoCodeCurrenciesMap == null)
        //    {
        //        return NotFound();
        //    }

        //    var key = isoCode.Trim();

        //    if (isoCodeCurrenciesMap.ContainsKey(key))
        //    {
        //        return isoCodeCurrenciesMap[key];
        //    }

        //    return NotFound();
        //}

        private Dictionary <string, CurrencyGetViewModel> GetIsoCodeCurrenciesMap()
        {
            if (IsoCodeCurrenciesMap.Keys.Count > 0)
            {
                return(IsoCodeCurrenciesMap);
            }

            var normalisedDefaultIsoCode = CurrenciesSettings.DefaultIsoCode?.ToUpper().Trim();

            foreach (var currenciesItem in CurrenciesSettings.Currencies)
            {
                try
                {
                    var normalisedIsoCode = currenciesItem.IsoCode?.ToUpper().Trim();

                    var currencyGetViewModel = new CurrencyGetViewModel(
                        normalisedIsoCode,
                        currenciesItem.Symbol,
                        currenciesItem.Name)
                    {
                        IsDefault =
                            normalisedIsoCode == normalisedDefaultIsoCode
                    };

                    IsoCodeCurrenciesMap.Add(
                        normalisedIsoCode,
                        currencyGetViewModel);
                }
                catch (ArgumentException ex)
                {
                    Logger.LogWarning("{@Ex}", ex);
                }
            }

            return(IsoCodeCurrenciesMap);
        }