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(); }
public async Task SyncDataAsync(int platformid) { initNonExistingRepo(true); EntiteitManager entiteitManager = new EntiteitManager(uowManager); //Sync willen we datum van vandaag en gisteren. DateTime vandaag = DateTime.Today.Date; DateTime gisteren = DateTime.Today.AddDays(-30).Date; List <Domain.Entiteit.Persoon> AllePersonen = entiteitManager.GetAllPeople(platformid); //Enkele test entiteiten, puur voor debug, later vragen we deze op uit onze repository// /* * List<Domain.Entiteit.Persoon> AllePersonen = entiteitManager.GetAllPeople(0); * * /* PostRequest postRequest1 = new PostRequest() * { * since = gisteren, * until = vandaag * }; * * using (HttpClient http = new HttpClient()) * { * string uri = "https://kdg.textgain.com/query"; * http.DefaultRequestHeaders.Add("X-API-Key", "aEN3K6VJPEoh3sMp9ZVA73kkr"); * // var myContent = JsonConvert.SerializeObject(postRequest1); * //var buffer = System.Text.Encoding.UTF8.GetBytes(myContent); * //var byteContent = new ByteArrayContent(buffer); * //byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); * var result = await http.PostAsync(uri,null).Result.Content.ReadAsStringAsync(); * try * { * var posts = JsonConvert.DeserializeObject<List<TextGainResponse>>(result); * if (posts.Count != 0) * { * // ConvertAndSaveToDb(posts); * * // System.IO.File.WriteAllText(@"C:\Users\Zeger\source\repos\Integratieproject\WebUI\Controllers\DataTextGain.json", result); * } * } * catch (Newtonsoft.Json.JsonReaderException) * { * * } * * }*/ //Voor elke entiteit een request maken, momenteel gebruikt het test data, later halen we al onze entiteiten op. foreach (var Persoon in AllePersonen) { PostRequest postRequest = new PostRequest() { name = Persoon.Naam, //since = new DateTime(2018, 04, 01), //until = new DateTime(2018, 04, 30) since = gisteren, until = vandaag }; using (HttpClient http = new HttpClient()) { string uri = "https://kdg.textgain.com/query"; http.DefaultRequestHeaders.Add("X-API-Key", "aEN3K6VJPEoh3sMp9ZVA73kkr"); var myContent = JsonConvert.SerializeObject(postRequest); var buffer = System.Text.Encoding.UTF8.GetBytes(myContent); var byteContent = new ByteArrayContent(buffer); byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json"); var result = await http.PostAsync(uri, byteContent).Result.Content.ReadAsStringAsync(); try { var posts = JsonConvert.DeserializeObject <List <TextGainResponse> >(result); if (posts.Count != 0) { ConvertAndSaveToDb(posts, Persoon.EntiteitId); // System.IO.File.WriteAllText(@"C:\Users\Zeger\source\repos\Integratieproject\WebUI\controllers\DataTextGain" + Persoon.EntiteitId + ".json", result); } } catch (Newtonsoft.Json.JsonReaderException) { } } } }