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