public void Build()
        {
            using (var context = new DinnerManagerContext("DinnerManager"))
            {
                // clear database
                foreach (var m in context.Meals)
                {
                    context.Meals.Remove(m);
                }
                foreach (var d in context.Dishes)
                {
                    context.Dishes.Remove(d);
                }

                var spaghetti = new DishBuilder().WithDescription("Annick's befaamde spaghetti")
                                                 .WithName("Spaghetti bolognaise")
                                                 .WithRating(5)
                                                 .Build();
                context.Dishes.Add(spaghetti);

                var visVidee = new DishBuilder().WithName("Vis videe")
                                                .Build();
                context.Dishes.Add(visVidee);

                var vispannetje = new DishBuilder().WithName("Vispannetje")
                                                   .Build();
                context.Dishes.Add(vispannetje);

                var couscous = new DishBuilder().WithName("Couscous met scampi's")
                                                .Build();
                context.Dishes.Add(couscous);

                var today = new MealBuilder().WithDate(DateTime.Now)
                                             .WithDish(visVidee)
                                             .Build();
                context.Meals.Add(today);

                var tomorrow = new MealBuilder().WithDate(DateTime.Now.AddDays(1))
                                                .WithDish(spaghetti)
                                                .Build();
                context.Meals.Add(tomorrow);

                var dayAfterTomorrow = new MealBuilder().WithDate(DateTime.Now.AddDays(2))
                                                        .WithDish(vispannetje)
                                                        .Build();
                context.Meals.Add(dayAfterTomorrow);

                var sameDayNextWeek = new MealBuilder().WithDate(DateTime.Now.AddDays(7))
                                                         .WithDish(couscous)
                                                         .Build();
                context.Meals.Add(sameDayNextWeek);

                var nextWeek = new MealBuilder().WithDate(DateTime.Now.AddDays(10))
                                                .Build();
                context.Meals.Add(nextWeek);

                context.SaveChanges();
            }
        }
        public ActionResult Create(CreateMealViewModel m)
        {
            using (var context = new DinnerManagerContext())
            {
                context.Meals.Add(new Meal
                    {
                        Date = m.Date,
                        Dish = context.Dishes.Single(d => d.Id == m.SelectedDishId)
                    });
                context.SaveChanges();
            }

            return RedirectToAction("Index", "Home");
        }
        public ActionResult Create()
        {
            using (var context = new DinnerManagerContext())
            {
                var dishes = context.Dishes.ToList();

                return View(new CreateMealViewModel
                {
                    Date = DateTime.Now.Date,
                    Dishes = dishes,
                    SelectedDishId = dishes.First().Id
                });
            }
        }
        public JsonResult UpdateMeal(int id, DateTime start)
        {
            using (var context = new DinnerManagerContext())
            {
                try
                {
                    var meal = context.Meals.Single(m => m.Id == id);
                    meal.Date = start;

                    context.SaveChanges();

                    return Json(new { success = true });
                }
                catch (Exception)
                {
                    return Json(new { success = false, message = "Er liep iets mis bij het opslaan van de nieuwe datum" });
                }
            }
        }
        public ContentResult GetMeals()
        {
            using (var context = new DinnerManagerContext())
            {
                var viewModels = new List<IndexViewModel>();
                foreach (var m in context.Meals)
                {
                    viewModels.Add(new IndexViewModel
                    {
                        Id = m.Id,
                        Date = m.Date,
                        Name = m.Dish.Name,
                        Rating = m.Dish.Rating
                    });
                }

                var meals = JsonConvert.SerializeObject(viewModels);

                return Content(meals, "application/json");
            }
        }