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 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;
            }
        }
        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;
            }
        }