Пример #1
0
        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));
        }