Ejemplo n.º 1
0
        public async Task <IActionResult> Edit(TeacherCourseDto course)
        {
            if (ModelState.IsValid)
            {
                var teacherId = userManager.GetUserId(User);
                await teacherCourseService.UpdateAsync(teacherId, course);

                return(RedirectToAction(nameof(Index)));
            }
            return(View(course));
        }
        // Update Model by Id
        public async Task <bool> UpdateAsync(string teacherId, TeacherCourseDto courseDto)
        {
            if (courseDto == null)
            {
                return(false);
            }

            var dbCourse = db.Courses.Find(courseDto.Id);

            if (dbCourse == null)
            {
                return(false);
            }

            // The teacher can only edit his courses
            var TeacherForCourse = db.TeacherCourses.Find(teacherId, dbCourse.Id);

            if (TeacherForCourse == null)
            {
                return(false);
            }

            try
            {
                dbCourse.Name        = courseDto.Name;
                dbCourse.Description = courseDto.Description;
                db.Courses.Update(dbCourse);
                var result = await db.SaveChangesAsync();

                if (result <= 0)
                {
                    return(false);
                }
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CourseExists(courseDto.Id))
                {
                    return(false);
                }
                else
                {
                    throw;
                }
            }

            return(true);
        }