예제 #1
0
        protected override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (Elementen == null)
            {
                Elementen = new List <Element>();
            }
            var segments = HttpContext.Request.Url.Segments;

            if (!(segments.Length <= 1))
            {
                BaseController.deelplatformURL = HttpContext.Request.Url.Segments[1].Trim('/');
                IPlatformManager platformManager = new PlatformManager();
                this.Deelplatform    = platformManager.getDeelplatformByNaam(deelplatformURL);
                ViewBag.Deelplatform = deelplatformURL;
                IElementManager elementManager      = new ElementManager();
                Deelplatform    elementDeelplatform = null;
                if (Elementen.FirstOrDefault() != null)
                {
                    elementDeelplatform = Elementen.FirstOrDefault().Deelplatform;
                }

                if (Deelplatform != null && (elementDeelplatform == null || elementDeelplatform.Naam != Deelplatform.Naam))
                {
                    Elementen = elementManager.getAllElementen(Deelplatform);
                }
            }
            base.OnActionExecuting(filterContext);
        }
예제 #2
0
        public Dashboard getDashboard(string gebruikersNaam, Deelplatform deelplatform)
        {
            Dashboard dashboard = null;

            Gebruiker        gebruiker  = context.Gebruikers.First(g => g.Email == gebruikersNaam);
            List <Dashboard> dashboards = context.Dashboards.Include <Dashboard>("Zones").Where(d => d.Gebruiker.Email == gebruiker.Email && d.Deelplatform.Id == deelplatform.Id).ToList();

            if (dashboards.Count != 0)
            {
                dashboard = dashboards.First();
            }
            if (dashboard == null)
            {
                //Eerste keer dat een gebruiker dat een gebruiker inlogd heeft deze nog geen dashboard
                dashboard = new Dashboard()
                {
                    Deelplatform = deelplatform,
                    Gebruiker    = gebruiker,
                    Zones        = new List <Zone>()
                    {
                        new Zone()
                        {
                            Dashboard = dashboard,
                            Items     = new List <Item>(),
                            Naam      = "Zone 1"
                        }
                    }
                };
                context.Dashboards.Add(dashboard);
                context.SaveChanges();
            }
            return(dashboard);
        }
예제 #3
0
        public void deleteAllPersonen(Deelplatform deelplatform)
        {
            initNonExistingRepo(true);

            elementRepository.deleteAllPersonen(deelplatform);
            this.uowManager.Save();
        }
        public List <Element> getTrendingElementen(int amount, Deelplatform deelplatform)
        {
            List <Element> elementenTrending = new List <Element>();
            List <Element> elementen         = getAllElementen(deelplatform).ToList();

            for (int i = 0; i < amount; i++)
            {
                if (elementen.Count == 0)
                {
                    return(elementenTrending);
                }
                double maxTrend = 0.0;

                Element maxElement = elementen.First();
                foreach (Element element in elementen)
                {
                    if (element.Trend > maxTrend)
                    {
                        maxElement = element;
                        maxTrend   = maxElement.Trend;
                    }
                }
                elementen.Remove(maxElement);
                elementenTrending.Add(maxElement);
            }
            return(elementenTrending);
        }
        public List <Melding> GetMeldingen(string email)
        {
            IDashboardManager dashboardManager = new DashboardManager();

            //TODO: eventueel meerdere deelplatformen
            IPlatformManager platformManager = new PlatformManager();
            Deelplatform     deelplatform    = platformManager.getDeelplatformByNaam("Politiek");

            Dashboard      dashboard = dashboardManager.getDashboard(email, deelplatform.Naam);
            List <Melding> meldingen = dashboardManager.getActiveMeldingen(dashboard).ToList();

            //Melding melding1 = new Melding()
            //{
            //    IsActive = true,
            //    IsPositive = true,
            //    MeldingDateTime = DateTime.Now.AddHours(-1),
            //    Message = "Deze Alert is een positieve test alert",
            //    Titel = "Postieve Test Melding"
            //};
            //Melding melding2 = new Melding()
            //{
            //    IsActive = true,
            //    IsPositive = false,
            //    MeldingDateTime = DateTime.Now.AddHours(-2),
            //    Message = "Deze Alert is een Negatieve test alert",
            //    Titel = "Negatieve Test Melding"
            //};

            //meldingen.Add(melding1);
            //meldingen.Add(melding2);
            return(meldingen);
        }
