public async Task <IActionResult> Index() { var selectedInstanceID = this.InstanceSelector.InstanceID; var topAwarded = await this.DatabaseContext.AwardLog .Where(i => i.Award.InstanceID == selectedInstanceID) .GroupBy(i => i.AwardID) .Select(i => new AwardsRow { AwardNumber = i.FirstOrDefault().Award.AwardNumber, TimesAwards = i.Count(), Name = i.FirstOrDefault().Award.Name, Description = i.FirstOrDefault().Award.Description }) .OrderByDescending(i => i.TimesAwards) .Take(this.maxNumberOfResults) .ToListAsync(); var topUsers = await this.DatabaseContext.AwardLog .Where(i => i.Award.InstanceID == selectedInstanceID) .GroupBy(i => i.UserID) .Select(i => new AttendeeRow { UserNamber = i.FirstOrDefault().User.UserNumber, ExternalId = i.FirstOrDefault().User.ExternalID, Points = i.Sum(p => p.Points) }) .OrderByDescending(i => i.Points) .Take(this.maxNumberOfResults) .ToListAsync(); var topRedemptions = await this.DatabaseContext.RedemptionLog .Where(i => i.Redemption.InstanceID == selectedInstanceID) .GroupBy(i => i.RedemptionID) .Select(i => new RedemptionsRow { RedemptionNumber = i.FirstOrDefault().Redemption.RedemptionNumber, TimesRedeemed = i.Count(), Name = i.FirstOrDefault().Redemption.Name, Description = i.FirstOrDefault().Redemption.Description }) .OrderByDescending(i => i.TimesRedeemed) .Take(this.maxNumberOfResults) .ToListAsync(); var dashboardReports = new DashboardReports { AwardsList = topAwarded, AttendeeList = topUsers, RedemptionsList = topRedemptions }; return(this.View("~/Views/Admin/Admin.cshtml", dashboardReports)); }
public async Task <IActionResult> Index() { //var topAwardPoints = await _context.AwardLog // .GroupBy(i => i.AwardID) // .Select(i => new TopAward // { // AwardID = i.Key, // TotalPoints = i.Sum(b => b.Points) // }) // .OrderBy(i => i.TotalPoints) // .Take(25) // .ToListAsync(); //foreach (var topAwardPoint in topAwardPoints) //{ // topAwardPoint.Award = await _context.Award.FirstOrDefaultAsync( // i => i.AwardID == topAwardPoint.AwardID); //} //var topAwardPoints = await _context.RedemptionLog // .GroupBy(i => i.UserID) // .Select(i => new // { // UserID = i.Key, // TotalPoints = i.Sum(b => ) // }) // .Take(25) // .ToListAsync(); //return View("~/Views/Admin/Admin.cshtml", topAwardPoints); var topAwarded = _context.AwardLog .GroupBy(i => i.AwardID) .Select(i => new AwardsRow() { AwardNumber = i.FirstOrDefault().Award.AwardNumber, TimesAwards = i.Count(), Name = i.FirstOrDefault().Award.Name, Description = i.FirstOrDefault().Award.Description }) .OrderByDescending(i => i.TimesAwards) .Take(25) .ToList(); var topUsers = _context.AwardLog .GroupBy(i => i.UserID) .Select(i => new UserRow() { UserNamber = i.FirstOrDefault().User.UserNumber, ExternalId = i.FirstOrDefault().User.ExternalID, Points = i.Sum(p => p.Points) }) .OrderByDescending(i => i.Points) .Take(25) .ToList(); var dashboardReports = new DashboardReports(); dashboardReports.AwardsList = topAwarded; dashboardReports.UserList = topUsers; return(View("~/Views/Admin/Admin.cshtml", dashboardReports)); }