public ActionResult Details(int id)
        {
            Grade grade = this.gradeService.GetById(id);

            var redirectUrl = Session["redirectUrl"] as RedirectUrl;

            if (grade == null)
            {
                redirectUrl = redirectUrl ?? new RedirectUrl();

                return(RedirectToAction(
                           redirectUrl.RedirectActionName,
                           redirectUrl.RedirectControllerName,
                           redirectUrl.RedirectParameters));
            }

            RouteValueDictionary routeParameters = new RouteValueDictionary
            {
                { "id", id }
            };

            redirectUrl = new RedirectUrl(this.ControllerContext, routeParameters);

            this.Session["redirectUrl"]    = redirectUrl;
            this.Session["academicYearId"] = grade.AcademicYearId;

            ViewBag.StartYear = grade.AcademicYear.StartDate.Year;

            GradeDetailsViewModel model = Mapper.Map <Grade, GradeDetailsViewModel>(grade);

            return(View(model));
        }
        public ActionResult Delete(int id)
        {
            Grade grade = this.gradeService.GetById(id);

            GradeDetailsViewModel model = Mapper.Map <Grade, GradeDetailsViewModel>(grade);

            return(View(model));
        }
        public ActionResult DeleteConfirmed(int id)
        {
            Grade grade = this.gradeService.GetById(id);

            if (grade.AcademicYear.StartDate < DateTime.Now)
            {
                ModelState.AddModelError(string.Empty, "Grade for already started academic year cannot be deleted");
                GradeDetailsViewModel model = Mapper.Map <Grade, GradeDetailsViewModel>(grade);
                return(View(model));
            }

            this.gradeService.HardDelete(grade);

            var redirectUrl = Session["redirectUrl"] as RedirectUrl;

            redirectUrl = redirectUrl ?? new RedirectUrl();

            return(RedirectToAction(
                       redirectUrl.RedirectActionName,
                       redirectUrl.RedirectControllerName,
                       redirectUrl.RedirectParameters));
        }