public bool AddNewAcademicYear(AcademicYearViewModel academicyear)
 {
     if (!ValidateAcademicYear(academicyear))
     {
         return false;
     }
     AcademicYear academicYearModel = Mapper.Map<AcademicYear>(academicyear);
     db.AcademicYears.Add(academicYearModel);
     db.SaveChanges();
     return true;
 }
        public async Task<ActionResult> Create(AcademicYearViewModel academicyear)
        {
            if (ModelState.IsValid)
            {

                if( await _service.AddNewAcademicYear(academicyear) == true)
                {
                    return RedirectToAction("Index");
                }
                
            }

            ViewBag.SchoolRefID = new SelectList(db.Schools, "SchoolID", "SchoolName", academicyear.SchoolRefID);
            return View(academicyear);
        }
 protected bool ValidateAcademicYear(AcademicYearViewModel acamedicyearVM)
 {
     if(CheckStartandEndYear(acamedicyearVM.StartYear,acamedicyearVM.EndYear) == false)
     {
         _modelstate.AddModelError("StartYear", "Difference between start and end year is not one"); 
     }
     if(CheckDisplayYear(acamedicyearVM.DisplayYear)== false)
     {
         _modelstate.AddModelError("DisplayYear", "Display should be in the format of(2015-2016) yyyy-yyyy");
     }
     if (!CheckYearSequence(acamedicyearVM.StartYear, acamedicyearVM.EndYear))
     {
         _modelstate.AddModelError("StartYear", "Start and endyear is not in sequence with previous years"); 
     }
     return _modelstate.IsValid;
 }
 public bool SaveAcademicYearAfterEditing(AcademicYearViewModel academicyear)
 {
     if(!ValidateAcademicYear(academicyear))
     {
         return false;
     }
     AcademicYear academicYearModel = Mapper.Map<AcademicYear>(academicyear);
     db.Entry(academicYearModel).State = EntityState.Modified;
     db.SaveChanges();
     return true;
 }
 public async Task<bool> AddNewAcademicYear(AcademicYearViewModel academicyear)
 {
     if (!ValidateAcademicYear(academicyear))
     {
         return false;
     }
     AcademicYear academicYearModel = Mapper.Map<AcademicYear>(academicyear);
     db.AcademicYears.Add(academicYearModel);
     await db.SaveChangesAsync();
     return true;
     
 }
 public async Task<ActionResult> Edit(AcademicYearViewModel academicyear)
 {
     if (ModelState.IsValid)
     {
         if (await _service.SaveAcademicYearAfterEditing(academicyear) == true)
         {
             return RedirectToAction("Index");
         }
     }
     ViewBag.SchoolRefID = new SelectList(db.Schools.AsNoTracking().Select(x => new { x.SchoolID,x.SchoolName}), "SchoolID", "SchoolName", academicyear.SchoolRefID);
     return View(academicyear);
 }
 public async Task<ActionResult> Edit(AcademicYearViewModel academicYearVM)
 {
     if (ModelState.IsValid)
     {
         if (await Task.Run(() => _service.SaveAcademicYearAfterEditing(academicYearVM)) == true)
         {
             return RedirectToAction("Index");
         }
     }
     var dbc = _service.getDBContext();
     ViewBag.SchoolRefID = new SelectList(dbc.Schools.AsNoTracking().Select(x => new { x.SchoolID,x.SchoolName}), "SchoolID", "SchoolName", academicYearVM.SchoolRefID);
     return View(academicYearVM);
 }