Example #1
0
        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);
            }
        }
Example #2
0
        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);
 }
Example #4
0
        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();
            }
        }
Example #5
0
        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());
        }
Example #6
0
        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);
            }
        }
Example #9
0
        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;
            }
        }
Example #10
0
        // 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"));
        }
Example #11
0
        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();
        }
Example #12
0
 public SeasonTeamStatsView(TeamRanking ranking)
 {
     Ranking = ranking;
 }