public ActionResult EditProgram(int?id) { if (!id.HasValue) { return(RedirectToAction(nameof(ProgramController.Index))); } var program = DbContext.ProgramDatabase.FirstOrDefault(p => p.Id == id); if (program == null) { return(RedirectToAction(nameof(ProgramController.Index))); } var model = new CreateEditSchoolProgramViewModel(); model.Name = program.Name; model.StartDate = program.StartDate; return(View(model)); }
private ActionResult SaveProgram(int?id, CreateEditSchoolProgramViewModel formData) { if (!ModelState.IsValid) { return(View()); } if (DbContext.ProgramDatabase.Any(p => p.Name == formData.Name && (!id.HasValue || p.Id != id.Value))) { ModelState.AddModelError(nameof(CreateEditSchoolProgramViewModel.Name), "Program Name Should Be Unique"); return(View()); } var program = Mapper.Map <Program>(formData); if (!id.HasValue) { DbContext.ProgramDatabase.Add(program); DbContext.SaveChanges(); return(RedirectToAction("Details", new { id = program.Id })); } else { program = DbContext.ProgramDatabase.FirstOrDefault(p => p.Id == id); if (program == null) { return(RedirectToAction(nameof(ProgramController.Index))); } } program.Name = formData.Name; program.StartDate = formData.StartDate; var firstCourse = program.Courses.First(); var startDate = firstCourse.StartDate; firstCourse.StartDate = formData.StartDate; var lastCourse = program.Courses.Last(); if (lastCourse != null) { foreach (var course in program.Courses) { if (firstCourse == null) { course.StartDate = course.Program.StartDate; var totalDays = Convert.ToInt32(course.Hours / course.DailyHours); course.EndDate = course.StartDate.AddBusinessDays(totalDays - 1); var startTime = course.StartTime = course.StartDate.TimeOfDay; var remainingHours = course.Hours - (course.DailyHours * (totalDays)); var hours = remainingHours + startTime.Hours; var remainingTime = TimeSpan.FromHours(hours); remainingTime = remainingTime.Add(TimeSpan.FromMinutes(startTime.Minutes)); course.EndTime = remainingTime; } else { var totalDays = Convert.ToInt32(course.Hours / course.DailyHours); course.EndDate = lastCourse.EndDate.AddBusinessDays(totalDays - 1); course.StartDate = Convert.ToDateTime(lastCourse.EndDate); var startTime = course.StartTime = course.StartDate.TimeOfDay; var remainingHours = course.Hours - (course.DailyHours * (totalDays)); var hours = remainingHours + startTime.Hours; var remainingTime = TimeSpan.FromHours(hours); remainingTime = remainingTime.Add(TimeSpan.FromMinutes(startTime.Minutes)); course.EndTime = remainingTime; } } } DbContext.SaveChanges(); return(RedirectToAction("Details", new { id = program.Id })); }
public ActionResult CreateProgram(CreateEditSchoolProgramViewModel formData) { return(SaveProgram(null, formData)); }
public ActionResult EditProgram(int id, CreateEditSchoolProgramViewModel formData) { return(SaveProgram(id, formData)); }