Example #1
0
        /// <summary>
        /// Get a List of Salt Courses offered by Moodle from the IDP web.config
        /// </summary>
        /// <returns>List of MemberCourseModel</returns>
        public List <MemberCourseModel> GetSaltCoursesFromWebConfig()
        {
            SALTCoursesWSClient.MoodleUser         mu          = new SALTCoursesWSClient.MoodleUser("dummyId");
            List <SALTCoursesWSClient.CourseModel> saltCourses = mu.BuildCoursesFromConfig();

            List <MemberCourseModel> memberCourseModel = new List <MemberCourseModel>();

            foreach (var course in saltCourses)
            {
                memberCourseModel.Add(course.ToMemberCourseModel());
            }

            return(memberCourseModel);
        }
Example #2
0
        public IList <MemberCourseModel> GetMemberCourses(int memberId, bool fromMoodle = false)
        {
            String logMethodName = "- GetMemberCourses(int memberId, bool fromMoodle = false) :";

            Log.Debug(logMethodName + "Begin Method");
            var returnList = new List <MemberCourseModel>();

            try
            {
                SALTCoursesWSClient.MoodleUser         mu = new SALTCoursesWSClient.MoodleUser(memberId.ToString());
                List <SALTCoursesWSClient.CourseModel> saltCourses;
                ASAMemberModel member = GetMember(memberId);
                List <OrganizationProductModel> courseProducts = member.OrganizationProducts.Where(p => p.ProductTypeID == 1).ToList();
                if (fromMoodle)
                {
                    saltCourses = mu.GetUserCourses(true);
                    foreach (var course in saltCourses)
                    {
                        //add to return list only courses that the organization participates in
                        foreach (var cproduct in courseProducts)
                        {
                            if (cproduct.ProductName == course.idnumber)
                            {
                                returnList.Add(course.ToMemberCourseModel());
                                break;
                            }
                        }
                    }
                }
                else
                {
                    saltCourses = mu.GetUserCourses(false);
                    var coursesContentIds = new List <string>();
                    foreach (var course in saltCourses)
                    {
                        coursesContentIds.Add(course.contentid);
                    }
                    var memberTodos = GetMemberToDos(memberId).ToList();
                    //filter member todos taking only courses
                    var memberCoursesTodos = memberTodos.Where(item => coursesContentIds.Contains(item.ContentID)).ToList();

                    foreach (var course in saltCourses)
                    {
                        //decorate the couse completion status from membertodo
                        foreach (var todo in memberCoursesTodos)
                        {
                            if (todo.ContentID == course.contentid && todo.RefToDoStatusID == 2)
                            {
                                course.completestatusid = todo.RefToDoStatusID;
                                break;
                            }
                        }
                        //add to return list only courses that the organization participates in
                        foreach (var cproduct in courseProducts)
                        {
                            if (cproduct.ProductName == course.idnumber)
                            {
                                returnList.Add(course.ToMemberCourseModel());
                                break;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Log.Error(logMethodName + "Exception =>", ex);
            }
            Log.Debug(logMethodName + "End Method");
            return(returnList);
        }