public override void ViewDidLoad() { base.ViewDidLoad(); viewModel = new StockViewModel(); ButtonGetQuote.TouchUpInside += async(sender, args) => { ButtonGetQuote.Enabled = false; ProgressBar.StartAnimating(); var result = await viewModel.GetQuote(TextFieldTicker.Text); if (result) { LabelCompany.Text = viewModel.Data.Company; LabelQuote.Text = viewModel.Data.CurrentQuote; } else { new UIAlertView("Error", "Unable to get quote", null, "OK").Show(); } ProgressBar.StopAnimating(); ButtonGetQuote.Enabled = true; }; }
private async void ButtonGetQuote_Click(object sender, RoutedEventArgs e) { var quote = await viewModel.GetQuote(viewModel.Symbol); if (quote == null) { return; } TextQuote.Foreground = quote.StockIsUp ? green : red; }
private async void ButtonGetQuote_Click(object sender, RoutedEventArgs e) { ButtonGetQuote.IsEnabled = false; var result = await viewModel.GetQuote(TextTicker.Text); if (result) { TextBlockCompany.Text = viewModel.Data.Company; TextBlockQuote.Text = viewModel.Data.CurrentQuote; } ButtonGetQuote.IsEnabled = true; }
async partial void ButtonQuote_TouchUpInside(UIButton sender) { if (string.IsNullOrWhiteSpace(TextSymbol.Text)) { var alert = new UIAlertView("No symbol", string.Empty, null, "OK"); alert.Show(); return; } TextSymbol.ResignFirstResponder(); ProgressBar.StartAnimating(); var quoteTask = viewModel.GetQuote(TextSymbol.Text); var historyTask = viewModel.GetHistory( TextSymbol.Text, DateTime.Today.AddDays(-14), DateTime.Today); await Task.WhenAll(quoteTask, historyTask); var quote = quoteTask.Result; if (quote == null) { LabelQuote.Text = "Invalid"; ProgressBar.StopAnimating(); return; } LabelQuote.Text = quote.CurrentQuote + " | " + quote.Change; LabelQuote.TextColor = quote.StockIsUp ? UIColor.Green : UIColor.Red; var items = historyTask.Result; if (items != null) { barChart.ItemsSource = items.Select( s => new BarChart.BarModel { Value = s.Value, Legend = s.Date.Remove(0, 5) }).ToList(); } ProgressBar.StopAnimating(); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); viewModel = new StockViewModel(); // Get our button from the layout resource, // and attach an event to it var ticker = FindViewById <EditText>(Resource.Id.edittext_ticker); var button = FindViewById <Button>(Resource.Id.button_getquote); var labelQuote = FindViewById <TextView>(Resource.Id.text_quote); var labelCompany = FindViewById <TextView>(Resource.Id.text_company); button.Click += async(sender, args) => { button.Enabled = false; var result = await viewModel.GetQuote(ticker.Text); if (result) { labelCompany.Text = viewModel.Data.Company; labelQuote.Text = viewModel.Data.CurrentQuote; } else { labelCompany.Text = string.Empty; labelQuote.Text = string.Empty; } button.Enabled = true; }; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it var button = FindViewById <Button> (Resource.Id.button_getquote); var edittext = FindViewById <EditText>(Resource.Id.edittext_ticker); var quote = FindViewById <TextView>(Resource.Id.text_quote); var company = FindViewById <TextView>(Resource.Id.text_company); viewModel = new StockViewModel(); button.Click += async(sender, args) => { button.Enabled = false; var result = await viewModel.GetQuote(edittext.Text); if (!result) { Toast.MakeText(this, "Unable to get quote", ToastLength.Short).Show(); } else { quote.Text = viewModel.Data?.CurrentQuote ?? string.Empty; company.Text = viewModel.Data?.Company ?? string.Empty; } button.Enabled = true; }; }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Get our button from the layout resource, // and attach an event to it Button button = FindViewById <Button>(Resource.Id.MyButton); var quoteLable = FindViewById <TextView>(Resource.Id.textView1); var symbol = FindViewById <EditText>(Resource.Id.editText1); var progressBar = FindViewById <ProgressBar>(Resource.Id.progressBar1); mainLayout = FindViewById <LinearLayout>(Resource.Id.main); progressBar.Visibility = ViewStates.Invisible; quoteLable.Text = string.Empty; button.Click += async(sender, args) => { progressBar.Visibility = ViewStates.Visible; if (string.IsNullOrWhiteSpace(symbol.Text)) { quoteLable.Text = "Invalid"; progressBar.Visibility = ViewStates.Invisible; return; } var quote = await viewModel.GetQuote(symbol.Text.Trim()); if (quote != null) { quoteLable.Text = quote.CurrentQuote + " | " + quote.Change; quoteLable.SetTextColor(quote.StockIsUp ? Color.Green : Color.Red); } var items = await viewModel.GetHistory( symbol.Text.Trim(), DateTime.Today.AddDays(-14), DateTime.Today); if (items != null) { data = items.Select( s => new BarChart.BarModel { Value = s.Value, Legend = s.Date.Remove(0, 5), Color = Android.Graphics.Color.Orange }); RunOnUiThread(() => { if (barChart != null) { mainLayout.RemoveView(barChart); } barChart = new BarChartView(this); barChart.ItemsSource = data; barChart.BarOffset = 30; barChart.MinimumValue = items.Min(i => i.Value); barChart.LegendColor = Android.Graphics.Color.Black; barChart.BarCaptionOuterColor = Android.Graphics.Color.Black; barChart.BarCaptionFontSize = 28; mainLayout.AddView(barChart, new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FillParent, ViewGroup.LayoutParams.FillParent)); }); } progressBar.Visibility = ViewStates.Invisible; }; }