コード例 #1
0
        public IActionResult Admin()
        {
            List <Ticket> RelatedTickets = ticketRepo.GetAllTickets().ToList();

            List <Project> Projects = projectRepo.GetAllProjectsWuthTickets();
            List <ProjectStatisticViewModel> ProjectsViewModels = new List <ProjectStatisticViewModel>();

            foreach (Project project in Projects)
            {
                ProjectsViewModels.Add(new ProjectStatisticViewModel
                {
                    ProjectName             = project.ProjectName,
                    AssignedTicketsCount    = project.Tickets.Where(t => t.DeveloperID != null).Count(),
                    UnassignedTickectsCount = project.Tickets.Where(t => t.DeveloperID == null).Count(),
                    DevelopersCount         = project.Developers.Count()
                }
                                       );
            }

            TicketsStatisticsModel TSM = new TicketsStatisticsModel
            {
                OpenTicketsCount       = RelatedTickets.Where(t => t.Status == StatusType.Open).Count(),
                InProgressTicketsCount = RelatedTickets.Where(t => t.Status == StatusType.InProgress).Count(),
                StrugglingTicketsCount = RelatedTickets.Where(t => t.Status == StatusType.Struggling).Count(),
                CompleteTicketCount    = RelatedTickets.Where(t => t.Status == StatusType.Complete).Count(),

                LowPriorityTicketsCount      = RelatedTickets.Where(t => t.Priority == PriorityType.Low).Count(),
                ModeratePriorityTicketsCount = RelatedTickets.Where(t => t.Priority == PriorityType.Moderate).Count(),
                HightPriorityTicketsCount    = RelatedTickets.Where(t => t.Priority == PriorityType.High).Count(),
                ExtremePriorityTicketsCount  = RelatedTickets.Where(t => t.Priority == PriorityType.Extreme).Count(),

                Projects = ProjectsViewModels
            };



            return(View(TSM));
        }