public override List <TeamRanking> GetFinalRankings() { var finalGroupName = CompetitionConfig.FinalRankingGroupName; var currentFinalRankings = Rankings.Where(r => r.GroupName.Equals(finalGroupName)).ToList(); if (currentFinalRankings.Count > 0) { return(currentFinalRankings); } else { var finalRankings = new List <TeamRanking>(); CompetitionConfig.FinalRankingRules.ToList().ForEach(rule => { var teams = rule.GetTeamsForRule(this); var rank = rule.Rank; teams.OrderBy(t => t.Rank).ToList().ForEach(t => { var ranking = new TeamRanking((int)rank, finalGroupName, t.CompetitionTeam, 0); finalRankings.Add(ranking); rank++; }); }); return(finalRankings); } }
View GetView(TeamRanking item, int position, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { view = Activity.LayoutInflater.Inflate(Resource.Layout.TeamRankingItem, null); } view.FindViewById <TextView>(Resource.Id.lblDate).Text = item.DateUpdatedUtc.ToString("dd MMMM"); view.FindViewById <TextView>(Resource.Id.lblRank).Text = item.Rank.ToString(); if (position == adapter.Items.Count - 1) { view.FindViewById <TextView>(Resource.Id.lblChange).Visibility = ViewStates.Gone; view.FindViewById <ImageView>(Resource.Id.imgChange).Visibility = ViewStates.Gone; } else { view.FindViewById <TextView>(Resource.Id.lblChange).Visibility = ViewStates.Visible; view.FindViewById <ImageView>(Resource.Id.imgChange).Visibility = ViewStates.Visible; var nextItem = adapter.Items[position + 1]; var change = nextItem.Rank - item.Rank; if (change < 0) { view.FindViewById <TextView>(Resource.Id.lblChange).SetTextColor(Color.Red); } else { view.FindViewById <TextView>(Resource.Id.lblChange).SetTextColor(Color.DarkGreen); } view.FindViewById <TextView>(Resource.Id.lblChange).Text = Math.Abs(change).ToString(); } return(view); }
public Tables(Database db) { Blocks = new Blocks(db); Config = new Config(db); ElimsCommitHistory = new ElimsCommitHistory(db); ElimsData = new ElimsData(db); ElimsGameSpecific = new ElimsGameSpecific(db); ElimsGameSpecificHistory = new ElimsGameSpecificHistory(db); ElimsResults = new ElimsResults(db); ElimsScores = new ElimsScores(db); ElimsScoresHistory = new ElimsScoresHistory(db); LeagueConfig = new LeagueConfig(db); LeagueHistory = new LeagueHistory(db); LeagueInfo = new LeagueInfo(db); LeagueMeets = new LeagueMeets(db); Match = new Match(db); MatchSchedule = new MatchSchedule(db); Quals = new Quals(db); QualsCommitHistory = new QualsCommitHistory(db); QualsData = new QualsData(db); QualsGameSpecific = new QualsGameSpecific(db); QualsGameSpecificHistory = new QualsGameSpecificHistory(db); QualsResults = new QualsResults(db); QualsScores = new QualsScores(db); QualsScoresHistory = new QualsScoresHistory(db); ScheduleDetail = new ScheduleDetail(db); ScheduleStation = new ScheduleStation(db); Team = new Team(db); TeamRanking = new TeamRanking(db); }
public void SetData(TeamRanking item, List <TeamRanking> items, int position) { lblDate.Text = item.DateUpdatedUtc.ToString("dd MMMM"); lblRank.Text = item.Rank.ToString(); if (position == items.Count - 1) { lblChange.Hidden = true; imgChange.Hidden = true; } else { lblChange.Hidden = false; imgChange.Hidden = false; var nextItem = items[position + 1]; var change = nextItem.Rank - item.Rank; if (change < 0) { lblChange.TextColor = UIColor.Red; } else { lblChange.TextColor = UIColor.FromRGB(0, 160, 0); } lblChange.Text = Math.Abs(change).ToString(); } }
public void ShouldExerciseTeamRankingRepositoryNHibernate() { var compRepo = new CompetitionRepository(new RepositoryNHibernate <Competition>()); var repo = new TeamRankingRepository(new RepositoryNHibernate <TeamRanking>()); var comp1 = new Season(null, "Season 1", 1, null, null, null, null, false, false, 1, null); var comp2 = new Playoff(null, "Playoff 1", 1, 1, null, null, null, null, false, false, 1, null); compRepo.Update(comp1); compRepo.Update(comp2); for (int i = 0; i < 10; i++) { var ranking = new TeamRanking(1, "Group 1", new CompetitionTeam(comp1, null, "Team " + (i * 10), null, null, 5, null, 1, null), 1); repo.Update(ranking); } for (int i = 0; i < 5; i++) { var ranking = new TeamRanking(1, "Group 5", new CompetitionTeam(comp2, null, "Team " + (i * 100), null, null, 5, null, 1, null), 1); repo.Update(ranking); } var rankings = repo.GetByCompetition(comp1.Id); StrictEqual(10, rankings.Count()); rankings = repo.GetByCompetition(comp2.Id); StrictEqual(5, rankings.Count()); }
public UITableViewCell GetCell(UITableView tableView, NSIndexPath indexPath, TeamRanking item) { var cell = tableView.DequeueReusableCell("TeamRankingCell", indexPath) as TeamRankingCell; cell.SetData(item, source.Items, indexPath.Row); cell.SelectionStyle = UITableViewCellSelectionStyle.None; return(cell); }
public bool UpdateRanking(TeamRanking ranking) { using (var ctx = new DataContext()) { var rank = ctx.Ranking.SingleOrDefault(x => x.TeamId == ranking.TeamId); if (rank != null) { // Update DB record rank.Games = ranking.Games; rank.Points = ranking.Points; rank.Goals = ranking.Goals; rank.Rank = ranking.Rank; ctx.SaveChanges(); return(true); } return(false); } }
public TeamRanking GetRanking(int teamId) { using (var ctx = new DataContext()) { var rank = ctx.Ranking.SingleOrDefault(x => x.TeamId == teamId); if (rank != null) { return(rank); } // Create a new entry for the team in the ranking var team = GetTeam(teamId); var ranking = new TeamRanking { TeamId = teamId, Name = team.Name }; ctx.Ranking.Add(ranking); ctx.SaveChanges(); return(ranking); } }
private void CalculateAndSortTeamsScores() { _teamsRankings = new List <TeamRanking>(_teams.Count); foreach (DBTeam team in _teams) { TeamRanking teamRanking = new TeamRanking(team.TeamId, team.TeamName); List <PlayerRanking> teamPlayersRankings = _playersRankings.FindAll(x => x.PlayerTeamId == team.TeamId); foreach (PlayerRanking pr in teamPlayersRankings) { teamRanking.TeamPoints += pr.PlayerPoints; teamRanking.TeamScore += pr.PlayerScore; } _teamsRankings.Add(teamRanking); } _teamsRankings = _teamsRankings.OrderByDescending(x => x.TeamPoints).ThenByDescending(x => x.TeamScore).ToList(); for (int i = 0; i < _teamsRankings.Count; i++) { _teamsRankings[i].Order = i + 1; } }
// GET: Employees/Ranking/ public ActionResult Ranking() { if (User.Identity.IsAuthenticated) { var emp = db.Employees.Find(Guid.Parse(User.Identity.GetUserId())); if (emp.IsManager) { List <TeamRanking> ranking = new List <TeamRanking>(); ViewBag.Role = "Manager"; foreach (Team tm in db.Teams) { if (tm.Productivity > 0) { TeamRanking tr = new TeamRanking { Description = tm.Description, Productivity = tm.Productivity, BestEmployee = BestEmployee(tm) }; ranking.Add(tr); } } ranking = ranking.OrderByDescending(r => r.Productivity).ToList(); Rank(ranking); return(View(ranking)); } return(new HttpStatusCodeResult(HttpStatusCode.Unauthorized)); } return(RedirectToAction("Login", "Account")); }
public void UpdateRankings(FixtureMatchVM fixtureMatch) { int nPositions = _context.Divisions.FirstOrDefault(d => d.ID == fixtureMatch.Fixture.DivisionID).PositionNo; Fixture fixture = fixtureMatch.Fixture; TeamRanking teamRankingHome = new TeamRanking(); var teamRankingHomeToUpdate = _context.TeamRankings.FirstOrDefault(d => d.TeamID == fixture.HomeTeamID && d.SeasonID == fixture.SeasonID && d.DivisionID == fixture.DivisionID); TeamRanking teamRankingAway = new TeamRanking(); var teamRankingAwayToUpdate = _context.TeamRankings.FirstOrDefault(d => d.TeamID == fixture.AwayTeamID && d.SeasonID == fixture.SeasonID && d.DivisionID == fixture.DivisionID); if (teamRankingHomeToUpdate == null) { teamRankingHome.TeamID = fixture.HomeTeamID; teamRankingHome.DivisionID = fixture.DivisionID; teamRankingHome.SeasonID = fixture.SeasonID; teamRankingHome.Points = (double)(fixture.HomeTeamScore + fixture.HomeTeamBonus); teamRankingHome.Won = (fixture.HomeTeamScore > fixture.AwayTeamScore) ? 1 : 0; teamRankingHome.Lost = (fixture.HomeTeamScore < fixture.AwayTeamScore) ? 1 : 0; teamRankingHome.Played = 1; _context.Add(teamRankingHome); _context.SaveChanges(); } else { teamRankingHome = teamRankingHomeToUpdate; teamRankingHome.Points += (double)(fixture.HomeTeamScore + fixture.HomeTeamBonus); teamRankingHome.Won += (fixture.HomeTeamScore > fixture.AwayTeamScore) ? 1 : 0; teamRankingHome.Lost += (fixture.HomeTeamScore < fixture.AwayTeamScore) ? 1 : 0; teamRankingHome.Played += 1; _context.Update(teamRankingHome); _context.SaveChanges(); } if (teamRankingAwayToUpdate == null) { teamRankingAway.TeamID = fixture.AwayTeamID; teamRankingAway.DivisionID = fixture.DivisionID; teamRankingAway.SeasonID = fixture.SeasonID; teamRankingAway.Points = (double)(fixture.AwayTeamScore + fixture.AwayTeamBonus); teamRankingAway.Won = (fixture.HomeTeamScore < fixture.AwayTeamScore) ? 1 : 0; teamRankingAway.Lost = (fixture.HomeTeamScore > fixture.AwayTeamScore) ? 1 : 0; teamRankingAway.Played = 1; _context.Add(teamRankingAway); _context.SaveChanges(); } else { teamRankingAway = teamRankingAwayToUpdate; teamRankingAway.Points += (double)(fixture.AwayTeamScore + fixture.AwayTeamBonus); teamRankingAway.Won += (fixture.HomeTeamScore < fixture.AwayTeamScore) ? 1 : 0; teamRankingAway.Lost += (fixture.HomeTeamScore > fixture.AwayTeamScore) ? 1 : 0; teamRankingAway.Played += 1; _context.Update(teamRankingAway); _context.SaveChanges(); } //Loop trough the matches to update the rankings foreach (Match match in fixtureMatch.Matches) { if (match.HomePlayerID != 1) { //Add statistics for home player PlayerRanking playerRankingHome = new PlayerRanking(); var playerRankingHomeToUpdate = _context.PlayerRankings.FirstOrDefault(d => d.PlayerID == match.HomePlayerID && d.SeasonID == fixture.SeasonID && d.DivisionID == fixture.DivisionID); if (playerRankingHomeToUpdate == null) { playerRankingHome.TotalPositions = (int)match.PositionID; playerRankingHome.PlayerID = match.HomePlayerID; playerRankingHome.SeasonID = fixture.SeasonID; playerRankingHome.DivisionID = fixture.DivisionID; playerRankingHome.Played = 1; if (match.HomePlayerScore > match.AwayPlayerScore) { playerRankingHome.WonMatches = 1; playerRankingHome.LostMatches = 0; } else { playerRankingHome.WonMatches = 0; playerRankingHome.LostMatches = 1; } playerRankingHome.WonGames = (short)match.HomePlayerScore; playerRankingHome.LostGames = (short)match.AwayPlayerScore; playerRankingHome.Points = RankPlayer.CalcPoints(match.Position.Name, (short)match.HomePlayerScore, (short)match.AwayPlayerScore, ResultFor.Home); playerRankingHome.Average = playerRankingHome.Points / playerRankingHome.Played; _context.Add(playerRankingHome); } else { playerRankingHome = playerRankingHomeToUpdate; playerRankingHome.Played += 1; playerRankingHome.TotalPositions += (int)match.PositionID; if (match.HomePlayerScore > match.AwayPlayerScore) { playerRankingHome.WonMatches += 1; } else { playerRankingHome.LostMatches += 1; } playerRankingHome.WonGames += (short)match.HomePlayerScore; playerRankingHome.LostGames += (short)match.AwayPlayerScore; playerRankingHome.Points += RankPlayer.CalcPoints(match.Position.Name, (short)match.HomePlayerScore, (short)match.AwayPlayerScore, ResultFor.Home); playerRankingHome.Average = playerRankingHome.Points / playerRankingHome.Played; _context.Update(playerRankingHome); } } if (match.AwayPlayerID != 1) { //Add statistics for away player PlayerRanking playerRankingAway = new PlayerRanking(); var playerRankingAwayToUpdate = _context.PlayerRankings.FirstOrDefault(d => d.PlayerID == match.AwayPlayerID && d.SeasonID == fixture.SeasonID && d.DivisionID == fixture.DivisionID); if (playerRankingAwayToUpdate == null) { playerRankingAway.PlayerID = match.AwayPlayerID; playerRankingAway.SeasonID = fixture.SeasonID; playerRankingAway.DivisionID = fixture.DivisionID; playerRankingAway.Played = 1; playerRankingAway.TotalPositions = (int)match.PositionID; if (match.HomePlayerScore < match.AwayPlayerScore) { playerRankingAway.WonMatches = 1; playerRankingAway.LostMatches = 0; } else { playerRankingAway.WonMatches = 0; playerRankingAway.LostMatches = 1; } playerRankingAway.WonGames = (short)match.AwayPlayerScore; playerRankingAway.LostGames = (short)match.HomePlayerScore; playerRankingAway.Points = RankPlayer.CalcPoints(match.Position.Name, (short)match.HomePlayerScore, (short)match.AwayPlayerScore, ResultFor.Away); playerRankingAway.Average = playerRankingAway.Points / playerRankingAway.Played; _context.Add(playerRankingAway); } else { playerRankingAway = playerRankingAwayToUpdate; playerRankingAway.Played += 1; playerRankingAway.TotalPositions += (int)match.PositionID; if (match.HomePlayerScore < match.AwayPlayerScore) { playerRankingAway.WonMatches += 1; } else { playerRankingAway.LostMatches += 1; } playerRankingAway.WonGames += (short)match.AwayPlayerScore; playerRankingAway.LostGames += (short)match.HomePlayerScore; playerRankingAway.Points += RankPlayer.CalcPoints(match.Position.Name, (short)match.HomePlayerScore, (short)match.AwayPlayerScore, ResultFor.Away); playerRankingAway.Average = playerRankingAway.Points / playerRankingAway.Played; _context.Update(playerRankingAway); } } } _context.SaveChanges(); }
public SeasonTeamStatsView(TeamRanking ranking) { Ranking = ranking; }