/*public ActionResult Delete()
        {
            return View();
        }*/

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

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

            try
            {
                var gebruiker = _gebruikerRepository.FindById(id);

                if (gebruiker != null)
                {
                    string type = gebruiker.GetType().ToString();
                    var dvm = new GebruikerViewModel.DetailViewModel(gebruiker.Id, gebruiker.Naam, gebruiker.Voornaam,
                        gebruiker.Gebruikersnaam, gebruiker.GetLeefgroepNaam(), gebruiker.GetLeefgroepAdres(), gebruiker.GetLeefgroepGemeente(), type, gebruiker.ImageUrl);

                    return View(dvm);
                }
                throw new NullReferenceException();
            }
            catch (NullReferenceException e)
            {
                ModelState.AddModelError("", e.Message);
                return RedirectToAction("AdminIndex");
            }

        }
        public ActionResult Details(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);

                if (gebruiker != null)
                {
                    var type = _gebruikerRepository.FindById((int)Session["gebruiker"]).GetType().Name;
                    var dvm = new GebruikerViewModel.DetailViewModel(gebruiker.Id, gebruiker.Naam, gebruiker.Voornaam,
                        gebruiker.Gebruikersnaam, gebruiker.GetLeefgroepNaam(),
                        gebruiker.GetLeefgroepAdres(), gebruiker.GetLeefgroepGemeente(), type, gebruiker.ImageUrl);

                    if (gebruiker is Opvoeder)
                    {
                        Opvoeder opvoeder = (Opvoeder)gebruiker;
                        dvm.IsStagair = opvoeder.IsStagair;

                        List<Gebruiker> clients = _gebruikerRepository.FindAllClients().Where(c => c.Opvangtehuis.Id == opvoeder.Opvangtehuis.Id).ToList();
                        foreach (var client in clients)
                        {
                            dvm.AddClient(client.GiveFullName());
                        }
                    }

                    if (gebruiker is Client)
                    {
                        var client = (Client)gebruiker;
                        foreach (var s in client.GetAppliedSancties())
                        {
                            dvm.AddSanctie(new GebruikerViewModel.SanctieViewModel(s.Rede, s.BeginDatum, s.EindDatum,
                                s.GetstrafNaam()));
                        }

                        foreach (var track in client.GetTimeTrackList())
                        {
                            dvm.AddTimeTrack(new GebruikerViewModel.TimeTrackerViewModel(track.Aanmelden));
                        }
                    }
                    return View("Details", dvm);
                }

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

            }

            return View();
        }