Exemplo n.º 1
0
        public void BerekenVasteGrafiekenAlleEntiteiten()
        {
            initNonExistingRepo();
            List <Entiteit> alleEntiteiten = entiteitRepository.getAlleEntiteiten();
            DateTime        vandaag        = new DateTime(2018, 04, 01);

            foreach (var e in alleEntiteiten)
            {
                Grafiek postFrequentie = new Grafiek()
                {
                    Naam    = "Post Frequentie - " + e.Naam,
                    Waardes = new List <GrafiekWaarde>()
                };
                vandaag = new DateTime(2018, 04, 01);
                for (int i = 0; i < 30; i++)
                {
                    GrafiekWaarde waarde = new GrafiekWaarde();
                    waarde.Naam   = vandaag.ToShortDateString();
                    waarde.Waarde = e.Posts.Where(x => x.Date.Date == vandaag.Date).Count();
                    vandaag       = vandaag.AddDays(1);
                    postFrequentie.Waardes.Add(waarde);
                }
                e.Grafieken.Clear();
                e.Grafieken.Add(postFrequentie);
                entiteitRepository.updateEntiteit(e);
            }
        }
Exemplo n.º 2
0
        public List <GrafiekWaarde> BerekenGrafiekWaardes(List <CijferOpties> opties, List <Entiteit> entiteiten)
        {
            initNonExistingRepo();
            //EntiteitManager entiteitManager = new EntiteitManager(uowManager);
            List <GrafiekWaarde> GrafiekWaardes = new List <GrafiekWaarde>();

            //Alle opties overlopen
            foreach (var o in opties)
            {
                //Als optie aantal posts is, voor elke entiteit het totaal aantal posts ophalen
                if (o.optie.ToLower() == "aantalposts" || o.optie.ToLower() == "populariteit")
                {
                    foreach (var e in entiteiten)
                    {
                        GrafiekWaarde waarde = new GrafiekWaarde()
                        {
                            Naam   = "# Posts " + e.Naam,
                            Waarde = e.Posts.Count
                        };
                        GrafiekWaardes.Add(waarde);
                    }
                }
                else if (o.optie.ToLower() == "aantalretweets")
                {
                    foreach (var e in entiteiten)
                    {
                        GrafiekWaarde waarde = new GrafiekWaarde()
                        {
                            Naam   = "# Retweets " + e.Naam,
                            Waarde = e.Posts.Where(x => x.retweet == true).Count()
                        };
                        GrafiekWaardes.Add(waarde);
                    }
                }
                else if (o.optie.ToLower() == "aanwezigetrends")
                {
                    foreach (var e in entiteiten)
                    {
                        if (e.Trends == null)
                        {
                            e.Trends = new List <Trend>();
                        }
                        foreach (var t in e.Trends)
                        {
                            GrafiekWaarde waarde = new GrafiekWaarde()
                            {
                                Naam   = "Trend " + t.Voorwaarde,
                                Waarde = 1 //1 van true, aanwezig
                            };
                            GrafiekWaardes.Add(waarde);
                        }
                    }
                }
                else if (o.optie.ToLower() == "postfrequentie")
                {
                    foreach (var e in entiteiten)
                    {
                        for (int i = 0; i < 10; i++)
                        {
                            GrafiekWaarde waarde = new GrafiekWaarde()
                            {
                                Naam   = "Posts " + e.Naam,
                                Waarde = e.Posts.Where(x => x.Date.Date == DateTime.Today.AddDays(-i).Date).Count()
                            };
                            GrafiekWaardes.Add(waarde);
                        }
                        GrafiekWaarde end = new GrafiekWaarde()
                        {
                            Naam = "endpostfrequentie"
                        };
                        GrafiekWaardes.Add(end);
                    }
                }
            }
            return(GrafiekWaardes);
        }
Exemplo n.º 3
0
        public void maakVasteGrafieken()
        {
            initNonExistingRepo(true);
            DateTime                 since                  = new DateTime(2018, 04, 01);
            DateTime                 until                  = new DateTime(2018, 04, 30);
            EntiteitManager          entiteitManager        = new EntiteitManager(uowManager);
            AccountManager           accountManager         = new AccountManager(uowManager);
            Dictionary <int, double> dictionarySentiment    = new Dictionary <int, double>();
            Dictionary <int, int>    dictionaryPopulariteit = new Dictionary <int, int>();
            Dictionary <string, int> dictionaryWords        = new Dictionary <string, int>();

            foreach (var p in entiteitManager.GetAllPeople(1))
            {
                double sentiment = 0;
                foreach (var post in p.Posts)
                {
                    sentiment += (post.Sentiment.polariteit * post.Sentiment.subjectiviteit) / p.Posts.Count();
                }
                dictionarySentiment.Add(p.EntiteitId, sentiment);
                dictionaryPopulariteit.Add(p.EntiteitId, p.Posts.Count);
            }

            Grafiek grafiekSentiment = new Grafiek()
            {
                Type    = Domain.Enum.GrafiekType.VASTE,
                Waardes = new List <GrafiekWaarde>(),
                Naam    = "Meest Positieve/Negatieve personen"
            };

            Grafiek grafiekPopulair = new Grafiek()
            {
                Type    = Domain.Enum.GrafiekType.VASTE,
                Waardes = new List <GrafiekWaarde>(),
                Naam    = "Meest Populaire personen"
            };

            Grafiek grafiekPopulairWords = new Grafiek()
            {
                Type    = Domain.Enum.GrafiekType.VASTE,
                Waardes = new List <GrafiekWaarde>(),
                Naam    = "Meest Populaire Woorden"
            };

            var orderedSentiment    = dictionarySentiment.OrderBy(x => x.Value);
            var orderedPopulariteit = dictionaryPopulariteit.OrderByDescending(x => x.Value);
            var frequency           = postRepository.GetAllWords().GroupBy(x => x).ToDictionary(x => x.Key, x => x.Count()).OrderByDescending(x => x.Value);

            for (int i = 0; i < 4; i++)
            {
                GrafiekWaarde waarde = new GrafiekWaarde()
                {
                    Naam   = entiteitManager.getEntiteit(orderedSentiment.ElementAt(i).Key).Naam,
                    Waarde = orderedSentiment.ElementAt(i).Value
                };
                GrafiekWaarde waardePop = new GrafiekWaarde()
                {
                    Naam   = entiteitManager.getEntiteit(orderedPopulariteit.ElementAt(i).Key).Naam,
                    Waarde = orderedPopulariteit.ElementAt(i).Value
                };

                GrafiekWaarde waardeWords = new GrafiekWaarde()
                {
                    Naam   = frequency.ElementAt(i).Key.word,
                    Waarde = frequency.ElementAt(i).Value
                };

                grafiekSentiment.Waardes.Add(waarde);
                grafiekPopulair.Waardes.Add(waardePop);
                grafiekPopulairWords.Waardes.Add(waardeWords);
            }
            postRepository.AddGrafiek(grafiekSentiment);
            postRepository.AddGrafiek(grafiekPopulair);
            postRepository.AddGrafiek(grafiekPopulairWords);
            uowManager.Save();
        }