public IEnumerable <Subscription> GetSubscriptions() { return(repo.Readsubscriptions()); }
// Gaat alle subscriptions ophalen voor de onderwerpen die op dit moment trending zijn private List <Alert> BerekenTrending(Dictionary <string, int> onderwerpenMapOudeData, Dictionary <string, int> onderwerpenMapNieuwBinnengekomenData) { int teller; int noemer; // Hoe hoger het arbitrair getal, hoe minder politiekers er trending zijn. double trendingScore = 0; List <Subscription> subscriptionsTrendingOnderwerpen = new List <Subscription>(); // TODO : Filteren op datum! foreach (var key in onderwerpenMapNieuwBinnengekomenData.Keys) { teller = onderwerpenMapNieuwBinnengekomenData[key]; noemer = onderwerpenMapOudeData[key]; trendingScore = VoerTrendingBerekeningUit(teller, noemer); repo.ReadOnderwerpString(key).TrendingScore = trendingScore; if (trendingScore >= 0.13) { repo.ReadOnderwerpString(key).isTrending = true; foreach (var item in subscriptionRepo.ReadSubscriptionsMetNaamOnderwerp(key)) { item.Onderwerp.TrendingScore = trendingScore; item.Onderwerp.isTrending = true; } } } List <Onderwerp> trendingOnderwerpen = repo.ReadOnderwerpen().Where(x => x.isTrending == true).ToList(); // Gaat per Trending onderwerp alle subscriptions halen, en daar in die repo de isTrending ook op true zetten, zodat de alerts geactiveerd worden. foreach (var item in trendingOnderwerpen) { if (item.isTrending) { foreach (var item2 in subscriptionRepo.Readsubscriptions().ToList()) { if (item.id == item2.Onderwerp.id) { item2.Onderwerp.isTrending = true; subscriptionsTrendingOnderwerpen.Add(item2); } } } } // hierin worden de alerts aangemaakt die terug worden gestuurd List <Alert> AlertList = new List <Alert>(); foreach (var item in subscriptionsTrendingOnderwerpen) { Alert alert = new Alert() { Subscription = item, text = item.Onderwerp.ToString() }; AlertList.Add(alert); } return(AlertList); }