示例#1
0
        public DTODashboard DashboardValues()
        {
            // Create DTODashboard
            DTODashboard objDTODashboard     = new DTODashboard();
            string       strConnectionString = GetConnectionString();

            // Must be a Administrator to call this Method
            if (!UtilitySecurity.IsAdministrator(this.User.Identity.Name, GetConnectionString()))
            {
                return(objDTODashboard);
            }

            return(ShowDashboard(strConnectionString));
        }
示例#2
0
        // Methods

        #region public static DTODashboard ShowDashboard(string ConnectionString)
        public static DTODashboard ShowDashboard(string ConnectionString)
        {
            // Create DTODashboard
            DTODashboard objDTODashboard = new DTODashboard();

            List <DTOTicketStatus>    colDTOTicketStatus    = new List <DTOTicketStatus>();
            List <DTORoleAssignments> colDTORoleAssignments = new List <DTORoleAssignments>();

            var optionsBuilder = new DbContextOptionsBuilder <ADefHelpDeskContext>();

            optionsBuilder.UseSqlServer(ConnectionString);

            using (var context = new ADefHelpDeskContext(optionsBuilder.Options))
            {
                // Get all Roles
                var AllRoles = context.AdefHelpDeskRoles.ToList();

                objDTODashboard.tickets = context.AdefHelpDeskTasks.Count();
                objDTODashboard.roles   = context.AdefHelpDeskRoles.Count();
                objDTODashboard.tags    = context.AdefHelpDeskCategories.Where(x => x.Selectable == true).Count();
                objDTODashboard.users   = context.AdefHelpDeskUsers.Count();

                colDTOTicketStatus.Add(new DTOTicketStatus {
                    id = 1, name = "New", ticketCount = context.AdefHelpDeskTasks.Where(x => x.Status == "New").Count()
                });
                colDTOTicketStatus.Add(new DTOTicketStatus {
                    id = 2, name = "Active", ticketCount = context.AdefHelpDeskTasks.Where(x => x.Status == "Active").Count()
                });
                colDTOTicketStatus.Add(new DTOTicketStatus {
                    id = 3, name = "Cancelled", ticketCount = context.AdefHelpDeskTasks.Where(x => x.Status == "Cancelled").Count()
                });
                colDTOTicketStatus.Add(new DTOTicketStatus {
                    id = 4, name = "On Hold", ticketCount = context.AdefHelpDeskTasks.Where(x => x.Status == "On Hold").Count()
                });
                colDTOTicketStatus.Add(new DTOTicketStatus {
                    id = 5, name = "Resolved", ticketCount = context.AdefHelpDeskTasks.Where(x => x.Status == "Resolved").Count()
                });

                var RoleAssignments = context.AdefHelpDeskTasks.Select(x => x.AssignedRoleId).Distinct().ToList();

                foreach (var RoleId in RoleAssignments)
                {
                    var RoleAssignment = AllRoles.Where(x => x.Id == RoleId).FirstOrDefault();

                    if (RoleAssignment != null)
                    {
                        var roleAssignmentCount = context.AdefHelpDeskTasks.Where(x => x.AssignedRoleId == RoleId).Count();
                        colDTORoleAssignments.Add(new DTORoleAssignments {
                            id = 1, name = RoleAssignment.RoleName, roleAssignments = roleAssignmentCount
                        });
                    }
                }

                // Unassigned roles
                var roleAssignmentCountUnassigned = context.AdefHelpDeskTasks.Where(x => x.AssignedRoleId == -1).Count();
                colDTORoleAssignments.Add(new DTORoleAssignments {
                    id = 1, name = "Unassigned", roleAssignments = roleAssignmentCountUnassigned
                });

                objDTODashboard.colTicketStatus    = colDTOTicketStatus;
                objDTODashboard.colRoleAssignments = colDTORoleAssignments;
            }

            return(objDTODashboard);
        }