示例#1
0
        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;
        }
示例#3
0
        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();
        }
示例#5
0
        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;
            };
        }
示例#6
0
        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;
            };
        }
示例#7
0
        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;
            };
        }