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); }
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)); }
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)); }
/// <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)); }
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)); }
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)); }