예제 #1
0
        public void AddAlert(Alert alert, int entiteitId, bool web, bool android, bool mail)
        {
            initNonExistingRepo(true);
            EntiteitManager emg = new EntiteitManager(uowManager);

            alert.Entiteit = emg.getEntiteit(entiteitId);

            // var entiteit = emg.getEntiteit(1);
            //entiteit.Alerts.Add(alert);



            if (android == true)
            {
                alert.PlatformType = Domain.Enum.PlatformType.ANDROID;
                repo.AddAlert(alert);
            }

            if (web == true)
            {
                alert.PlatformType = Domain.Enum.PlatformType.WEB;
                repo.AddAlert(alert);
            }

            if (mail == true)
            {
                alert.PlatformType = Domain.Enum.PlatformType.EMAIL;
                repo.AddAlert(alert);
            }



            uowManager.Save();
        }
예제 #2
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();
        }
예제 #3
0
        public void AddUserGrafiek(List <CijferOpties> opties, List <int> entiteitIds, GrafiekType grafiekType, int platId, string IdentityId, string naam, GrafiekSoort grafiekSoort)
        {
            initNonExistingRepo(true);
            EntiteitManager entiteitManager = new EntiteitManager(uowManager);
            IPostManager    postManager     = new PostManager(uowManager);
            List <Entiteit> entiteiten      = new List <Entiteit>();

            Account user = accountRepository.ReadAccount(IdentityId);

            //geselecteerde entiteiten opzoeken
            foreach (var i in entiteitIds)
            {
                entiteiten.Add(entiteitManager.getEntiteit(i));
            }

            //nieuwe grafiek aanmaken
            Grafiek grafiek = new Grafiek()
            {
                CijferOpties = opties,
                Entiteiten   = entiteiten,
                Type         = grafiekType,
                Waardes      = new List <GrafiekWaarde>(),
                Naam         = naam,
                GrafiekSoort = grafiekSoort
            };

            if (opties.First().optie.ToLower() == "populariteit")
            {
                grafiek.soortGegevens = Domain.Enum.SoortGegevens.POPULARITEIT;
            }
            else if (opties.First().optie.ToLower() == "postfrequentie")
            {
                grafiek.soortGegevens = Domain.Enum.SoortGegevens.POSTFREQUENTIE;
            }
            else if (opties.First().optie.ToLower() == "sentiment")
            {
                grafiek.soortGegevens = Domain.Enum.SoortGegevens.SENTIMENT;
            }

            //waardes voor de grafiek berekenen
            grafiek.Waardes = postManager.BerekenGrafiekWaardes(opties, entiteiten);

            foreach (var e in entiteiten)
            {
                e.Posts.Clear();
            }
            ;

            //kijkt na of de gebruiker al een lijst van blokken heeft om nullpointer te vermijden
            if (user.Dashboard.Configuratie.DashboardBlokken == null)
            {
                user.Dashboard.Configuratie.DashboardBlokken = new List <DashboardBlok>();
            }

            //nieuw blok aanmaken voor de configuratie
            DashboardBlok dashboardBlok = new DashboardBlok()
            {
                Grafiek = grafiek,
            };

            user.Dashboard.Configuratie.DashboardBlokken.Add(dashboardBlok);
            accountRepository.updateUser(user);
            uowManager.Save();
        }