public async Task <IActionResult> Details(int?Id) { if (Id == null) { return(NotFound()); } else { Lesson lesson = _lessonService.GetById((int)Id); Lesson lessonStudent = _lessonService.GetDetailByUser((int)Id); if (lesson == null) { return(NotFound()); } if (User.Identity.IsAuthenticated) { AppUser user = await _userManager.FindByNameAsync(User.Identity.Name); foreach (var item in lessonStudent.StudentLessons) { if (user.Id == item.AppUserId) { LessonDetailDTO model = new LessonDetailDTO() { Lesson = lesson, StudentLessons = lessonStudent.StudentLessons.Where(x => x.LessonId == Id).ToList(), StudentId = user.Id }; return(View(model)); } } LessonDetailDTO modelNull = new LessonDetailDTO() { Lesson = lesson, StudentLessons = lessonStudent.StudentLessons.Where(x => x.LessonId == Id).ToList(), StudentId = null }; return(View(modelNull)); } else { return(View(new LessonDetailDTO() { Lesson = lesson, })); } } }
public IHttpActionResult PutLesson(int id, LessonDetailDTO lessonDTO) { Authorize auth = new Authorize(); User authorizedUser = auth.GetAuthorizedUser(Request.Headers.GetCookies("user").FirstOrDefault()); if (authorizedUser == null || authorizedUser.GetTeacher() == null) { return(Unauthorized()); } Lesson lesson = db.Lessons.Find(id); if (lessonDTO == null || lesson == null || lesson.Assignment == null || lesson.Assignment.Course == null || !ModelState.IsValid) { return(BadRequest(ModelState)); } if (!"Teacher".Equals(auth.GetAccessRole(authorizedUser, lesson))) { return(Unauthorized()); } Tutor tutor = null; if (lessonDTO.NewTutorIdentifier != null) { User user = auth.GetUserByIdentifier(lessonDTO.NewTutorIdentifier); if (user == null && user.GetTutor() == null) { return(BadRequest()); } tutor = user.GetTutor(); } if (!lessonDTO.Validate(lesson, null, tutor)) { return(BadRequest()); } lessonDTO.Update(lesson, tutor); string error = db.Update(lesson, Modified); if (error != null) { return(BadRequest(error)); } return(Redirect("https://" + Request.RequestUri.Host + ":" + Request.RequestUri.Port + "/Assignments/" + lesson.Assignment.Id)); }
public IHttpActionResult PostLesson(LessonDetailDTO lessonDTO) { Authorize auth = new Authorize(); User authorizedUser = auth.GetAuthorizedUser(Request.Headers.GetCookies("user").FirstOrDefault()); if (authorizedUser == null || authorizedUser.GetTeacher() == null) { return(Unauthorized()); } Assignment assignment = db.Assignments.Find(lessonDTO.NewAssignmentId); if (lessonDTO.NewTutorIdentifier == null || assignment == null || assignment.Course == null) { return(BadRequest()); } if (!"Teacher".Equals(auth.GetAccessRole(authorizedUser, assignment))) { return(Unauthorized()); } User user = auth.GetUserByIdentifier(lessonDTO.NewTutorIdentifier); if (user == null && user.GetTutor() == null) { return(BadRequest()); } Tutor tutor = user.GetTutor(); if (!ModelState.IsValid || !lessonDTO.Validate(null, assignment, tutor)) { return(BadRequest()); } Lesson lesson = lessonDTO.Create(tutor); string error = db.Update(lesson, Added); if (error != null) { return(BadRequest(error)); } return(Redirect("https://" + Request.RequestUri.Host + ":" + Request.RequestUri.Port + "/Assignments/" + lesson.Assignment.Id)); }