public ActionResult Create(int curriculumId, CreateCurriculumTimelineModel createTimelineModel)
        {
            try
            {
                Timeline timeline = createTimelineModel.Timeline;
                timeline.CurriculumRef = curriculumId;
                timeline.ChapterRef = null;

                AddValidationErrorsToModelState(Validator.ValidateCurriculumTimeline(timeline).Errors);

                if (ModelState.IsValid)
                {
                    Storage.AddTimeline(timeline);

                    return RedirectToAction("Index", new { CurriculumId = curriculumId });
                }
                else
                {
                    SaveValidationErrors();

                    return RedirectToAction("Create");
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public ActionResult Create(int curriculumId)
        {
            try
            {
                LoadValidationErrors();

                Curriculum curriculum = Storage.GetCurriculum(curriculumId);
                Discipline discipline = Storage.GetDiscipline(curriculum.DisciplineRef);
                Group group = Storage.GetGroup(curriculum.UserGroupRef);
                CreateCurriculumTimelineModel createTimelineModel = new CreateCurriculumTimelineModel(new Timeline());

                ViewData["GroupName"] = group.Name;
                ViewData["DisciplineName"] = discipline.Name;
                return View(createTimelineModel);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public ActionResult Edit(int timelineId)
        {
            try
            {
                LoadValidationErrors();

                Timeline timeline = Storage.GetTimeline(timelineId);
                Curriculum curriculum = Storage.GetCurriculum(timeline.CurriculumRef);
                Discipline discipline = Storage.GetDiscipline(curriculum.DisciplineRef);
                Group group = Storage.GetGroup(curriculum.UserGroupRef);
                CreateCurriculumTimelineModel editTimelineModel = new CreateCurriculumTimelineModel(timeline);

                ViewData["GroupName"] = group.Name;
                ViewData["DisciplineName"] = discipline.Name;
                Session["CurriculumId"] = timeline.CurriculumRef;
                return View(editTimelineModel);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public ActionResult Edit(int timelineId, CreateCurriculumTimelineModel editTimelineModel)
        {
            try
            {
                Timeline timeline = editTimelineModel.Timeline;
                timeline.Id = timelineId;

                AddValidationErrorsToModelState(Validator.ValidateCurriculumTimeline(timeline).Errors);

                if (ModelState.IsValid)
                {
                    Storage.UpdateTimeline(timeline);

                    return RedirectToRoute("CurriculumTimelines", new { action = "Index", CurriculumId = Session["CurriculumId"] });
                }
                else
                {
                    SaveValidationErrors();

                    return RedirectToAction("Edit");
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }