public async void GenerateGraph() { Top5Generator gen = new Top5Generator(); BikeGraphModel bg = await gen.GenerateNeighbourhoods(); chart.Series.Add(new ColumnSeries() { ItemsSource = bg.model, XBindingPath = "Name", YBindingPath = "BikeContainerCount", EnableAnimation = true, AnimationDuration = 3.0, EnableTooltip = true, }); }
//async methode om neighbourhoods met containers te genereren. public async Task <BikeGraphModel> GenerateNeighbourhoods() { //Een nieuwe bikegraphmodel aanmaken die gebruikt wordt om data in de grafiek te zetten BikeGraphModel bgm = new BikeGraphModel(); BikeContainerViewModel vm = new BikeContainerViewModel(); await vm.GetHaltesAsync(); ObservableCollection <BikeContainer> containers = vm.BikeContainers; foreach (BikeContainer container in containers) { //Als er een unieke neighbourhood naam is gevonden wordt deze aan de hashset toegevoegd if (neighbourhoods.Add(container.Neighbourhood)) { Neighbourhood neighb = new Neighbourhood(); neighb.Name = container.Neighbourhood; realNeighbourhoods.Add(neighb); } //Hier wordt de bikecontainer toegevoegd aan de bijbehorende neighbourhood Neighbourhood nb = realNeighbourhoods.Find(x => x.Name.Contains(container.Neighbourhood)); nb.AddContainer(container); } //De top 5 selecteren van de neighbourhoods. var r = realNeighbourhoods.OrderByDescending(x => x.BikeContainerCount).Take(5); //Door de top 5 loopen en toevoegen aan het model. foreach (Neighbourhood nb in r) { //Naam afkorten anders past deze niet op de grafiek. if (nb.Name.Length > 10) { nb.Name = nb.Name.Substring(0, 10); } bgm.AddData(nb); } return(bgm); }