/// <summary> /// Toont de view om een afdeling aan te passen, gegeven een afdelingsID /// </summary> /// <param name="groepID">ID van de groep die de bewerking uitvoert</param> /// <param name="afdelingID"></param> /// <returns></returns> public ActionResult Bewerken(int groepID, int afdelingID) { var model = new AfdelingInfoModel(); BaseModelInit(model, groepID); model.Info = ServiceHelper.CallService <IGroepenService, AfdelingInfo>(svc => svc.AfdelingOphalen(afdelingID)); model.Titel = "Afdeling bewerken"; return(View("Afdeling", model)); }
public ActionResult Nieuw(int groepID) { var model = new AfdelingInfoModel(); BaseModelInit(model, groepID); model.Info = new AfdelingInfo(); model.Titel = Properties.Resources.NieuweAfdelingTitel; return(View("Nieuw", model)); }
/// <summary> /// Toont de view die toelaat een nieuwe afdeling te maken. /// </summary> /// <param name="groepID">Groep waarvoor de afdeling gemaakt moet worden</param> /// <returns>De view die toelaat een nieuwe afdeling te maken.</returns> public ActionResult NieuweAfdelingMaken(int groepID) { var model = new AfdelingInfoModel { Titel = Properties.Resources.NieuweAfdelingTitel, Info = new AfdelingInfo() }; BaseModelInit(model, groepID); return(View("NieuweAfdelingMaken", model)); }
public ActionResult NieuweAfdelingMaken(AfdelingInfoModel model, int groepID) { model.Titel = Properties.Resources.NieuweAfdelingTitel; BaseModelInit(model, groepID); if (!ModelState.IsValid) { // Modelstate bevat ongeldige waarden; toon de pagina opnieuw return(View(model)); } try { ServiceHelper.CallService <IGroepenService>(e => e.AfdelingAanmaken(groepID, model.Info.Naam, model.Info.Afkorting)); TempData["succes"] = Properties.Resources.WijzigingenOpgeslagenFeedback; return(RedirectToAction("Index")); } catch (FaultException <BestaatAlFault <AfdelingInfo> > ex) { if (string.Compare(ex.Detail.Bestaande.Afkorting, model.Info.Afkorting, true) == 0) { ModelState.AddModelError( "Info.Afkorting", string.Format(Properties.Resources.AfdelingsCodeBestaatAl, ex.Detail.Bestaande.Afkorting, ex.Detail.Bestaande.Naam)); } else if (string.Compare(ex.Detail.Bestaande.Naam, model.Info.Naam, true) == 0) { ModelState.AddModelError( "Info.Naam", string.Format( Properties.Resources.AfdelingsNaamBestaatAl, ex.Detail.Bestaande.Afkorting, ex.Detail.Bestaande.Naam)); } else { // Mag niet gebeuren ModelState.AddModelError("Er heeft zich een fout voorgedaan, gelieve contact op te nemen met het secretariaat.", ex); Debug.Assert(false); } return(View(model)); } }
public ActionResult Bewerken(AfdelingInfoModel model, int groepID) { BaseModelInit(model, groepID); try { ServiceHelper.CallService <IGroepenService>(e => e.AfdelingBewaren(model.Info)); TempData["succes"] = Properties.Resources.WijzigingenOpgeslagenFeedback; return(RedirectToAction("Index")); } catch (Exception ex) { // TODO dit kan beter TempData["fout"] = ex.Message; model.Info = ServiceHelper.CallService <IGroepenService, AfdelingInfo>(svc => svc.AfdelingOphalen(model.Info.ID)); model.Titel = "Afdeling bewerken"; return(View("Afdeling", model)); } }
public ActionResult Nieuw(AfdelingInfoModel model, int groepID) { model.Titel = Properties.Resources.NieuweAfdelingTitel; BaseModelInit(model, groepID); if (ModelState.IsValid) { try { ServiceHelper.CallService <IGroepenService>(e => e.AfdelingAanmaken(groepID, model.Info.Naam, model.Info.Afkorting)); TempData["succes"] = Properties.Resources.WijzigingenOpgeslagenFeedback; // (er wordt hier geredirect ipv de view te tonen, zodat je bij een 'refresh' niet de vraag krijgt // of je de gegevens opnieuw wil posten.) return(RedirectToAction("Afdelingen", new { Controller = "Groep", groepID = model.GroepID })); } catch (FaultException <BestaatAlFault <AfdelingInfo> > ex) { // Als de naam EN de afkorting van een afdeling al bestaan, dan hebben we graag twee // foutberichten. Vandaar het truukje met 'possible'. Maar dit vangt niet alle situaties op. // Als een nieuwe afdeling de naam heeft van bestaande afdeling A, en de code van bestaande // afdeling B, dan zul je enkel een exception krijgen op de afkorting, omdat de // BestaatAlException maar 1 object oplevert. var possible = false; if (String.Compare(ex.Detail.Bestaande.Afkorting, model.Info.Afkorting, StringComparison.OrdinalIgnoreCase) == 0) { possible = true; ModelState.AddModelError( "Info.Afkorting", string.Format( Properties.Resources.AfdelingsCodeBestaatAl, ex.Detail.Bestaande.Afkorting, ex.Detail.Bestaande.Naam)); } if (String.Compare(ex.Detail.Bestaande.Naam, model.Info.Naam, StringComparison.OrdinalIgnoreCase) == 0) { possible = true; ModelState.AddModelError( "Info.Naam", string.Format( Properties.Resources.AfdelingsNaamBestaatAl, ex.Detail.Bestaande.Afkorting, ex.Detail.Bestaande.Naam)); } if (!possible) { // Dit kan niet. Debug.Assert(false); } return(View(model));// FIXME only reloads part of the previous page } } else { // Modelstate bevat ongeldige waarden; toon de pagina opnieuw return(View(model));// FIXME only reloads part of the previous page } }