//Reformat needed
        public ActionResult WeekMenu(int week)
        {
            if (UserStillLoggedIn() || (_gebruikerRepository.FindById((int)Session["gebruiker"]) is Admin))
            {
                return ReturnToLogin();
            }

            try
            {
                var opvangtehuis = _gebruikerRepository.FindById((int)Session["gebruiker"]).Opvangtehuis;
                Menu menu;
                menu = week != 0 ? opvangtehuis.Menus.FirstOrDefault(m => m.Week == week) : opvangtehuis.Menus.FirstOrDefault(m => m.Week == GetWeekVanHetJaar(DateTime.Today));
                string typeGebruiker = _gebruikerRepository.FindById((int)Session["gebruiker"]).GetType().FullName;

                if (menu == null)
                {
                    return View(new OpvangtehuisViewModel.MenuViewModel("Er is nog geen menu gemaakt deze week", typeGebruiker));
                }

                var mvm = new OpvangtehuisViewModel.MenuViewModel
                {
                    BeginWeek = menu.BegindagWeek,
                    Week = menu.Week,
                    TypeGebruiker = typeGebruiker,
                    MaandagViewModel = new OpvangtehuisViewModel.CreateMenuItemMaandagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Dessert
                    },
                    DinsdagViewModel = new OpvangtehuisViewModel.CreateMenuItemDinsdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Dessert
                    },
                    WoensdagViewModel = new OpvangtehuisViewModel.CreateMenuItemWoensdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Dessert
                    },
                    DonderdagViewModel = new OpvangtehuisViewModel.CreateMenuItemDonderdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Dessert
                    },
                    VrijdagViewModel = new OpvangtehuisViewModel.CreateMenuItemVrijdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Dessert
                    },
                    ZaterdagViewModel = new OpvangtehuisViewModel.CreateMenuItemZaterdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Dessert
                    },
                    ZondagViewModel = new OpvangtehuisViewModel.CreateMenuItemZondagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Dessert
                    }
                };
                return View(mvm);
            }
            catch (NullReferenceException ex)
            {
                return ReturnToLogin();
            }

            return View();
        }
        public ActionResult CreateMenu()
        {
            if (UserStillLoggedIn())
            {
                return ReturnToLogin();
            }

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

            var mvm = new OpvangtehuisViewModel.MenuViewModel();
            return View(mvm);
        }
        //Extreem slordige code, moet later herwerkt worden
        public ActionResult EditMenu(int id)
        {
            try
            {
                if (UserStillLoggedIn() || !(_gebruikerRepository.FindById((int)Session["gebruiker"]) is Opvoeder))
                {
                    return ReturnToLogin();
                }

                var opvangtehuis = _gebruikerRepository.FindById((int)Session["gebruiker"]).Opvangtehuis;

                var menu = opvangtehuis.Menus.FirstOrDefault(m => m.Id == id);

                var mvm = new OpvangtehuisViewModel.MenuViewModel
                {
                    Id = id,
                    BeginWeek = menu.BegindagWeek,
                    Week = menu.Week,
                    MaandagViewModel = new OpvangtehuisViewModel.CreateMenuItemMaandagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Dessert
                    },
                    DinsdagViewModel = new OpvangtehuisViewModel.CreateMenuItemDinsdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Dessert
                    },
                    WoensdagViewModel = new OpvangtehuisViewModel.CreateMenuItemWoensdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Dessert
                    },
                    DonderdagViewModel = new OpvangtehuisViewModel.CreateMenuItemDonderdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Dessert
                    },
                    VrijdagViewModel = new OpvangtehuisViewModel.CreateMenuItemVrijdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Dessert
                    },

                    ZaterdagViewModel = new OpvangtehuisViewModel.CreateMenuItemZaterdagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Dessert
                    },

                    ZondagViewModel = new OpvangtehuisViewModel.CreateMenuItemZondagViewModel()
                    {
                        Dag = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Dag,
                        Hoofdgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Hoofdgerecht,
                        Voorgerecht = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Voorgerecht,
                        Dessert = menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Dessert
                    }
                };

                return View("CreateMenu", mvm);
            }
            catch (NullReferenceException e)
            {
                return RedirectToAction("OpvoederIndex", "Gebruiker");
            }
            catch (Exception e)
            {
                ModelState.AddModelError("", e.Message);
                return View("Error");
            }
        }
        public ActionResult MenuIndex()
        {
            if (UserStillLoggedIn() || !(_gebruikerRepository.FindById((int)Session["gebruiker"]) is Opvoeder))
            {
                return ReturnToLogin();
            }

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

            var opvangtehuis = _gebruikerRepository.FindById((int)Session["gebruiker"]).Opvangtehuis;
            var mlvm = new OpvangtehuisViewModel.MenuListViewModel();

            foreach (var m in opvangtehuis.GetMenus())
            {
                var mvm = new OpvangtehuisViewModel.MenuViewModel(m.Id, m.Week, m.BegindagWeek, m.EinddagWeek);

                mlvm.AddMenu(mvm);
            }

            return View(mlvm);
        }