public ActionResult Edit(GebruikerViewModel.EditViewModel model)
        {
            if (UserStillLoggedIn() || _gebruikerRepository.FindById((int)Session["gebruiker"]) is Client)
            {
                return ReturnToLogin();
            }

            if (ModelState.IsValid)
            {
                try
                {
                    var gebruiker = _gebruikerRepository.FindById(model.Id);
                    gebruiker.EditGebruiker(model.Naam, model.Voornaam,
                        _opvangtehuisRepository.FindByName(model.GeselecteerdOpvangtehuisId),
                     ImageUploadProfielAfbeelding(model.Image));

                    _gebruikerRepository.UpdateGebruiker(gebruiker);
                    _gebruikerRepository.SaveChanges();

                    this.AddNotification("De gebruiker is aangepast", NotificationType.SUCCESS);

                    if (_gebruikerRepository.FindById((int)Session["gebruiker"]) is Admin)
                    {
                        return RedirectToAction("AdminIndex");
                    }

                    return RedirectToAction("OpvoederIndex");
                }
                catch (ApplicationException e)
                {
                    ModelState.AddModelError("", e.Message);
                }

            }

            var gebruiker1 = _gebruikerRepository.FindById(model.Id);
            var type = _gebruikerRepository.FindById((int)Session["gebruiker"]).GetType().Name;

            var evm = new GebruikerViewModel.EditViewModel(gebruiker1.Id, gebruiker1.Naam, gebruiker1.Voornaam,
                 gebruiker1.GetOpvangtehuisnaam(), type, gebruiker1.ImageUrl);

            if (_gebruikerRepository.FindById((int)Session["gebruiker"]) is Admin)
            {
                evm.SetOpvangtehuizen(_opvangtehuisRepository.FindAll().Select(oh => oh.Naam).ToList());
            }
            else
            {
                evm.AddOpvangtehuis(_gebruikerRepository.FindById((int)Session["gebruiker"]).GetOpvangtehuisnaam());
            }

            return View(evm);

        }
        public ActionResult Edit(int id)
        {
            if (UserStillLoggedIn() || _gebruikerRepository.FindById((int)Session["gebruiker"]) is Client)
            {
                return ReturnToLogin();
            }

            if (!Request.IsAuthenticated)
            {
                return View("Error");
            }

            try
            {
                var gebruiker = _gebruikerRepository.FindById(id);
                var type = _gebruikerRepository.FindById((int)Session["gebruiker"]).GetType().Name;

                var evm = new GebruikerViewModel.EditViewModel(gebruiker.Id, gebruiker.Naam, gebruiker.Voornaam,
                     gebruiker.GetOpvangtehuisnaam(), type, gebruiker.ImageUrl);

                if (_gebruikerRepository.FindById((int)Session["gebruiker"]) is Admin)
                {
                    evm.SetOpvangtehuizen(_opvangtehuisRepository.FindAll().Select(oh => oh.Naam).ToList());
                }
                else
                {
                    evm.AddOpvangtehuis(_gebruikerRepository.FindById((int)Session["gebruiker"]).GetOpvangtehuisnaam());
                }

                return View(evm);
            }
            catch (NullReferenceException e)
            {
                ModelState.AddModelError("", e.Message);
                if (_gebruikerRepository.FindById((int)Session["gebruiker"]) is Opvoeder)
                {
                    return RedirectToAction("OpvoederIndex");
                }
                if (_gebruikerRepository.FindById((int)Session["gebruiker"]) is Admin)
                {
                    return RedirectToAction("AdminIndex");
                }
            }
            return View();
        }