コード例 #1
0
        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));
        }
コード例 #2
0
        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 }));
        }
コード例 #3
0
 public ActionResult CreateProgram(CreateEditSchoolProgramViewModel formData)
 {
     return(SaveProgram(null, formData));
 }
コード例 #4
0
 public ActionResult EditProgram(int id, CreateEditSchoolProgramViewModel formData)
 {
     return(SaveProgram(id, formData));
 }