예제 #1
0
 public void UpdateGraph()
 {
     if (generator != null)
     {
         generator.SetNeighbourhood(picker.Items[picker.SelectedIndex]);
         bg = generator.GenerateGraphModel();
         bikecontainers.ItemsSource = bg.model;
         thefts.ItemsSource         = bg.model;
     }
 }
예제 #2
0
        //Maakt het model dat de source voor de grafiek wordt.
        public Q3Model GenerateGraphModel()
        {
            Q3Model            q3model = new Q3Model();
            List <StackedData> sData   = new List <StackedData>();

            //Kies de juiste deelgemeente die is geselecteerd is uit de lijst van deelgemeentes.
            DeelGemeente deelgemeente = gemeentes.deelGemeentes.Single(item => item.Name == selectedNeighbourhood);

            for (int i = 1; i < 13; i++)
            {
                //Custom data structuur om de correcte data voor de grafiek te genereren
                StackedData data = new StackedData();

                //Zoek naar containers die in betreffende maand en gelijk is aan de naam van een deelgemeente.
                var monthC = containers.Where(item => item.Month == i).Where(item => item.Neighbourhood == deelgemeente.Name);
                //Selecteer alle diefstallen in de betreffende maand.
                var monthT = thefts.Where(item => item.Month == i);

                //Door alle diefstallen loopen en daarna de diefstallen toevoegen die overeenkomen met de geselecteerde deelgemeente/wijk
                foreach (var theft in monthT)
                {
                    if (deelgemeente.GetWijken().Any(item => item.StartsWith(theft.Neighbourhood, StringComparison.CurrentCultureIgnoreCase)))
                    {
                        data.AddBikeThefts(theft);
                    }
                }

                //Door alle containers loopen en deze toevoegen aan de data.
                foreach (var container in monthC)
                {
                    data.AddContainer(container);
                }

                //Maan genereren
                data.Month = new DateTime(2010, i, 1).ToString("MMM");
                sData.Add(data);
            }

            //De uiteindelijke data toevoegen aan het model voor de grafiek
            foreach (StackedData d in sData)
            {
                q3model.AddData(d);
            }

            //Model teruggeven voor gebruik in grafiek
            return(q3model);
        }
예제 #3
0
        public async void GenerateGraph()
        {
            await generator.LoadData();

            Device.BeginInvokeOnMainThread(() =>
            {
                foreach (string neighbourhood in generator.GetNeighbourhoodList())
                {
                    picker.Items.Add(neighbourhood);
                }
                generator.SetNeighbourhood(picker.Items[0]);

                bg = generator.GenerateGraphModel();
                chart.Series.Add(bikecontainers = new StackingBarSeries()
                {
                    Label             = "Bike containers",
                    ItemsSource       = bg.model,
                    XBindingPath      = "Month",
                    YBindingPath      = "BikeContainerCount",
                    EnableAnimation   = true,
                    AnimationDuration = 3.0,
                    EnableTooltip     = true,
                });
                chart.Series.Add(thefts = new StackingBarSeries()
                {
                    Label             = "Bike thefts",
                    ItemsSource       = bg.model,
                    XBindingPath      = "Month",
                    YBindingPath      = "BikeTheftCount",
                    EnableAnimation   = true,
                    AnimationDuration = 3.0,
                    EnableTooltip     = true,
                });


                chart.IsVisible  = true;
                picker.IsVisible = true;
                this.IsBusy      = false;
            });
        }