예제 #6
0
        public Element getElementByNaam(string naam, Deelplatform deelplatform)
        {
            initNonExistingRepo(true);
            Element element = elementRepository.getElementByName(naam, deelplatform);

            return(element);
        }
        public IEnumerable <Element> getAllElementen(Deelplatform deelplatform)
        {
            List <Element> elementen = new List <Element>();
            List <Thema>   themas    = context.Themas.Where(t => t.Deelplatform.Id == deelplatform.Id).ToList();

            if (themas.Count() != 0)
            {
                elementen.AddRange(themas);
            }
            IEnumerable <Organisatie> organisaties = context.Organisaties.Include(o => o.Personen).Where(t => t.Deelplatform.Id == deelplatform.Id);

            if (themas.Count() != 0)
            {
                elementen.AddRange(organisaties);
            }

            List <Persoon> personen = context.Personen.Include(p => p.Organisatie).Where(t => t.Deelplatform.Id == deelplatform.Id).ToList();

            if (personen.Count() != 0)
            {
                personen.Sort(Element.compareByNaam);
                elementen.AddRange(personen);
            }

            return(elementen);
        }
예제 #8
0
        public List <Element> getAllElementen(Deelplatform deelplatformS)
        {
            initNonExistingRepo(true);
            IPlatformManager platformManager = new PlatformManager(this.uowManager);
            Deelplatform     deelplatform    = platformManager.getDeelplatformByNaam(deelplatformS.Naam);

            return(elementRepository.getAllElementen(deelplatform).ToList());
        }
예제 #9
0
        public ActionResult DeleteDeelplatform(int id, Deelplatform deelplatform)
        {
            IPlatformManager platformManager = new PlatformManager();
            Deelplatform     deelPlatform    = platformManager.getDeelplatformById(id);

            platformManager.deleteDeelplatform(deelPlatform);
            return(RedirectToAction("Index"));
        }
예제 #10
0
        public Dashboard getDashboard(string email, string deelplatformS)
        {
            initNonExistingRepo(true);
            IPlatformManager platformManager = new PlatformManager(uowManager);
            Deelplatform     deelplatform    = platformManager.getDeelplatformByNaam(deelplatformS);
            Dashboard        dashboard       = dashboardRepository.getDashboard(email, deelplatform);

            uowManager.Save();
            return(dashboard);
        }
        public Element getElementByName(string naam, Deelplatform deelplatform)
        {
            Element element = (Element)context.Personen.Include(p => p.Organisatie).FirstOrDefault(p => p.Naam.Equals(naam) && p.Deelplatform.Id == deelplatform.Id);

            if (element == null)
            {
                element = (Element)context.Organisaties.FirstOrDefault(p => p.Naam.Equals(naam) && p.Deelplatform.Id == deelplatform.Id);
            }
            if (element == null)
            {
                element = (Element)context.Themas.FirstOrDefault(p => p.Naam.Equals(naam) && p.Deelplatform.Id == deelplatform.Id);
            }
            return(element);
        }
        public List <Alert> GetAlerts(string email)
        {
            IDashboardManager dashboardManager = new DashboardManager();

            //TODO: eventueel meerdere deelplatformen
            IPlatformManager platformManager = new PlatformManager();
            Deelplatform     deelplatform    = platformManager.getDeelplatformByNaam("Politiek");

            Dashboard dashboard = dashboardManager.getDashboard(email, deelplatform.Naam);

            List <Alert> lijstAlerts = dashboardManager.getDashboardAlerts(dashboard).ToList();

            return(lijstAlerts);
        }
