public void UpdateTopTen() { List <PresentationScoreboardModel> Scoreboard = new List <PresentationScoreboardModel>(); foreach (var t in db.StudentTeams.Where(a => a.CompID == 1).OrderByDescending(a => a.RoundEntries.Where(b => b.Usable == true).Average(b => b.Score)).ThenBy(a => a.TeamNumberBranch).ThenBy(a => a.TeamNumberSpecific)) { var AverageScore = 0; var AddedScore = 0; foreach (var r in db.RoundEntries.Where(a => a.TeamID == t.TeamID).Where(a => a.Usable == true)) { AddedScore++; AverageScore = AverageScore + r.Score; } if (AddedScore != 0) { AverageScore = AverageScore / 2; } var PresentationScoreboardModel = new PresentationScoreboardModel(); if (AverageScore != 0) { PresentationScoreboardModel.TeamID = t.TeamID; PresentationScoreboardModel.TeamName = t.TeamName; PresentationScoreboardModel.TeamNumberBranch = t.TeamNumberBranch; PresentationScoreboardModel.TeamNumberSpecific = t.TeamNumberSpecific; PresentationScoreboardModel.Average = AverageScore; Scoreboard.Add(PresentationScoreboardModel); } } Scoreboard = Scoreboard.OrderByDescending(p => p.Average).Take(10).ToList(); this._hubContext.Clients.All.SendAsync("changeTeamScores", Scoreboard); }
public ActionResult Presentation(int id) { if (id == 0) { //return new HttpStatusCodeResult(HttpStatusCode.BadRequest); } var PresentationViewModel = new PresentationViewModel(); PresentationViewModel.CompData = (from a in db.Competitions where a.CompID == id select a).FirstOrDefault(); int i = 0; foreach (var t in db.StudentTeams.Where(a => a.CompID == id)) { var AverageScore = 0; var Round1Score = (from r in db.RoundEntries where r.TeamID == t.TeamID && r.Round == 1 select r).FirstOrDefault(); var Round2Score = (from r in db.RoundEntries where r.TeamID == t.TeamID && r.Round == 2 select r).FirstOrDefault(); if (Round1Score != null) { AverageScore += Round1Score.Score; } if (Round2Score != null) { AverageScore += Round2Score.Score; } if (Round1Score != null || Round2Score != null) { AverageScore = AverageScore / 2; } var PresentationScoreboardModel = new PresentationScoreboardModel(); if (Round1Score != null || Round2Score != null) { PresentationScoreboardModel.TeamID = t.TeamID; PresentationScoreboardModel.TeamName = t.TeamName; PresentationScoreboardModel.TeamNumberBranch = t.TeamNumberBranch; PresentationScoreboardModel.TeamNumberSpecific = t.TeamNumberSpecific; PresentationScoreboardModel.Average = AverageScore; PresentationViewModel.Scoreboard.Add(PresentationScoreboardModel); } } int c = 0; foreach (var count in db.StudentTeams.Where(a => a.CompID == id)) { c++; } PresentationViewModel.TeamCount = c; PresentationViewModel.Scoreboard = PresentationViewModel.Scoreboard.OrderByDescending(s => s.Average).ToList(); return(View(PresentationViewModel)); }