Exemplo n.º 1
0
        public async Task <CourseDetailDTO> GetCourseDetailAsync(int CourseId, CancellationToken cancellationToken)
        {
            CourseDetailDTO course = await NoTrackEntities.Include(c => c.CourseEpisods).Include(c => c.CourseStatus)
                                     .Include(c => c.CourseLevel).Include(c => c.CustomUser).Include(c => c.Keywordkeys)
                                     .Select(c => new CourseDetailDTO
            {
                CourseID          = c.Id,
                CourseDescription = c.CourseDescription,
                CourseLevelTitle  = c.CourseLevel.Title,
                CoursePrice       = c.CoursePrice,
                CourseStatusTitle = c.CourseStatus.Title,
                CourseTitle       = c.CourseTitle,
                CreateDate        = c.CreateDate,
                DemoFileName      = c.DemoFileName,
                Episods           = c.CourseEpisods.Select(e => new EpisodDTO {
                    EpisodeTime = e.EpisodeTime, EpisodID = e.Id, EpisodTitle = e.Title, IsFree = e.IsFree
                }).ToList(),
                Keywords = c.Keywordkeys.Select(k => new KeywordDTO {
                    Id = k.Id, Title = k.Title
                }).ToList(),
                ImageName       = c.ImageName,
                TeacherAvatar   = c.CustomUser.Avatar,
                TeacherID       = c.CustomUser.Id,
                TeacherUserName = c.CustomUser.ShowUserName,
                TotalEpisodTime = c.TotalEpisodTime,
                UpdateDate      = c.UpdateDate
            }).FirstOrDefaultAsync(c => c.CourseID == CourseId, cancellationToken);

            return(course);
        }
Exemplo n.º 2
0
        public ActionResult AddMember(CourseDetailDTO cd)
        {
            var User = (TaiKhoan)Session["User"];

            if (User == null)
            {
                return(RedirectToAction("Login", "Login"));
            }
            var us     = ClassService.GetUserInfo((long)cd.UserID);
            var course = ClassService.GetClassByID((long)cd.CourseID);

            if (course.Capacity == course.NumOfPeo)
            {
                //Lớp đã đầy
                return(Json(2, JsonRequestBehavior.AllowGet));
            }
            if (us == null || course == null)
            {
                return(Json(0, JsonRequestBehavior.AllowGet));
            }
            CourseDetail data = new CourseDetail();

            data.UserID   = us.ID;
            data.CourseID = course.ID;
            var checkJoin = ClassService.CheckJoinStatus(course.ID, us.ID);

            if (checkJoin == false)
            {
                return(Json(ClassService.AddMember(data), JsonRequestBehavior.AllowGet));
            }
            return(Json(-1, JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 3
0
        public ActionResult CheckJoinStatus(CourseDetailDTO c)
        {
            var User = (TaiKhoan)Session["User"];

            if (User == null)
            {
                return(RedirectToAction("Login", "Login"));
            }
            return(Json(ClassService.CheckJoinStatus((long)c.CourseID, (long)c.UserID), JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 4
0
        /// <summary>
        /// Updates the start date and/or end date of a course
        /// </summary>
        /// <param name="course">Info about the changes in a course</param>
        public void UpdateCourse(CourseDetailDTO course)
        {
            var toChange = _db.Courses.FirstOrDefault(x => x.ID == course.ID);

            if (toChange == null)
            {
                throw new KeyNotFoundException();
            }

            toChange.StartDate = course.StartDate == null ? toChange.StartDate : course.StartDate;
            toChange.EndDate   = course.EndDate == null ? toChange.EndDate : course.EndDate;

            _db.SaveChanges();
        }
        public IHttpActionResult PutCourse(int id, CourseDetailDTO courseDTO)
        {
            Authorize auth           = new Authorize();
            User      authorizedUser = auth.GetAuthorizedUser(Request.Headers.GetCookies("user").FirstOrDefault());

            if (authorizedUser == null)
            {
                return(Unauthorized());
            }
            Course course = db.Courses.Find(id);

            if (courseDTO == null || course == null || !ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            if (!"Teacher".Equals(auth.GetAccessRole(authorizedUser, course)))
            {
                return(Unauthorized());
            }
            if (courseDTO.NewGradingSchemeName != null)
            {
                foreach (GradingScheme scheme in db.GradingSchemes)
                {
                    if (courseDTO.NewGradingSchemeName.Equals(scheme.Name))
                    {
                        course.GradingSchemeId = scheme.Id;
                        break;
                    }
                }
            }
            if (!courseDTO.Validate(course))
            {
                return(BadRequest());
            }
            courseDTO.Update(course);
            string error = db.Update(course, Modified);

            if (error != null)
            {
                return(BadRequest(error));
            }
            return(Redirect("https://" + Request.RequestUri.Host + ":" + Request.RequestUri.Port + "/Courses/" + course.Id));
        }
        public IHttpActionResult PostCourse(CourseDetailDTO courseDTO)
        {
            Authorize auth           = new Authorize();
            User      authorizedUser = auth.GetAuthorizedUser(Request.Headers.GetCookies("user").FirstOrDefault());

            if (authorizedUser == null || authorizedUser.GetTeacher() == null)
            {
                return(Unauthorized());
            }
            if (!ModelState.IsValid || !courseDTO.Validate(null))
            {
                return(BadRequest());
            }
            Course course = courseDTO.Create(authorizedUser.GetTeacher().Id);
            string error  = db.Update(course, Added);

            if (error != null)
            {
                return(BadRequest(error));
            }
            return(Redirect("https://" + Request.RequestUri.Host + ":" + Request.RequestUri.Port + "/Courses/" + course.Id));
        }
Exemplo n.º 7
0
        public IHttpActionResult UpdateCourse(int id, [FromBody] UpdateCourseViewModel course)
        {
            CourseDetailDTO input = new CourseDetailDTO();

            input.ID        = id;
            input.StartDate = course.NewStartDate;
            input.EndDate   = course.NewEndDate;

            try
            {
                _context.UpdateCourse(input);
            }
            catch (Exception ex)
            {
                if (ex is KeyNotFoundException)
                {
                    return(NotFound());
                }
                return(InternalServerError());
            }
            return(StatusCode(HttpStatusCode.NoContent));
        }
Exemplo n.º 8
0
        public ActionResult ReviceCourseDetail(CourseDetailDTO c)
        {
            var User = (TaiKhoan)Session["User"];

            if (User == null)
            {
                return(RedirectToAction("Login", "Login"));
            }
            using (ELearningDB db = new ELearningDB())
            {
                var course = db.Courses.Find(c.CourseID);
                if (course != null)
                {
                    if (course.CourseDetails.Count < course.Capacity || course.Capacity == null)
                    {
                        if (course.Status == 1)
                        {
                            Session.Add("CourseID", c.CourseID);
                        }
                        else
                        {
                            return(Json(-3, JsonRequestBehavior.AllowGet)); //Lớp đang khóa
                        }
                    }
                    else
                    {
                        return(Json(-1, JsonRequestBehavior.AllowGet)); //Lớp đã đủ người
                    }
                }
                else
                {
                    return(Json(-2, JsonRequestBehavior.AllowGet)); //Không tìm thấy lớp
                }
            }
            return(Json(1, JsonRequestBehavior.AllowGet));
        }