Ejemplo n.º 1
0
        //Compare two lineups in a specific way.
        private void CompareLineups(TeamMatch lower, TeamMatch higher, bool isLower, PlayersToCompare compare, RankingCompareType rankingType)
        {
            //Get players in the team matches.
            var lowerPlayerPositions  = GetPlayerPositions(lower, true);
            var higherPlayerPositions = GetPlayerPositions(higher, true);

            foreach (var lowerPlayerPosition in lowerPlayerPositions)
            {
                //Find positions to compare with.
                Dictionary <Player, List <Lineup.PositionType> > playersPositionsToCompare =
                    GetPlayerPositionsToCompare(lowerPlayerPosition, higherPlayerPositions, compare);

                //Compare 2 positions.
                foreach (var higherPlayerPos in playersPositionsToCompare)
                {
                    //If rankingtype is level, compare the players' levels.
                    //Else, compare category points in the positions that the upper player plays in.
                    if (rankingType == RankingCompareType.Level)
                    {
                        if (!CheckPoints(lowerPlayerPosition.Key.Rankings.LevelPoints, higherPlayerPos.Key.Rankings.LevelPoints))
                        {
                            AddRuleBreaks(lower, lowerPlayerPosition.Key, higher, higherPlayerPos.Key, isLower);
                        }
                    }
                    else
                    {
                        if (!CompareAbovePlayerPositions(lowerPlayerPosition, higherPlayerPos, rankingType))
                        {
                            AddRuleBreaks(lower, lowerPlayerPosition.Key, higher, higherPlayerPos.Key, isLower);
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        //Compares positions from category points in the above players' positions.
        private bool CompareAbovePlayerPositions(KeyValuePair <Player, List <Lineup.PositionType> > lowerPos, KeyValuePair <Player, List <Lineup.PositionType> > higherPos, RankingCompareType compareType)
        {
            int count = 0;

            foreach (var comparePositionType in higherPos.Value)
            {
                if (ComparePlayerPointsType(lowerPos.Key, higherPos.Key, comparePositionType))
                {
                    count++;
                }
            }

            if (compareType == RankingCompareType.CategoryOne)
            {
                return(count >= 1);
            }
            if (compareType == RankingCompareType.CategoryBoth)
            {
                return(count >= 2);
            }
            return(true);
        }