Example #1
0
        public async Task <IActionResult> EnrollByInstructor(long courseId, VMEnrollment request)
        {
            try
            {
                if (courseId == 0)
                {
                    return(BadRequest(new GenericResult {
                        Response = false, Message = "No course selected"
                    }));
                }

                var output = _learnerRepository.EnrollByInstructor(courseId, request.sessionId, request);
                if (output > 0)
                {
                    return(Ok(new GenericResult {
                        Response = true, Message = "There are (" + output + ") learner enrolled already in course"
                    }));
                }
                else
                {
                    return(Ok(new GenericResult {
                        Response = true, Message = "Learner successfully enrolled"
                    }));
                }
            }
            catch (Exception e)
            {
                return(BadRequest(e));
            }
        }
        public int EnrollByInstructor(long courseId, long sessionId, VMEnrollment request)
        {
            var learnerIdList   = new ArrayList();
            int noExistingUsers = 0;
            var courseNewStatus = _context.Status.Where(x => x.category == "Course" && x.name == "New").FirstOrDefault();

            if (request.Learner.Count() > 0)
            {
                foreach (Learner x in request.Learner)
                {
                    var checkExists = _context.Learner.Where(i => i.courseId == courseId && i.userId == x.userId).FirstOrDefault();
                    if (checkExists == null)
                    {
                        Learner e = new Learner();
                        e.courseId       = courseId;
                        e.userId         = x.userId;
                        e.enrollmentType = 1;          //  instructor enrolled
                        e.isNotify       = x.isNotify; //  instructor enrolled
                        e.statusId       = courseNewStatus.id;
                        e.isApproved     = 1;
                        _context.Learner.Add(e);
                        _context.SaveChanges();
                        learnerIdList.Add(e.id);


                        if (request.isAutoEnroll != 0)
                        {
                            foreach (LearnerSession vme in request.LearnerSession)
                            {
                                LearnerSession ls = new LearnerSession();
                                ls.courseId      = courseId;
                                ls.learnerId     = e.id;
                                ls.sessionId     = sessionId;
                                ls.statusId      = courseNewStatus.id;
                                ls.dateScheduled = vme.dateScheduled;
                                ls.createdAt     = DateTime.Now;
                                ls.updatedAt     = DateTime.Now;
                                _context.LearnerSession.Add(ls);
                                _context.SaveChanges();
                            }
                        }
                    }
                    else
                    {
                        noExistingUsers++;
                    }
                }
            }
            return(noExistingUsers);
        }