public ActionResult _ajax_StatUsers(int course, int company, int department) { var customCourseIds = StatisticsRepository.MasterId2customId(course, company, department, 0).Distinct().ToList(); List <StatUsersModel> stats = new List <StatUsersModel>(); for (var i = 0; i < customCourseIds.Count(); i++) { stats.AddRange(StatisticsRepository.GetStatUsers(course, customCourseIds[i], company, department)); } var json = new JavaScriptSerializer().Serialize(stats.Distinct()); return(Json(json, JsonRequestBehavior.AllowGet)); }
public ActionResult _ajax_GetSparklineStat(int course, int company, int department, string start, string end) { bool superadmin = SessionManager.inst.IsSuperadmin(); bool admin = SessionManager.inst.IsAdmin(); bool manager = SessionManager.inst.IsManager(); if (!superadmin) { company = company != 0 ? company : SessionManager.inst.Company().Id; } if (manager && !admin) { department = department != 0 ? department : SessionManager.inst.User().DepartmentId; } var customCourseId = StatisticsRepository.MasterId2customId(course, company, department, 0).FirstOrDefault(); DateTime?startDateTime = null; DateTime?endDateTime = null; var result = new Dictionary <string, int>(); if (!start.Equals("")) { startDateTime = DateTime.ParseExact(start, dateFormat, CultureInfo.InvariantCulture); } if (!end.Equals("")) { endDateTime = DateTime.ParseExact(end, dateFormat, CultureInfo.InvariantCulture); } var started = 0; var ended = 0; if (customCourseId != 0) { var customCourseIds = StatisticsRepository.masterId2customIds(course); for (var i = 0; i < customCourseIds.Count(); i++) { started += StatisticsRepository.CourseWeekStatistics(customCourseIds[i], company, department, startDateTime, endDateTime, 0); ended += StatisticsRepository.CoursesWeekStatistics(customCourseIds[i], company, department, startDateTime, endDateTime, 0); } } else { started += StatisticsRepository.CourseWeekStatistics(customCourseId, company, department, startDateTime, endDateTime, 0); ended += StatisticsRepository.CoursesWeekStatistics(customCourseId, company, department, startDateTime, endDateTime, 0); } result.Add("started", started); result.Add("ended", ended); var json = new JavaScriptSerializer().Serialize(result); return(Json(json, JsonRequestBehavior.AllowGet)); }
public ActionResult _ajax_GetPieStatistics(int course, int company, int department, string start, string end, int user) { bool superadmin = SessionManager.inst.IsSuperadmin(); bool admin = SessionManager.inst.IsAdmin(); bool manager = SessionManager.inst.IsManager(); if (!superadmin) { company = company != 0 ? company : SessionManager.inst.Company().Id; } if (manager && !admin) { department = department != 0 ? department : SessionManager.inst.User().DepartmentId; } if (!superadmin && !admin && !manager) { var username = System.Security.Principal.WindowsPrincipal.Current.Identity.Name; var profile = AdminUserRepository.GetUserProfileByUsername(username); if (UserRepository.GetListOfRoles(username).Count() == 1 && UserRepository.GetListOfRoles(username).FirstOrDefault().Name == "User") { user = profile.UserProfileId; } } var customCourseIds = StatisticsRepository.MasterId2customId(course, company, department, user).Distinct().ToList(); DateTime?startDateTime = null; DateTime?endDateTime = null; if (start != null) { startDateTime = DateTime.ParseExact(start, dateFormat, CultureInfo.InvariantCulture); } if (end != null) { endDateTime = DateTime.ParseExact(end, dateFormat, CultureInfo.InvariantCulture); } var allAssignedCourses = StatisticsRepository.CoursesAssignedToUsers(company, department, user) .Where(c => course == 0 ? true : c.CustomCours.MasterCourseId == course).Select(i => i.CustomCourseId).ToList(); var startedCourses = StatisticsRepository.StartedCourses(customCourseIds, company, department, user); var allCompletedCourses = StatisticsRepository.TotalCompletedCourses(company, department, startDateTime, endDateTime, user) .Where(i => (course == 0 || i.CustomCours.MasterCourseId == course)).ToList(); int coursesSartedNotCompleted = startedCourses - allCompletedCourses.Count(); int coursesNotStarted = allAssignedCourses.Count() - startedCourses; decimal onePercent = 0; if (allAssignedCourses.Count() > 0) { onePercent = ((decimal)100 / allAssignedCourses.Count()); } var obj = new GetPieStatisticsJson { usersCompleted = onePercent * allCompletedCourses.Count(), usersNotCompleted = onePercent * coursesSartedNotCompleted, usersNotStarted = onePercent * coursesNotStarted }; //var result = _statisticsRepository.UsersCompletedCoursesCount(companyId, start, end); var json = new JavaScriptSerializer().Serialize(obj); return(Json(json, JsonRequestBehavior.AllowGet)); }