public async Task <IActionResult> EditSchedule(int courseId)
        {
            var course  = _coursesRepository.GetById(courseId);
            var modules = await _coursesRepository.GetScheduleModules(courseId);

            var subject = _subjectsRepository.GetById(course.SubjectId);

            var model = new CourseEditSchedulesViewModel
            {
                CourseId = courseId,

                Course = new CourseViewModel
                {
                    CourseId = courseId,
                    Start    = course.StartDate,
                    End      = course.EndDate,
                    Subject  = subject,
                    Teacher  = new Models.ViewModels.UserViewModel
                    {
                        Email      = course.Teacher.Email,
                        FirstName  = course.Teacher.FirstName,
                        LastName   = course.Teacher.LastName,
                        MiddleName = course.Teacher.MiddleName,
                    },
                    TeacherId = course.TeacherId,
                    SubjectId = course.SubjectId
                },
            };

            model.Modules = modules;

            return(View(model));
        }
        public async Task <IActionResult> EditSchedule(CourseEditSchedulesViewModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var result = await _coursesRepository.EditSchedules(model);

                    if (result)
                    {
                        // success
                        return(RedirectToAction("Index", "Courses", new { message = "Редагування розкладу успішно виконано." }));
                    }
                }
                catch
                {
                    // error
                    return(RedirectToAction("Index", "Courses", new { error = "При редагуванні розкладу сталась невідома помилка!" }));
                }
            }

            // error for Model
            else
            {
                ModelState.AddModelError(string.Empty, "Невідома помилка!");
            }
            return(View(model));
        }
Ejemplo n.º 3
0
        public async Task <bool> EditSchedules(CourseEditSchedulesViewModel model)
        {
            var courseModule = await _context
                               .CourseModule
                               .Where(y => y.CourseId == model.CourseId && model.Modules.Select(x => x.Id).Contains(y.ModuleId))
                               .ToListAsync();

            courseModule.ForEach(x =>
            {
                x.Date = model.Modules.First(y => y.Id == x.ModuleId).Date;
            });

            _context.CourseModule.UpdateRange(courseModule);

            return(await _context.SaveChangesAsync() >= 0);
        }