public ActionResult FunctiesToekennen(LidFunctiesModel model, int id, int groepID) { // TODO (#1036): Dit moet een atomaire operatie zijn, om concurrencyproblemen te vermijden. try { ServiceHelper.CallService <ILedenService>(l => l.FunctiesVervangen(id, model.FunctieIDs)); VeelGebruikt.FunctieProblemenResetten(groepID); TempData["succes"] = Resources.WijzigingenOpgeslagenFeedback; } catch (FaultException <FoutNummerFault> ex) { var lidInfo = ServiceHelper.CallService <ILedenService, PersoonLidInfo>(svc => svc.DetailsOphalen(id)); string naam = lidInfo.PersoonDetail.VolledigeNaam; string persoonlijk = lidInfo.PersoonDetail.Geslacht == GeslachtsType.Vrouw ? "haar" : "hem"; string bezittelijk = lidInfo.PersoonDetail.Geslacht == GeslachtsType.Vrouw ? "haar" : "zijn"; switch (ex.Detail.FoutNummer) { case FoutNummer.EMailVerplicht: TempData["fout"] = String.Format(Resources.EmailVoorContactOntbreekt, naam, persoonlijk); break; case FoutNummer.ContactMoetNieuwsBriefKrijgen: TempData["fout"] = String.Format(Resources.ContactMoetNieuwsBriefKrijgen, naam, bezittelijk); break; default: throw; } } return(RedirectToAction("Bewerken", "Personen", new { groepID, id = model.Persoon.GelieerdePersoonID })); }
public JsonResult TypeToggle(int id, int groepID) { var nieuwLidId = 0; // TODO (#1812): Feedback van callbackfunctie standaardiseren. try { nieuwLidId = ServiceHelper.CallService <ILedenService, int>(svc => svc.TypeToggle(id)); VeelGebruikt.LedenProblemenResetten(groepID); VeelGebruikt.FunctieProblemenResetten(groepID); } catch (FaultException <FoutNummerFault> ex) { return(Json("{\"fout\" : \"" + ex.Message + "\"}")); // moet met strip tags?? } return(Json("{ \"succes\" : \"" + nieuwLidId + "\"}")); }
/// <summary> /// Schrijft via de backend de gelieerde personen met gegeven <paramref name="gelieerdePersoonIDs"/> uit /// uit de groep met gegeven <paramref name="groepID"/>. /// </summary> /// <param name="gelieerdePersoonIDs">ID's uit te schrijven gelieerde personen</param> /// <param name="groepID">ID van groep waarvoor uit te schrijven</param> /// <param name="succesboodschap">Feedback die gegeven zal worden bij succes</param> protected void GelieerdePersonenUitschrijven(IList <int> gelieerdePersoonIDs, int groepID, string succesboodschap) { // Ik vind het een beetje vreemd dat het succesbericht hier een parameter is. var fouten = String.Empty; // TODO (#1035): fouten opvangen ServiceHelper.CallService <ILedenService>(l => l.Uitschrijven(gelieerdePersoonIDs, out fouten)); // TODO (#1035): beter manier om problemen op te vangen dan via een string if (fouten == String.Empty) { TempData["succes"] = succesboodschap; VeelGebruikt.FunctieProblemenResetten(groepID); VeelGebruikt.LedenProblemenResetten(groepID); } else { // TODO (#1035): vermijden dat output van de back-end rechtstreeks zichtbaar wordt voor de user. TempData["fout"] = fouten; } }