/// <summary>
        /// Toont de view om een functie te bewerken
        /// </summary>
        /// <param name="groepID">ID van de actieve groep</param>
        /// <param name="id">ID van de te bewerken functie</param>
        /// <returns></returns>
        public ActionResult Bewerken(int groepID, int id)
        {
            var model = new FunctieModel();

            BaseModelInit(model, groepID);
            model.HuidigeFunctie =
                ServiceHelper.CallService <IGroepenService, FunctieDetail>(svc => svc.FunctieOphalen(id));

            return(View(model));
        }
        public ActionResult Bewerken(FunctieModel model, int groepID)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    ServiceHelper.CallService <IGroepenService>(svc => svc.FunctieBewerken(model.HuidigeFunctie));
                }
                catch (FaultException <BestaatAlFault <FunctieInfo> > ex)
                {
                    BaseModelInit(model, groepID);

                    if (String.Compare(ex.Detail.Bestaande.Code, model.HuidigeFunctie.Code, StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        ModelState.AddModelError(
                            "HuidigeFunctie.Code",
                            String.Format(
                                Properties.Resources.FunctieCodeBestaatAl,
                                ex.Detail.Bestaande.Code,
                                ex.Detail.Bestaande.Naam));
                    }
                    else if (
                        String.Compare(ex.Detail.Bestaande.Naam, model.HuidigeFunctie.Naam,
                                       StringComparison.OrdinalIgnoreCase) == 0)
                    {
                        ModelState.AddModelError(
                            "HuidigeFunctie.Naam",
                            String.Format(
                                Properties.Resources.FunctieNaamBestaatAl,
                                ex.Detail.Bestaande.Code,
                                ex.Detail.Bestaande.Naam));
                    }
                    else
                    {
                        // Geen idee wat er mis is. Throw.
                        throw;
                    }

                    model.Titel = "Functie aanpassen";
                    return(View(model)); // FIXME only reloads part of the previous page
                }
                return(RedirectToAction("Functies", new { Controller = "Groep", groepID = model.GroepID }));
            }
            else
            {
                BaseModelInit(model, groepID);
                model.Titel = "Functie aanpassen";
                return(View(model)); // FIXME only reloads part of the previous page
            }
        }