Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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));
        }