public CurrencyControl(Currency currency, Currencies addedCurrencies, StackLayout stackLayout, CurrencyControl btczControl)
 {
     InitializeComponent();
     Currency        = currency;
     CurrencyName    = String.Format("({0})", currency.Name);
     CurrencyCode    = currency.Code;
     AddedCurrencies = addedCurrencies;
     CcyStackLayout  = stackLayout;
     _btczControl    = btczControl;
     SetupTapGesture();
     CurrencyRate = "";
 }
        private async void currencyAmount_Completed(object sender, EventArgs e)
        {
            var loadingPage = new LoadingPage();

            try
            {
                PushControlToTopOfStack();
                if (String.IsNullOrEmpty(CurrencyAmount))
                {
                    return;
                }
                Navigation.PushAsync(loadingPage);

                await GetPrices();

                if (CurrencyCode == "BTCZ")
                {
                    foreach (var ccy in AddedCurrencies.CurrencyList)
                    {
                        var             numberFormat = ccy.Code == "BTC" || ccy.Code == "LTC" || ccy.Code == "BCH" || ccy.Code == "ETH" || ccy.Code == "XRP" ? "N8" : "N2";
                        CurrencyControl ccyControl   = (CurrencyControl)CcyStackLayout.Children.Where(x => ((CurrencyControl)x).Currency.Code == ccy.Code).First();
                        ccyControl.CurrencyAmount = (ccy.Price * Double.Parse(CurrencyAmount, NumberStyles.Any, CultureInfo.InvariantCulture)).ToString(numberFormat, CultureInfo.InvariantCulture);
                        ccyControl.CurrencyRate   = ccy.Price.ToString("N8", CultureInfo.InvariantCulture);
                    }
                }
                else
                {
                    _btczControl.CurrencyAmount = (Double.Parse(CurrencyAmount, NumberStyles.Any, CultureInfo.InvariantCulture) / Currency.Price).ToString("N2", CultureInfo.InvariantCulture);


                    foreach (var ccy in AddedCurrencies.CurrencyList)
                    {
                        var             numFormat  = ccy.Code == "BTC" || ccy.Code == "LTC" || ccy.Code == "BCH" || ccy.Code == "ETH" || ccy.Code == "XRP" ? "N8" : "N2";
                        CurrencyControl ccyControl = (CurrencyControl)CcyStackLayout.Children.Where(x => ((CurrencyControl)x).Currency.Code == ccy.Code).First();
                        ccyControl.CurrencyAmount = (ccy.Price * Double.Parse(_btczControl.CurrencyAmount, NumberStyles.Any, CultureInfo.InvariantCulture)).ToString(numFormat, CultureInfo.InvariantCulture);
                        ccyControl.CurrencyRate   = ccy.Price.ToString("N8", CultureInfo.InvariantCulture);
                    }
                }
                loadingPage.ClosePage();
            }
            catch (Exception ex)
            {
                loadingPage.ClosePage();
                var errorsPage = new ErrorsPage(String.Format("An Error Occurred retrieving prices.  Check internet connection and try again later.  Please send below error to developer for further investigation. \n {0} \n {1}", ex.Message, ex.StackTrace));
                Navigation.PushAsync(errorsPage);
                //DisplayAlert("Error", "Error Retrieving Prices", "OK");
            }
        }