예제 #13
0
        public List <Persoon> readJSONPolitici()
        {
            initNonExistingRepo(true);

            IPlatformManager     platformManager = new PlatformManager(this.uowManager);
            Deelplatform         deelplatform    = platformManager.getDeelplatformByNaam("Politiek");
            List <Persoon>       personen        = new List <Persoon>();
            List <PersoonParser> items;

            using (StreamReader r = new StreamReader(AppContext.BaseDirectory + "bin/politici.json"))
            {
                string json = r.ReadToEnd();
                items = JsonConvert.DeserializeObject <List <PersoonParser> >(json);
            }
            foreach (PersoonParser persoon in items)
            {
                Persoon politicus = new Persoon()
                {
                    DateOfBirth = persoon.dateOfBirth,
                    District    = persoon.district,
                    Facebook    = persoon.facebook,
                    Gender      = persoon.gender,
                    Naam        = persoon.full_name,
                    Position    = persoon.position,
                    Level       = persoon.level,
                    Postal_code = persoon.postal_code,
                    Site        = persoon.site,
                    Town        = persoon.town,
                    Twitter     = persoon.twitter
                };
                politicus.Deelplatform = deelplatform;
                Organisatie organisatie = (Organisatie)getElementByNaam(persoon.organisation, deelplatform);
                if (organisatie == null)
                {
                    organisatie = new Organisatie()
                    {
                        Naam     = persoon.organisation,
                        Personen = new List <Persoon>()
                        {
                            politicus
                        },
                    };
                    organisatie.Deelplatform = deelplatform;
                    addOrganisatie(organisatie);
                }
                politicus.Organisatie = organisatie;
                personen.Add(politicus);
            }
            return(personen);
        }
        public Deelplatform UpdateDeelplatform(Deelplatform uDeelplatform)
        {
            Deelplatform toChange = ReadDeelplatform(uDeelplatform.DeelplatformId);

            if (toChange != null)
            {
                toChange.Naam             = uDeelplatform.Naam;
                toChange.Tagline          = uDeelplatform.Tagline;
                toChange.Entiteiten       = uDeelplatform.Entiteiten;
                ctx.Entry(toChange).State = System.Data.Entity.EntityState.Modified;
            }
            ctx.SaveChanges();
            return(toChange);
        }
예제 #15
0
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
            ConfigureOAuthTokenGeneration(app);
            ConfigureOAuthTokenConsumption(app);
            CreateUserAndRoles();
            UnitOfWorkManager uowMgr          = new UnitOfWorkManager();
            IElementManager   elementManager  = new ElementManager(uowMgr);
            PlatformManager   platformManager = new PlatformManager(uowMgr);
            Deelplatform      deelplatform    = platformManager.getDeelplatformByNaam("Politiek");

            elementManager.deleteAllPersonen(deelplatform);
            elementManager.addPersonen(elementManager.readJSONPolitici());
            elementManager.setTrendingElementen(deelplatform);
            UpdateAsync();
            //SetTimer();
            uowMgr.Save();
        }
예제 #16
0
        public void setTrendingElementen(Deelplatform deelplatformS)
        {
            initNonExistingRepo(true);
            IPlatformManager platformManager = new PlatformManager(this.uowManager);
            Deelplatform     deelplatform    = platformManager.getDeelplatformByNaam(deelplatformS.Naam);

            PostManager postManager = new PostManager(uowManager);

            List <Element> elementen = getAllElementen(deelplatform);

            foreach (Element element in elementen)
            {
                element.Trend = postManager.calculateElementTrend(element);
            }
            elementen.ForEach(e => elementRepository.setElement(e));

            this.uowManager.Save();
        }
        public List <ZoneViewModel> GetZones(string email)
        {
            UnitOfWorkManager uowMgr           = new UnitOfWorkManager();
            IDashboardManager dashboardManager = new DashboardManager(uowMgr);
            IElementManager   elementManager   = new ElementManager(uowMgr);

            //TODO: eventueel meerdere deelplatformen
            IPlatformManager platformManager = new PlatformManager(uowMgr);
            Deelplatform     deelplatform    = platformManager.getDeelplatformByNaam("Politiek");

            Dashboard dashboard = dashboardManager.getDashboard(email, deelplatform.Naam);

            List <Zone> zones = dashboardManager.getZones(dashboard).ToList();

            List <ZoneViewModel> zonesViewModel = ZoneParser.ParseZones(zones, uowMgr);

            return(zonesViewModel);
        }
예제 #18
0
        public List <Element> getTrendingElementen(int amount, Deelplatform deelplatformS)
        {
            initNonExistingRepo(true);
            IPlatformManager platformManager = new PlatformManager(this.uowManager);
            Deelplatform     deelplatform    = platformManager.getDeelplatformByNaam(deelplatformS.Naam);

            List <Element> elementenTrending = elementRepository.getAllElementen(deelplatform).ToList();
            List <Element> elementen         = new List <Element>();
            List <Element> personen          = elementenTrending.Where(e => e.GetType().Equals(typeof(Persoon))).ToList();
            List <Element> themas            = elementenTrending.Where(e => e.GetType().Equals(typeof(Thema))).ToList();
            List <Element> organisaties      = elementenTrending.Where(e => e.GetType().Equals(typeof(Organisatie))).ToList();

            elementen.AddRange(getTopTrending(personen, amount));
            elementen.AddRange(getTopTrending(themas, amount));
            elementen.AddRange(getTopTrending(organisaties, amount));

            return(elementen);
        }
