// 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)); }
// 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)); }