// GET: Dashboard public ActionResult Index() { //create the data for the dashboard using the ViewModel var data = new DashboardVM(); var myTickets = ticketHelper.GetMyTicketsByRole(User.Identity.GetUserId()); var myProject = projhelper.myProjects(User.Identity.GetUserId()); var myTicketHistory = ticketHelper.myTicketHistory(User.Identity.GetUserId()); var myTicketAttachments = ticketHelper.myTicketAttachments(User.Identity.GetUserId()); var myTicketNotifications = ticketHelper.myTicketNotifications(User.Identity.GetUserId()); var myTicketComments = ticketHelper.myTicketComments(User.Identity.GetUserId()); var projman = new List <ApplicationUser>(); //Load up all the TableData data.TableData.Projects = db.Projects.OrderByDescending(t => t.Id).ToList(); data.TableData.Tickets = myTickets.OrderByDescending(t => t.Created).ToList(); data.TableData.TicketAttachments = myTicketAttachments.OrderByDescending(t => t.Created).ToList(); data.TableData.TicketNotifications = myTicketNotifications.OrderByDescending(t => t.Created).ToList(); data.TableData.TicketsComments = myTicketComments.OrderByDescending(t => t.Created).ToList(); data.TableData.TicketsHistories = myTicketHistory.OrderByDescending(t => t.Changed).ToList(); data.TableData.ProjUser = projman.ToList(); //data.TableData.Tickets = db.Tickets.Where(t => t.Tickets == myTickets).OrderByDescending(t => t.Created).ToList(); //Load up all the Ticket Dashboard Data data.TicketData.TicketCount = myTickets.Count(); data.TicketData.UnassignedTicketCount = myTickets.Where(c => c.TicketStatus.Name == "Unassigned").Count(); data.TicketData.NotinProgressCount = myTickets.Where(c => c.TicketStatus.Name == "Not in Progress").Count(); data.TicketData.InProgressCount = myTickets.Where(c => c.TicketStatus.Name == "In Progress").Count(); data.TicketData.OnHoldCount = myTickets.Where(c => c.TicketStatus.Name == "On Hold").Count(); data.TicketData.ResolvedCount = myTickets.Where(c => c.TicketStatus.Name == "Resolved").Count(); data.TicketData.ClosedCount = myTickets.Where(c => c.TicketStatus.Name == "Closed").Count(); data.TicketData.TicketNotificationsCount = myTicketNotifications.Count(); data.TicketData.TicketCommentCount = myTicketComments.Count(); data.TicketData.TicketHistoryCount = myTicketHistory.Count(); data.TicketData.TicketAttachmentCount = myTicketAttachments.Count(); data.TicketData.ImmediateCount = myTickets.Where(c => c.TicketPriority.Name == "Immediate").Count(); data.TicketData.HighCount = myTickets.Where(c => c.TicketPriority.Name == "High").Count(); data.TicketData.MediumCount = myTickets.Where(c => c.TicketPriority.Name == "Medium").Count(); data.TicketData.LowCount = myTickets.Where(c => c.TicketPriority.Name == "Low").Count(); data.TicketData.NoPriorityCount = myTickets.Where(c => c.TicketPriority.Name == "No Priority").Count(); data.TicketData.IgnoreCount = myTickets.Where(c => c.TicketPriority.Name == "Ignore").Count(); //Load up all the Project Dashboard Data if (User.IsInRole("Admin")) { data.ProjectData.ProjectCount = db.Projects.Count(); } if (!User.IsInRole("Admin")) { data.ProjectData.ProjectCount = myProject.Count(); } data.ProjectData.OpenProjectCount = db.Projects.Where(c => c.ProjectStats.Name == "Open").Count(); data.ProjectData.OnHoldProjectCount = db.Projects.Where(c => c.ProjectStats.Name == "On Hold").Count(); data.ProjectData.ClosedProjectCount = db.Projects.Where(c => c.ProjectStats.Name == "Closed").Count(); data.ProjectData.WaitingOnApprovalProjectCount = db.Projects.Where(c => c.ProjectStats.Name == "Waiting on Approval").Count(); return(View(data)); }