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