コード例 #1
0
        // GET: Wetten/Details/5
        public ActionResult Details(string WetID)
        {
            WettenVM wettenVM = new WettenVM();
            string   title    = "Details";
            string   level    = wettenVM.MessageSection.Info;
            string   msg      = "Wetgegevens en gekoppelde stemmingen en onderwerpen";

            if (WetID == null)
            {
                TempData["BCmessage"]    = "Specificeer een geldige Wet ID!";
                TempData["BCerrorlevel"] = wettenVM.MessageSection.Error;

                return(RedirectToAction("Error"));
            }
            // Perform outer join form Wetten, Wetsccope, Onderwerpen

            var query = from w in db.Wetten
                        where w.WetID == WetID
                        join s in db.WetScope on w.WetID equals s.WetID into ljoin1
                        from lj1 in ljoin1.DefaultIfEmpty()
                        join o in db.Onderwerpen on lj1.OnderwerpID equals o.OnderwerpID into ljoin2
                        from lj2 in ljoin2.DefaultIfEmpty()
                        select new WetObject
            {
                WetID           = w.WetID,
                WetNaam         = w.WetNaam,
                WetOmschrijving = w.WetOmschrijving,
                WetLink         = w.WetLink,
                WetType         = w.WetType,
                OnderwerpID     = lj1 == null ? "<geen>" : lj1.OnderwerpID,
                Toelichting     = lj1 == null ? "nvt" : lj1.Toelichting,
                Omschrijving    = lj2 == null ? "nvt" : lj2.Omschrijving
            }
            ;

            List <WetObject> q = query.ToList();

            if (q == null)
            {
                TempData["BCmessage"]    = "Wet ID " + WetID.Trim() + " is niet gevonden";
                TempData["BCerrorlevel"] = wettenVM.MessageSection.Error;

                return(RedirectToAction("Error"));
            }


            if (q[0].OnderwerpID == "<geen>")
            {
                msg   = "Deze wet heeft geen gekoppelde onderwerpen. Gebruik BEWERK om minstens één onderwerp te koppelen";
                level = "W";
            }

            if (TempData.ContainsKey("BCmessage"))
            {
                msg = TempData["BCmessage"].ToString();
            }
            if (TempData.ContainsKey("BCerrorlevel"))
            {
                level = TempData["BCerrorlevel"].ToString();
            }
            // Get Stemmingen for current Wet
            var st = from s in db.Stemmingen
                     where s.WetID == WetID
                     group s by new { s.WetID, s.StemDatum } into grp
                select new Stemming
            {
                WetID     = grp.Key.WetID,
                StemDatum = grp.Key.StemDatum,
                Voor      = grp.Sum(t => t.Voor),
                Tegen     = grp.Sum(t => t.Tegen),
                Blanco    = grp.Sum(t => t.Blanco)
            }
            ;

            wettenVM.Stemmingen = st.ToList();

            wettenVM.Fill(q);
            wettenVM.MessageSection.SetMessage(title, level, msg);

            return(View(wettenVM));
        }
コード例 #2
0
        // GET: Wetten/Edit/5
        public ActionResult Edit(string WetID)
        {
            WettenVM wettenVM = new WettenVM();
            string   title    = "Bewerken";
            string   level    = wettenVM.MessageSection.Info;
            string   msg      = "Bewerk deze wet en/of de gekoppelde onderwerpen en selecteer OPSLAAN";

            if (WetID == null)
            {
                TempData["BCmessage"]    = "Specificeer een geldige Wet ID!";
                TempData["BCerrorlevel"] = wettenVM.MessageSection.Error;

                return(RedirectToAction("Error"));
            }
            // Perform outer join form Wetten, Wetsccope, Onderwerpen

            var query = from w in db.Wetten
                        where w.WetID == WetID
                        join o in db.Onderwerpen on 1 equals 1 into ljoin2
                        from lj2 in ljoin2.DefaultIfEmpty()
                        join s in db.WetScope on
                        new { wi = w.WetID, ond = lj2.OnderwerpID } equals
            new { wi = s.WetID, ond = s.OnderwerpID } into ljoin1
            from lj1 in ljoin1.DefaultIfEmpty()
            select new WetObject
            {
                WetID           = w.WetID,
                WetNaam         = w.WetNaam,
                WetOmschrijving = w.WetOmschrijving,
                WetLink         = w.WetLink,
                WetType         = w.WetType,
                OnderwerpID     = lj2.OnderwerpID,
                Toelichting     = lj1 == null ? "" : lj1.Toelichting,
                Omschrijving    = lj2.Omschrijving
            }
            ;

            List <WetObject> q = query.ToList();

            if (q == null)
            {
                TempData["BCmessage"]    = "Wet ID " + WetID.Trim() + " is niet gevonden";
                TempData["BCerrorlevel"] = wettenVM.MessageSection.Error;

                return(RedirectToAction("Error"));
            }

            // Check of minimaal gekoppeld aan 1 onderwerp
            bool gekoppeld = false;

            foreach (WetObject wo in q)
            {
                if (!String.IsNullOrEmpty(wo.Toelichting))
                {
                    gekoppeld = true;
                }
            }
            if (!gekoppeld)
            {
                msg   = "Deze wet heeft geen gekoppelde onderwerpen. Vink er minimaal één aan!";
                level = "W";
            }

            // Get Stemmingen for current Wet
            var st = from s in db.Stemmingen
                     where s.WetID == WetID
                     group s by new { s.WetID, s.StemDatum } into grp
                select new Stemming
            {
                WetID     = grp.Key.WetID,
                StemDatum = grp.Key.StemDatum,
                Voor      = grp.Sum(t => t.Voor),
                Tegen     = grp.Sum(t => t.Tegen),
                Blanco    = grp.Sum(t => t.Blanco)
            }
            ;

            wettenVM.Stemmingen = st.ToList();

            wettenVM.Fill(q);
            wettenVM.MessageSection.SetMessage(title, level, msg);

            return(View(wettenVM));
        }