public Dictionary <string, double> BerekenGrafiekWaarde(Domain.Enum.GrafiekType grafiekType, List <Entiteit> entiteiten) { initNonExistingRepo(true); IEntiteitManager entiteitManager = new EntiteitManager(uowManager); Dictionary <string, double> grafiekMap = new Dictionary <string, double>(); switch (grafiekType) { case Domain.Enum.GrafiekType.CIJFERS: Entiteit e1 = entiteitManager.getAlleEntiteiten().Single(x => x.EntiteitId == entiteiten.First().EntiteitId); List <Post> postsEerste = e1.Posts; int aantalPosts = postsEerste.Count; int retweets = postsEerste.Where(x => x.retweet == true).Count(); //grafiek.Entiteiten.First().Trends; grafiekMap.Add("aantalPosts", aantalPosts); grafiekMap.Add("aantalRetweets", retweets); break; } return(grafiekMap); }
private void ConvertAndSaveToDb(List <TextGainResponse> response, int entiteitId) { initNonExistingRepo(true); EntiteitManager entiteitManager = new EntiteitManager(uowManager); Entiteit entiteit = entiteitManager.getAlleEntiteiten().Single(x => x.EntiteitId == entiteitId); List <Post> PostsToAdd = new List <Post>(); foreach (var post in response) { Post newPost = new Post() { Profile = new Domain.Post.Profile(), HashTags = new List <HashTag>(), Words = new List <Word>(), Date = post.date, Persons = new List <Person>(), Sentiment = new Sentiment(), retweet = post.retweet, source = post.source, Urls = new List <URL>(), Mentions = new List <Mention>(), postNummer = post.id }; //alle hashtags in ons object steken foreach (var hashtag in post.hashtags) { HashTag newTag = new HashTag() { hashTag = hashtag }; newPost.HashTags.Add(newTag); } //alle woorden in ons object steken foreach (var word in post.Words) { Word newWord = new Word() { word = word }; newPost.Words.Add(newWord); } //alle persons in ons object steken foreach (var person in post.persons) { Person newPerson = new Person() { Naam = person }; newPost.Persons.Add(newPerson); } //alle urls in ons object steken foreach (var url in post.urls) { URL newURL = new URL() { Link = url }; newPost.Urls.Add(newURL); } foreach (var mention in post.mentions) { Mention newMention = new Mention() { mention = mention }; newPost.Mentions.Add(newMention); } //sentiment in textgain geeft altijd 2 elementen terug, eerste is polariteit, tweede subjectiviteit if (post.sentiment.Count != 0) { double polariteit = double.Parse(post.sentiment.ElementAt(0), CultureInfo.InvariantCulture); double subjectiviteit = double.Parse(post.sentiment.ElementAt(1), CultureInfo.InvariantCulture); newPost.Sentiment.polariteit = polariteit; newPost.Sentiment.subjectiviteit = subjectiviteit; } newPost.retweet = post.retweet; newPost.source = post.source; entiteit.Posts.Add(newPost); PostsToAdd.Add(newPost); } //linkt de juist entiteit en voegt nieuwe posts toe. //postRepository.AddPosts(PostsToAdd); entiteitManager.updateEntiteit(entiteit); uowManager.Save(); }
public void grafiekAanGebruikerToevoegen(string IdentityId, Domain.Enum.GrafiekType TypeGrafiek, List <int> entiteitInts, List <string> CijferOpties, string VergelijkOptie, Domain.Enum.GrafiekSoort grafiekSoort) { initNonExistingRepo(true); //IPostManager postManager = new PostManager(uowManager); IEntiteitManager entiteitManager = new EntiteitManager(uowManager); Domain.Account.Account user = accountRepository.ReadAccount(IdentityId); Domain.Post.Grafiek grafiek = new Domain.Post.Grafiek(); grafiek.Entiteiten = new List <Entiteit>(); List <Entiteit> entiteiten = new List <Entiteit>(); foreach (var i in entiteitInts) { var e = entiteitManager.getAlleEntiteiten().Single(x => x.EntiteitId == i); entiteiten.Add(e); grafiek.Entiteiten.Add(e); } Dictionary <string, double> waardes = entiteitManager.BerekenGrafiekWaarde(TypeGrafiek, entiteiten, CijferOpties, VergelijkOptie); List <Domain.Post.GrafiekWaarde> grafiekWaardes = new List <Domain.Post.GrafiekWaarde>(); foreach (var item in waardes) { Domain.Post.GrafiekWaarde w = new Domain.Post.GrafiekWaarde() { Naam = item.Key, Waarde = item.Value }; grafiekWaardes.Add(w); } if (CijferOpties != null) { grafiek.CijferOpties = new List <Domain.Post.CijferOpties>(); foreach (var opt in CijferOpties) { if (opt.ToLower() == "aantalposts") { grafiek.CijferOpties.Add(new Domain.Post.CijferOpties { optie = opt }); } if (opt.ToLower() == "aantalretweets") { grafiek.CijferOpties.Add(new Domain.Post.CijferOpties { optie = opt }); } if (opt.ToLower() == "aanwezigetrends") { grafiek.CijferOpties.Add(new Domain.Post.CijferOpties { optie = opt }); } } } grafiek.Type = TypeGrafiek; grafiek.Waardes = grafiekWaardes; grafiek.GrafiekSoort = grafiekSoort; if (VergelijkOptie.ToLower() == "populariteit") { grafiek.soortGegevens = Domain.Enum.SoortGegevens.POPULARITEIT; } else if (VergelijkOptie.ToLower() == "postfrequentie") { grafiek.soortGegevens = Domain.Enum.SoortGegevens.POSTFREQUENTIE; } //cijfers switch (TypeGrafiek) { case Domain.Enum.GrafiekType.CIJFERS: grafiek.Naam = "Cijfer gegevens - " + entiteiten.First().Naam; break; case Domain.Enum.GrafiekType.VERGELIJKING: if (grafiek.soortGegevens == Domain.Enum.SoortGegevens.POSTFREQUENTIE) { grafiek.Naam = "Vergelijking post frequentie"; } else if (grafiek.soortGegevens == Domain.Enum.SoortGegevens.POPULARITEIT) { grafiek.Naam = "Vergelijking populariteit"; } break; } foreach (Entiteit e in grafiek.Entiteiten) { e.Posts = null; } Domain.Account.DashboardBlok dashboardBlok = new Domain.Account.DashboardBlok() { Grafiek = grafiek }; if (user.Dashboard.Configuratie.DashboardBlokken == null) { user.Dashboard.Configuratie.DashboardBlokken = new List <DashboardBlok>(); } user.Dashboard.Configuratie.DashboardBlokken.Add(dashboardBlok); accountRepository.updateUser(user); uowManager.Save(); }