예제 #19
0
        public ActionResult CreateDeelplatform(FormCollection form)
        {
            Deelplatform deelplatform = new Deelplatform()
            {
                Naam              = form["txtNaam"],
                PersoonString     = form["txtPersoonstring"],
                OrganisatieString = form["txtOrganisatiestring"],
                ThemaString       = form["txtThemastring"],
            };
            var          roleManager = new RoleManager <IdentityRole>(new RoleStore <IdentityRole>(PolitiekeBarometerContext.Create()));
            IdentityRole adminRole   = new IdentityRole("Admin" + deelplatformURL);

            roleManager.Create(adminRole);
            IPlatformManager platformManager = new PlatformManager();

            platformManager.createDeelplatform(deelplatform);

            return(RedirectToAction("LijstDeelplatformen"));
        }
예제 #20
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            IPlatformManager platformManager = new PlatformManager();
            Uri url = HttpContext.Current.Request.Url;

            filterContext.RouteData.Values.Remove("deelplatform");
            string[]     segments        = url.AbsolutePath.Split('/');
            string       deelplatformURL = segments[1];
            string       action          = "";
            Deelplatform deelplatform    = platformManager.getDeelplatformByNaam(deelplatformURL);

            if (segments.Length > 2)
            {
                action = segments[2];
            }
            if (deelplatformURL == "pb")
            {
                if (url.AbsolutePath != "/pb/Home/Index")
                {
                    filterContext.Result = new RedirectResult("/pb/Home/Index");
                }
            }
            else
            {
                if (deelplatform == null)
                {
                    filterContext.Result = new RedirectResult("/pb/Home/Index");
                }
                else
                {
                    if (action == "" || action == "Home")
                    {
                        filterContext.Result = new RedirectResult("/pb/Home/Index");
                    }
                    else
                    {
                        filterContext.RouteData.Values.Add("deelplatform", deelplatformURL);

                        base.OnActionExecuting(filterContext);
                    }
                }
            }
        }
예제 #21
0
        private static async Task UpdateAsync()
        {
            UnitOfWorkManager uowManager       = new UnitOfWorkManager();
            IElementManager   elementManager   = new ElementManager(uowManager);
            IDashboardManager dashboardManager = new DashboardManager(uowManager);
            IPlatformManager  platformManager  = new PlatformManager(uowManager);
            IPostManager      postManager      = new PostManager(uowManager);
            DateTime          lastUpdate       = Platform.lastUpdate;
            Deelplatform      deelplatform     = platformManager.getDeelplatformByNaam("Politiek");

            string responseString = await postManager.updatePosts(Platform.lastUpdate);

            postManager.addJSONPosts(responseString);
            postManager.deleteOldPosts();

            elementManager.setTrendingElementen(deelplatform);
            dashboardManager.sendAlerts();
            Platform.refreshTimer.Interval = Platform.interval.TotalMilliseconds;

            Platform.lastUpdate = DateTime.Now;
            uowManager.Save();
        }
 public List <Thema> getAllThemas(Deelplatform deelplatform)
 {
     return(context.Themas.Where(t => t.Deelplatform.Id == deelplatform.Id).ToList());
 }
        public void deleteDeelplatform(Deelplatform deelplatform)
        {
            initNonExistingRepo();

            platformRepository.deleteDeelplatform(deelplatform);
        }
 public void CreateDeelplatform(Deelplatform d)
 {
     ctx.DeelPlatformen.Add(d);
     ctx.SaveChanges();
 }
 public void deleteAllPersonen(Deelplatform deelplatform)
 {
     context.Personen.RemoveRange(context.Personen.Where(p => p.Deelplatform.Id == deelplatform.Id));
     context.SaveChanges();
 }
예제 #26
0
 public Deelplatform ChangeDeelplatform(Deelplatform changedDeelplatform)
 {
     initNonExistingRepo();
     return(platformRepository.UpdateDeelplatform(changedDeelplatform));
 }
 public void createDeelplatform(Deelplatform deelplatform)
 {
     context.Deelplatformen.Add(deelplatform);
     context.SaveChanges();
 }
 public IEnumerable <Persoon> getAllPersonen(Deelplatform deelplatform)
 {
     return(context.Personen.Where(p => p.Deelplatform.Id == deelplatform.Id).Include(p => p.Organisatie).Include("Organisatie"));
 }
 public void deleteDeelplatform(Deelplatform deelplatform)
 {
     context.Deelplatformen.Remove(deelplatform);
     context.SaveChanges();
 }
예제 #30
0
 public void AddDeelplatform(Deelplatform newPlatform)
 {
     initNonExistingRepo();
     platformRepository.CreateDeelplatform(newPlatform);
 }