public ActionResult BeginCreate(EducationPlanViewModel viewModel)
        {
            //Checks that all field in the form the user posted was provided by the user.
            if (ModelState.IsValid)
            {
                //Nothing can be persisted yet, because the education plan is not yet fully supplied by the user.
                Session["EducationPlan"] = viewModel;
                IEnumerable<HeadlineModel> models;
                using (var repository = new EducationPlanRepository())
                {
                    models = repository.GetHeadlinesForGroupId(viewModel.GroupId);
                    //if no hedlines are found http status code 404 is returned.
                    if (models == null)
                    {
                        return HttpNotFound();
                    }
                    //Translates the models into apropriate viewmodels
                    List<HeadlineViewModel> headlineViewModels = Mapper.Map<IEnumerable<HeadlineModel>, List<HeadlineViewModel>>(models);
                    //The actual text under each headline is saved in the junction table between the headline table and the education plan table.
                    IEnumerable<EducationPlanToHeadlineViewModel> educationToHeadlineViewModels =
                        headlineViewModels.Select(hvm => new EducationPlanToHeadlineViewModel { HeadLineId = hvm.Id, Headline = hvm });
                    return View("Create", educationToHeadlineViewModels.ToList());
                }

            }
            //if some fields were left empty the user is prompted to enter text into those fields as well.
            return View(viewModel);
        }
        public ActionResult Edit(EducationPlanViewModel viewModel)
        {
            using (var educationRepository = new EducationPlanRepository())
            using (var headlineRepository = new EducationPlanToHeadlineRepository())
            {
                educationRepository.Update(Mapper.Map<EducationPlanModel>(viewModel));
                foreach (var educationPlanHeadline in viewModel.EducationPlanToHeadline)
                {
                    headlineRepository.Update(Mapper.Map<EducationPlanToHeadlineModel>(educationPlanHeadline));
                }

                headlineRepository.Save();
                educationRepository.Save();
            }

            return RedirectToAction("Index");
        }