Example #1
0
        public IHttpActionResult Post([FromBody] string data)
        {
            GrafJson json      = JsonConvert.DeserializeObject <GrafJson>(data);
            int      gebruiker = int.Parse(User.Identity.GetUserId());

            switch (json.type)
            {
            case "line":
                LineJson line = JsonConvert.DeserializeObject <LineJson>(data);
                line.ToString();
                List <Serie> series = new List <Serie>();

                Grafiek grafiek = new Lijn(grafiekenMng.NewGrafiek().ID,
                                           line.title,
                                           new As()
                {
                    Titel = "Aantal Tweets", IsUsed = true
                },
                                           series);
                grafiek.GebruikerId            = gebruiker;
                grafiek.PlotOptions.PointStart = line.pointStart.ToString();

                foreach (PersoonJson persoon in line.series)
                {
                    AantalBerichtenPerWeekModel model = GetAantalBerichtenPerWeekModel(line.aantalWeken, int.Parse(persoon.id));
                    Serie serie = new Serie();
                    serie.Naam = persoon.naam;

                    foreach (int d in model.Data)
                    {
                        Data dat = new Data(d);
                        serie.Data.Add(dat);
                    }

                    grafiek.Series.Add(serie);
                }

                grafiekenMng.AddGrafiek(grafiek);
                break;

            case "bar":
                BarJson bar = JsonConvert.DeserializeObject <BarJson>(data);
                bar.ToString();

                As xAs = new As()
                {
                    IsUsed = true
                };

                As yAs = new As()
                {
                    IsUsed = true,
                    Titel  = "Aantal Tweets"
                };

                List <Categorie> categories = new List <Categorie>();

                foreach (string categorie in bar.categories)
                {
                    categories.Add(new Categorie(categorie));
                }

                xAs.Categorieen = categories;

                List <Serie> series2 = new List <Serie>();

                foreach (PersoonJson persoon in bar.series)
                {
                    int   id     = int.Parse(persoon.id);
                    int   aantal = berichtMng.GetBerichten(b => b.Personen.FirstOrDefault(p => p.ID == id) != null).ToList().Count;
                    Serie serie  = new Serie();
                    serie.Naam = berichtMng.GetPersoon(id).Naam;

                    serie.Data.Add(new Data(aantal));
                    series2.Add(serie);
                }

                Grafiek grafiek2 = new Bar(grafiekenMng.NewGrafiek().ID,
                                           bar.title,
                                           xAs,
                                           series2
                                           );
                grafiek2.yAs         = yAs;
                grafiek2.GebruikerId = gebruiker;
                grafiekenMng.AddGrafiek(grafiek2);
                break;

            case "pie":
                PieJson pie = JsonConvert.DeserializeObject <PieJson>(data);
                pie.ToString();

                Serie serie2 = new Serie();
                serie2.Naam = pie.serieNaam;

                for (int i = 0; i < pie.series.Count; i++)
                {
                    Data data2 = new Data()
                    {
                        Naam  = pie.series[i].naam,
                        Value = pie.waarden[i]
                    };
                    serie2.Data.Add(data2);
                }

                Grafiek grafiek3 = new Pie(grafiekenMng.NewGrafiek().ID,
                                           pie.title,
                                           serie2);
                grafiek3.GebruikerId = gebruiker;
                grafiekenMng.AddGrafiek(grafiek3);
                break;
            }


            return(Ok());
        }