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"); } }