public ActionResult Error() { StemmingenListVM stemmingenlistVM = new StemmingenListVM(); string title = "ERROR!"; string msg = ""; string level = ""; if (TempData.ContainsKey("BCmessage")) { msg = TempData["BCmessage"].ToString(); } else { msg = "Unknown error"; } if (TempData.ContainsKey("BCerrorlevel")) { level = TempData["BCerrorlevel"].ToString(); } else { level = stemmingenlistVM.MessageSection.Error; } stemmingenlistVM.MessageSection.SetMessage(title, level, msg); return(View(stemmingenlistVM)); }
public ActionResult DeleteConfirmed(string wetid, DateTime stemdatum) { StemmingenListVM stemmingenlistVM = new StemmingenListVM(); if ((wetid == null) || (stemdatum == null)) { TempData["BCmessage"] = "Specificeer een geldige Wet ID en stemdatum!"; TempData["BCerrorlevel"] = stemmingenlistVM.MessageSection.Error; return(RedirectToAction("Error")); } var query = (from s in db.Stemmingen where ((s.WetID == wetid) && (s.StemDatum == stemdatum)) select s).ToList(); if (query.Count == 0) { TempData["BCmessage"] = "Stemming voor Wet ID '" + wetid.Trim() + "' + op datum " + stemdatum.ToString("dd-MMMM-yyyy") + " is niet gevonden"; TempData["BCerrorlevel"] = stemmingenlistVM.MessageSection.Error; return(RedirectToAction("Error")); } db.Stemmingen.RemoveRange(db.Stemmingen.Where(c => c.WetID == wetid && c.StemDatum == stemdatum)); db.SaveChanges(); TempData["BCmessage"] = "Stemming voor wet '" + wetid.Trim() + "' op datum " + stemdatum.ToString("dd-MMMM-yyyy") + " is succesvol verwijderd"; TempData["BCerrorlevel"] = stemmingenlistVM.MessageSection.Info; return(RedirectToAction("Index")); }
// GET: Stemmingen public ActionResult Index() { StemmingenListVM stemmingenlistvm = new StemmingenListVM(); string msg = "Selecteer een bewerking op een stemming of voeg een stemming toe"; string level = stemmingenlistvm.MessageSection.Info; string title = "Overzicht S T E M M I N G E N "; var query = from s in db.Stemmingen group s by new { s.WetID, s.StemDatum } into grp select new { 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) } into rj1 join w in db.Wetten on rj1.WetID equals w.WetID into rjoin2 from rj2 in rjoin2 select new StemObject { PartijID = "** ALL **", WetID = rj1.WetID, StemDatum = rj1.StemDatum, Voor = rj1.Voor, Tegen = rj1.Tegen, Blanco = rj1.Blanco, WetLink = rj2.WetLink, WetNaam = rj2.WetNaam, WetOmschrijving = rj2.WetOmschrijving } ; stemmingenlistvm.StemLijst = query.ToList(); if (stemmingenlistvm.StemLijst.Count == 0) { level = stemmingenlistvm.MessageSection.Warning; msg = "Geen stemmingen gevonden"; } if (TempData.ContainsKey("BCmessage")) { msg = TempData["BCmessage"].ToString(); } if (TempData.ContainsKey("BCerrorlevel")) { level = TempData["BCerrorlevel"].ToString(); } stemmingenlistvm.MessageSection.SetMessage(title, level, msg); return(View(stemmingenlistvm)); }
// We get here after prompting for a date public ActionResult Create(StemmingenListVM stemmingenlistVM) { stemmingenlistVM = GetStemmingData(stemmingenlistVM); if ((stemmingenlistVM.ModelOk) || (stemmingenlistVM.ZetelsOk)) { ModelState.Clear(); return(View("CreatEdit", stemmingenlistVM)); } else { return(View(stemmingenlistVM)); } }
// GET: Stemmingen/Details/5 public ActionResult Details(string wetid, DateTime stemdatum) { StemmingenListVM stemmingenVM = new StemmingenListVM(); string title = "Details"; string level = stemmingenVM.MessageSection.Info; string msg = "Stemverdeling bij deze wet: "; if ((wetid == null) || (stemdatum == null)) { TempData["BCmessage"] = "Specificeer een geldige Wet + Stemdatum"; TempData["BCerrorlevel"] = stemmingenVM.MessageSection.Error; return(RedirectToAction("Error")); } // Fill the View Model var query = from s in db.Stemmingen where ((s.WetID == wetid) && (s.StemDatum == stemdatum)) select new { PartijID = s.PartijID, WetID = s.WetID, StemDatum = s.StemDatum, Voor = s.Voor, Tegen = s.Tegen, Blanco = s.Blanco } into rj1 join w in db.Wetten on rj1.WetID equals w.WetID into rjoin2 from rj2 in rjoin2 select new StemObject { PartijID = rj1.PartijID, WetID = rj1.WetID, StemDatum = rj1.StemDatum, Voor = rj1.Voor, Tegen = rj1.Tegen, Blanco = rj1.Blanco, WetLink = rj2.WetLink, WetType = rj2.WetType, WetNaam = rj2.WetNaam, WetOmschrijving = rj2.WetOmschrijving } ; stemmingenVM.StemLijst = query.ToList(); if (stemmingenVM.StemLijst.Count == 0) { level = stemmingenVM.MessageSection.Warning; msg = "Geen stemmingen gevonden"; } if (TempData.ContainsKey("BCmessage")) { msg = TempData["BCmessage"].ToString(); } if (TempData.ContainsKey("BCerrorlevel")) { level = TempData["BCerrorlevel"].ToString(); } stemmingenVM.MessageSection.SetMessage(title, level, msg); return(View(stemmingenVM)); }
private StemmingenListVM GetStemmingData(StemmingenListVM stemmingenlistVM) { string level = " "; string msg = " "; string title = " "; DateTime stemdatum = stemmingenlistVM.StemDatum; string wetid = stemmingenlistVM.WetID; // Date + Wetid are given, get from the database what's there already var wetten = db.Wetten.Find(wetid); if (wetten == null) { //return stemmingenlistVM; TempData["BCmessage"] = "Wet '" + wetid.Trim() + "' is onbekend..."; TempData["BCerrorlevel"] = stemmingenlistVM.MessageSection.Error; RedirectToAction("Error"); } // Determine which parties were active at that time var query1 = from p in db.Partijen join j1 in db.PartijZetels on p.PartijID equals j1.PartijID where ((j1.VanDatum <= stemdatum) && (j1.TotDatum >= stemdatum)) select new { p.PartijID, p.PartijNaam, j1.AantalZetels, j1.VanDatum, j1.TotDatum }; var actievepartijen = query1.ToList(); stemmingenlistVM.ModelOk = true; if (actievepartijen.Count == 0) { level = stemmingenlistVM.MessageSection.Error; msg = "Op de gegeven datum zijn geen partijen actief in de Tweede Kamer"; stemmingenlistVM.MessageSection.SetMessage(title, level, msg); StemObject so = new StemObject { WetID = wetten.WetID, WetNaam = wetten.WetNaam, WetLink = wetten.WetLink, WetOmschrijving = wetten.WetOmschrijving, WetType = wetten.WetType }; List <StemObject> sl = new List <StemObject>(); sl.Add(so); stemmingenlistVM.Fill(sl); stemmingenlistVM.ModelOk = false; stemmingenlistVM.ZetelsOk = false; return(stemmingenlistVM); } // Check if the active parties have exactly 150 seats in total stemmingenlistVM.ZetelsOk = true; int totalseats = 0; foreach (var activeparty in actievepartijen) { totalseats = totalseats + activeparty.AantalZetels; } if (totalseats != 150) { level = stemmingenlistVM.MessageSection.Error; msg = "Op de opgegeven datum hebben de gezamenlijke partijen " + totalseats.ToString() + " zetels i.p.v. 150. Corrigeer dit eerst!"; stemmingenlistVM.MessageSection.SetMessage(title, level, msg); stemmingenlistVM.ZetelsOk = false; } var query3 = from s in db.Stemmingen where (s.WetID == wetid) && (s.StemDatum == stemdatum) select new { PartijID = s.PartijID, StemDatum = s.StemDatum, Voor = s.Voor, Tegen = s.Tegen, Blanco = s.Blanco }; var bestaandestemmingen = query3.ToList(); var combine = from a in actievepartijen join b in bestaandestemmingen on a.PartijID equals b.PartijID into joinedList from sub in joinedList.DefaultIfEmpty() select new StemObject { StemDatum = stemdatum, WetID = wetten.WetID, WetLink = wetten.WetLink, WetNaam = wetten.WetNaam, WetType = wetten.WetType, WetOmschrijving = wetten.WetOmschrijving, PartijID = a.PartijID, PartijNaam = a.PartijNaam, PartijZetels = a.AantalZetels, Voor = sub == null ? 0 : sub.Voor, Tegen = sub == null ? 0 : sub.Tegen, Blanco = sub == null ? 0 : sub.Blanco }; List <StemObject> vmlist = combine.ToList(); stemmingenlistVM.Fill(vmlist); int tot = stemmingenlistVM.TotaalBlanco + stemmingenlistVM.TotaalVoor + stemmingenlistVM.TotaalTegen; if (tot == 0) { title = "Stemming TOEVOEGEN"; } else { title = "BESTAANDE stemming WIJZIGEN"; } if (stemmingenlistVM.ZetelsOk) { level = stemmingenlistVM.MessageSection.Info; msg = "Vul de stemgegevens in voor elke partij bij deze wet en selecteer OPSLAAN"; stemmingenlistVM.MessageSection.SetMessage(title, level, msg); } return(stemmingenlistVM); }
public ActionResult CreatEdit(StemmingenListVM stemmingenlistVM) { string level = ""; string msg = " "; string title = "BESTAANDE stemming WIJZIGEN"; if (ModelState.IsValid) { bool foutje = false; // Input validation int totaalzetels = 0; foreach (StemObject sobj in stemmingenlistVM.StemLijst) { totaalzetels = totaalzetels + sobj.PartijZetels; sobj.Error = "fout"; sobj.Message = " "; if (sobj.PartijZetels != (sobj.Tegen + sobj.Voor + sobj.Blanco)) { sobj.Error = "fout"; foutje = true; sobj.Message = "Totaal aantal stemmen moet " + sobj.PartijZetels.ToString() + " zijn"; msg = "Bij één of meer partijen klopt het aantal uitgebrachte stemmen niet met het totaal"; level = stemmingenlistVM.MessageSection.Error; } else { sobj.Error = "ok"; sobj.Message = " "; } } if (totaalzetels != 150) { level = stemmingenlistVM.MessageSection.Error; msg = "Totaal aantal stemmen moet uitkomen op 150 (nu: " + totaalzetels.ToString() + ")"; foutje = true; } if (foutje) { stemmingenlistVM.MessageSection.SetMessage(title, level, msg); ModelState.Clear(); return(View(stemmingenlistVM)); } } else { TempData["BCmessage"] = "ModelState ERROR"; TempData["BCerrorlevel"] = stemmingenlistVM.MessageSection.Error; return(RedirectToAction("Error")); } // ok, now update the database string mywetid = stemmingenlistVM.StemLijst[0].WetID.Trim(); DateTime mystemdatum = stemmingenlistVM.StemLijst[0].StemDatum; db.Stemmingen.RemoveRange(db.Stemmingen.Where(c => c.WetID == mywetid && c.StemDatum == mystemdatum)); db.SaveChanges(); foreach (StemObject so in stemmingenlistVM.StemLijst) { Stemmingen stemmingen = new Stemmingen { PartijID = so.PartijID, WetID = so.WetID, StemDatum = so.StemDatum, Voor = so.Voor, Tegen = so.Tegen, Blanco = so.Blanco }; db.Stemmingen.Add(stemmingen); } db.SaveChanges(); TempData["BCmessage"] = "Stemming " + mywetid + " is gewijzigd"; TempData["BCerrorlevel"] = stemmingenlistVM.MessageSection.Info; return(RedirectToAction("Details", new { WetID = mywetid, StemDatum = mystemdatum })); }
// GET: Stemmingen/Create/5 public ActionResult Create(string wetid, DateTime stemdatum) { StemmingenListVM stemmingenlistVM = new StemmingenListVM(); stemmingenlistVM.WetID = wetid; stemmingenlistVM.StemDatum = stemdatum; string title = "Stemming toevoegen of wijzigen"; string msg = " "; string level = " "; if (wetid == null) { TempData["BCmessage"] = "Specificeer een geldige WetID"; TempData["BCerrorlevel"] = stemmingenlistVM.MessageSection.Error; return(RedirectToAction("Error")); } Wetten wet = db.Wetten.Find(wetid); if (wet == null) { TempData["BCmessage"] = "WetID '" + wetid.Trim() + "' is niet gevonden"; TempData["BCerrorlevel"] = stemmingenlistVM.MessageSection.Error; return(RedirectToAction("Error")); } // if date not given, prompt for it if (stemdatum == DateTime.MinValue) { msg = "Specificeer de stemdatum voor deze wet"; level = stemmingenlistVM.MessageSection.Info; stemmingenlistVM.WetID = wetid; stemmingenlistVM.StemDatum = DateTime.Now; StemObject so = new StemObject { WetID = wet.WetID, WetNaam = wet.WetNaam, WetType = wet.WetType, WetLink = wet.WetLink, WetOmschrijving = wet.WetOmschrijving }; List <StemObject> sl = new List <StemObject>(); sl.Add(so); stemmingenlistVM.Fill(sl); stemmingenlistVM.MessageSection.SetMessage(title, level, msg); return(View("Create", stemmingenlistVM)); } else // Date is given, so present directly the edit screen for Stemming { stemmingenlistVM = GetStemmingData(stemmingenlistVM); if ((stemmingenlistVM.ModelOk) || (stemmingenlistVM.ZetelsOk)) { return(View("CreatEdit", stemmingenlistVM)); } else { return(View(stemmingenlistVM)); } } }