Example #1
0
        /// <summary>
        /// Get avaliable courses in shop for company, department, or user.
        /// </summary>
        /// <param name="companyId"></param>
        /// <param name="departmentId"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        public static List <MasterCourses> MasterCoursesAvaliableTo(int Id, FilterIdType type)
        {
            var assigned = new List <MasterCourses>();

            switch (type)
            {
            case FilterIdType.CompanyId:
                assigned = courseRepo.MasterCourses(new FilterCourses {
                    AssignedToCompanyIds = new List <int> {
                        Id
                    }
                });
                break;

            case FilterIdType.DepartmentId:
                assigned = courseRepo.MasterCourses(new FilterCourses {
                    AssignedToDepartmentIds = new List <int> {
                        Id
                    }
                });
                break;

            case FilterIdType.UserId:
                assigned = courseRepo.MasterCourses(new FilterCourses {
                    AssignedToUserIds = new List <int> {
                        Id
                    }
                });
                break;

            default:
                return(new List <MasterCourses>());
            }
            return(courseRepo.MasterCourses().Except(assigned).ToList());
        }
Example #2
0
        public static List <MasterCourses> MasterCoursesAssignedTo(int Id, FilterIdType type, bool showDeactivated = true)
        {
            switch (type)
            {
            case FilterIdType.CompanyId:
                return(courseRepo.MasterCourses(new FilterCourses {
                    AssignedToCompanyIds = new List <int> {
                        Id
                    }
                }, showDeactivated));

            case FilterIdType.DepartmentId:
                return(courseRepo.MasterCourses(new FilterCourses {
                    AssignedToDepartmentIds = new List <int> {
                        Id
                    }
                }, showDeactivated));

            case FilterIdType.UserId:
                return(courseRepo.MasterCourses(new FilterCourses {
                    AssignedToUserIds = new List <int> {
                        Id
                    }
                }, showDeactivated));

            default:
                return(new List <MasterCourses>());
            }
        }
Example #3
0
        public static List <CoursesStatDto> GetCoursesForTableStat(int Id, FilterIdType type)
        {
            var           list   = new List <CoursesStatDto>();
            FilterCourses filter = null;

            switch (type)
            {
            case FilterIdType.CompanyId:
                filter = new FilterCourses {
                    AssignedToCompanyIds = new List <int> {
                        Id
                    }
                };
                break;

            case FilterIdType.DepartmentId:
                filter = new FilterCourses {
                    AssignedToDepartmentIds = new List <int> {
                        Id
                    }
                };
                break;

            case FilterIdType.UserId:
                filter = new FilterCourses {
                    AssignedToUserIds = new List <int> {
                        Id
                    }
                };
                break;

            case FilterIdType.All:
                filter = null;
                break;
            }
            list = courseRepo.GetAssignedCoursesForStatistic(filter);

            var userCourses = courseRepo.UserCourses(filter);
            var userIds     = userCourses.Select(u => u.UserId.Value).ToList();

            foreach (var entry in list)
            {
                //users
                entry.Users = userCourses.Where(i => i.MasterCourseId == entry.MasterCourseId).Count();
                //avg score
                var maxScores = userCourses.Where(i => i.MasterCourseId == entry.MasterCourseId && i.CompletedDate.HasValue).Select(c => c.MaxUserScore);
                entry.Avg = maxScores.Any() ? maxScores.Average() : 0;
                //status of completion
                var watchedcourse = userCourses.Where(i => i.MasterCourseId == entry.MasterCourseId).FirstOrDefault();
                var watched       = watchedcourse != null?watchedcourse.MasterCourses.UserModulesWatched.Where(i => userIds.Contains(i.UserProfiles.Id)).Count() : 0;

                entry.Status = entry.Users == 0 || entry.Modules == 0 ? 0 : watched * 100 / (entry.Users * entry.Modules);
            }
            return(list);
        }
Example #4
0
        public static bool GetCourseStatus(int id, FilterIdType type, int courseId)
        {
            switch (type)
            {
            case FilterIdType.CompanyId:
                return((GetCourse(id, type, courseId) as CompanyCourses).CourseStatus);

            case FilterIdType.DepartmentId:
                return((GetCourse(id, type, courseId) as DepartmentCourses).CourseStatus);

            case FilterIdType.UserId:
                return((GetCourse(id, type, courseId) as UserCourses).CourseStatus);

            default:
                return(false);
            }
        }
Example #5
0
        /// <summary>
        /// Get a Company, Department, or UserCourse with all needed info
        /// </summary>
        /// <param name="id">id of Company, Department or User who has assigned course</param>
        /// <param name="type">type of Id</param>
        /// <param name="courseId">id of MasterCourse </param>
        /// <returns>Cast Object to a needed type of Course</returns>
        public static object GetCourse(int id, FilterIdType type, int courseId)
        {
            switch (type)
            {
            case FilterIdType.CompanyId:
                return(courseRepo.CompanyCourse(courseId, id));

            case FilterIdType.DepartmentId:
                return(courseRepo.DepartmentCourse(courseId, id));

            case FilterIdType.UserId:
                return(courseRepo.UserCourse(courseId, id));

            default:
                return(null);
            }
        }
Example #6
0
        public static bool ChangeCourseStatusFor(int id, FilterIdType type, int courseId, bool status)
        {
            switch (type)
            {
            case FilterIdType.CompanyId:
                return(courseRepo.ChangeCourseStatusCompany(id, courseId, status));

            case FilterIdType.DepartmentId:
                return(courseRepo.ChangeCourseStatusDepartment(id, courseId, status));

            case FilterIdType.UserId:
                return(courseRepo.ChangeCourseStatusUser(id, courseId, status));

            default:
                return(false);
            }
        }
Example #7
0
        public static bool UnbindCoursesFrom(int id, FilterIdType type, MasterCourses course)
        {
            switch (type)
            {
            case FilterIdType.CompanyId:
                return(courseRepo.UnbindCoursesFromCompany(id, course));

            case FilterIdType.DepartmentId:
                return(courseRepo.UnbindCoursesFromDepartment(id, course));

            case FilterIdType.UserId:
                return(courseRepo.UnbindCoursesFromUser(id, course));

            default:
                return(false);
            }
        }
Example #8
0
        public static bool BindCoursesTo(int id, FilterIdType type, List <MasterCourses> courses)
        {
            switch (type)
            {
            case FilterIdType.CompanyId:
                return(courseRepo.BindCoursesToCompany(id, courses));

            case FilterIdType.DepartmentId:
                return(courseRepo.BindCoursesToDepartment(id, courses));

            case FilterIdType.UserId:
                return(courseRepo.BindCoursesToUser(id, courses));

            default:
                return(false);
            }
        }