public void AddMenu(DateTime begindag)
 {
     var menu = new Menu
     {
         BegindagWeek = begindag
     };
     Menus.Add(menu);
 }
        public ActionResult CreateMenu(OpvangtehuisViewModel.MenuViewModel model)
        {
            if (UserStillLoggedIn() || !(_gebruikerRepository.FindById((int)Session["gebruiker"]) is Opvoeder))
            {
                return ReturnToLogin();
            }

            if (model.BeginWeek.DayOfWeek != DayOfWeek.Monday)
            {
                ModelState.AddModelError("", "De dag die gekozen is, is geen maandag");
                this.AddNotification("De dag die gekozen is, is geen maandag", NotificationType.ERROR);
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (model.Id <= 0)
                    {


                        var opvangtehuis = _gebruikerRepository.FindById((int)Session["gebruiker"]).Opvangtehuis;
                        if (opvangtehuis.FindMenuByDate(model.BeginWeek) == null)
                        {
                            var menu = new Menu(model.BeginWeek);

                            if (model.MenuImageUpload != null)
                            {
                                if (ImageIsValidType(model.MenuImageUpload))
                                {
                                    menu.ImageUrl = ImageUploadMenuAfbeelding(model.MenuImageUpload);
                                    opvangtehuis.AddMenu(menu);
                                    _opvangtehuisRepository.SaveChanges();
                                    this.AddNotification("De menu is aangemaakt", NotificationType.SUCCESS);
                                }
                                else
                                {
                                    this.AddNotification("Dit is geen foto", NotificationType.ERROR);
                                    ModelState.AddModelError("MenuImageUpload", "Dit is geen foto");
                                }

                            }

                            menu.AddMenuItem("Maandag", model.MaandagViewModel.Hoofdgerecht,
                                model.MaandagViewModel.Voorgerecht,
                                model.MaandagViewModel.Dessert);
                            menu.AddMenuItem("Dinsdag", model.DinsdagViewModel.Hoofdgerecht,
                                model.DinsdagViewModel.Voorgerecht,
                                model.DinsdagViewModel.Dessert);
                            menu.AddMenuItem("Woensdag", model.WoensdagViewModel.Hoofdgerecht,
                                model.WoensdagViewModel.Voorgerecht, model.WoensdagViewModel.Dessert);
                            menu.AddMenuItem("Donderdag", model.DonderdagViewModel.Hoofdgerecht,
                                model.DonderdagViewModel.Voorgerecht, model.DonderdagViewModel.Dessert);
                            menu.AddMenuItem("Vrijdag", model.VrijdagViewModel.Hoofdgerecht,
                                model.VrijdagViewModel.Voorgerecht,
                                model.VrijdagViewModel.Dessert);
                            menu.AddMenuItem("Zaterdag", model.VrijdagViewModel.Hoofdgerecht,
                                model.VrijdagViewModel.Voorgerecht,
                                model.VrijdagViewModel.Dessert);
                            menu.AddMenuItem("Zondag", model.VrijdagViewModel.Hoofdgerecht,
                                model.VrijdagViewModel.Voorgerecht,
                                model.VrijdagViewModel.Dessert);

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

                            this.AddNotification("De menu is aangemaakt", NotificationType.SUCCESS);
                        }
                        else
                        {
                            this.AddNotification("Er is al reeds een menu op deze dag", NotificationType.ERROR);
                            return RedirectToAction("CreateMenu");
                        }
                    }
                    else
                    {
                        var opvangtehuis = _gebruikerRepository.FindById((int)Session["gebruiker"]).Opvangtehuis;
                        if (opvangtehuis.FindMenuByDate(model.BeginWeek) == null)
                        {
                            var menu = opvangtehuis.Menus.FirstOrDefault(m => m.Id == model.Id);

                            menu.AanpassenBeginDatum(model.BeginWeek);

                            if (model.MenuImageUpload != null)
                            {
                                if (ImageIsValidType(model.MenuImageUpload))
                                {
                                    menu.ImageUrl = ImageUploadMenuAfbeelding(model.MenuImageUpload);
                                    opvangtehuis.AddMenu(menu);
                                    _opvangtehuisRepository.SaveChanges();
                                    this.AddNotification("De menu is aangemaakt", NotificationType.SUCCESS);

                                }
                                else
                                {
                                    ModelState.AddModelError("MenuImageUpload", "Dit is geen foto");
                                }

                            }

                            //Maandag
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Voorgerecht = model.MaandagViewModel.Voorgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Hoofdgerecht = model.MaandagViewModel.Hoofdgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Maandag").Dessert = model.MaandagViewModel.Dessert;

                            //Dinsdag
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Voorgerecht = model.DinsdagViewModel.Voorgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Hoofdgerecht = model.DinsdagViewModel.Hoofdgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Dinsdag").Dessert = model.DinsdagViewModel.Dessert;


                            //Woensdag
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Voorgerecht = model.WoensdagViewModel.Voorgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Hoofdgerecht = model.WoensdagViewModel.Hoofdgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Woensdag").Dessert = model.WoensdagViewModel.Dessert;


                            //Donderdag
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Voorgerecht = model.DonderdagViewModel.Voorgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Hoofdgerecht = model.DonderdagViewModel.Hoofdgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Donderdag").Dessert = model.DonderdagViewModel.Dessert;

                            //Vrijdag
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Voorgerecht = model.VrijdagViewModel.Voorgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Hoofdgerecht = model.VrijdagViewModel.Hoofdgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Vrijdag").Dessert = model.VrijdagViewModel.Dessert;

                            //Zaterdag
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Voorgerecht = model.ZaterdagViewModel.Voorgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Hoofdgerecht = model.ZaterdagViewModel.Hoofdgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zaterdag").Dessert = model.ZaterdagViewModel.Dessert;

                            //Zondag
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Voorgerecht = model.ZondagViewModel.Voorgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Hoofdgerecht = model.ZondagViewModel.Hoofdgerecht;
                            menu.MenuItems.FirstOrDefault(mi => mi.Dag == "Zondag").Dessert = model.ZondagViewModel.Dessert;

                            this.AddNotification("De menu is gewijzigd", NotificationType.SUCCESS);
                        }
                        else
                        {
                            this.AddNotification("Er is al reeds een menu op deze dag", NotificationType.ERROR);
                            return RedirectToAction("EditMenu", new {id = model.Id});
                        }
                    }
                    _opvangtehuisRepository.SaveChanges();
                    return RedirectToAction("MenuIndex");
                }
                catch (ApplicationException e)
                {
                    ModelState.AddModelError("", e.Message);
                }
                catch (Exception e)
                {
                    ModelState.AddModelError("", e.Message);
                    return View("Error");
                }
            }

            return RedirectToAction("CreateMenu");
        }
 public void AddMenu(Menu menu)
 {
     Menus.Add(menu);
 }