public async Task <IHttpActionResult> RemoveLearner(UpdateLearnerEnrollmentModel model) { try { var courseEvent = await db.CourseEvents.FindAsync(model.CourseEventId); foreach (var userId in model.UserId) { var learner = await db.Learners .Include(x => x.User) .FirstOrDefaultAsync(x => x.UserId == userId); if (learner == null) { return(BadRequest("Unable to unenroll learner")); } var enrollment = db.Enrollments.FirstOrDefault(x => x.CourseEventId == courseEvent.Id && x.LearnerId == learner.Id && x.Status == EnrollmentStatus.Enrolled); if (enrollment == null) { return(BadRequest("Unable to unenroll learner")); } enrollment.Status = EnrollmentStatus.Removed; enrollment.EnrollmentHistories.Add( new EnrollmentHistory { EnrollmentId = enrollment.Id, LearnerId = learner.Id, Status = EnrollmentStatus.Removed, Remark = "Removed from Enrollment" } ); db.SetModified(enrollment); db.SaveChanges(); } return(Ok(courseEvent.CourseId.ToString())); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <ActionResult> RemoveLearner(int CourseId, int CourseEventId, int[] Ids) { var model = new UpdateLearnerEnrollmentModel { CourseEventId = CourseEventId, UserId = Ids.ToList() }; var response = await WepApiMethod.SendApiAsync <string>(HttpVerbs.Post, CourseEventApiUrl.RemoveLearner, model); if (response.isSuccess) { TempData["SuccessMessage"] = "User successfully removed from this course."; await LogActivity(Modules.Learning, "Remove learner from this course.", model); } else { TempData["ErrorMessage"] = "Fail to remove learner to this course."; } return(RedirectToAction("Content", "Courses", new { area = "eLearning", id = CourseId })); }
public async Task <IHttpActionResult> AddLearner(UpdateLearnerEnrollmentModel model) { try { var courseEvent = await db.CourseEvents.FindAsync(model.CourseEventId); foreach (var userId in model.UserId) { var learner = await db.Learners .Include(x => x.User) .FirstOrDefaultAsync(x => x.UserId == userId); if (learner == null) { learner = new Learner { UserId = userId, Point = 0, CourseEnrolled = 1 }; db.Learners.Add(learner); db.SaveChanges(); } var enrollment = db.Enrollments.FirstOrDefault(x => x.CourseEventId == courseEvent.Id && x.LearnerId == learner.Id); if (enrollment == null) { var newEnrollment = new Enrollment { CourseId = courseEvent.CourseId, CourseEventId = courseEvent.Id, LearnerId = learner.Id, EnrolledDate = DateTime.Now, Status = EnrollmentStatus.Enrolled, }; db.Enrollments.Add(newEnrollment); db.SaveChanges(); newEnrollment.EnrollmentHistories = new List <EnrollmentHistory> { new EnrollmentHistory { EnrollmentId = newEnrollment.Id, LearnerId = learner.Id, Status = EnrollmentStatus.Enrolled, UserId = userId, CourseId = courseEvent.CourseId, CourseEventId = courseEvent.Id } }; db.SetModified(newEnrollment); db.SaveChanges(); } else { enrollment.Status = EnrollmentStatus.Enrolled; enrollment.EnrollmentHistories.Add(new EnrollmentHistory { EnrollmentId = enrollment.Id, LearnerId = learner.Id, Status = EnrollmentStatus.Enrolled, Remark = "Learner reenrolled", UserId = userId, CourseId = courseEvent.CourseId, CourseEventId = courseEvent.Id } ); db.SetModified(enrollment); db.SaveChanges(); } } return(Ok(courseEvent.CourseId.ToString())); } catch (Exception e) { return(BadRequest(e.Message)); } }