Beispiel #1
0
        public Team(EventType.TeamType teamType, List <Player> players, string name = null)
        {
            this.TeamType = teamType;
            bool foundSkip = false;

            foreach (Player player in players)
            {
                if (player.IsSkip)
                {
                    foundSkip = true;
                }
            }
            if (!foundSkip && teamType != EventType.TeamType.MIXED_DOUBLES)
            {
                throw new Exception("Created team without a skip!");
            }
            this.Players = players;
            this.Name    = GetTeamName(name, teamType);
            this.TeamId  = GetTeamId();
        }
Beispiel #2
0
        private string GetTeamName(string name, EventType.TeamType teamType)
        {
            string teamName = "";

            teamName = name;
            if (teamType == EventType.TeamType.MIXED_DOUBLES)
            {
                teamName = GetMixedDoublesTeamShortNameFromTeam();
                if (string.IsNullOrEmpty(teamName))
                {
                    teamName = name;
                }
            }
            if (string.IsNullOrEmpty(teamName))
            {
                teamName = GetTeamShortName();
            }
            if (string.IsNullOrEmpty(teamName))
            {
                teamName = "Unknown";
            }
            return(teamName);
        }
Beispiel #3
0
        public static Team GetTeam(Api.GameObject apiGame, bool isHomeTeam)
        {
            EventType.TeamType teamType = GetTeamTypeFromDivision([email protected]);

            string html            = "";
            string teamDisplayName = "";

            if (isHomeTeam)
            {
                html            = Request.GetHtml(apiGame.homeTeamUrl);
                teamDisplayName = apiGame.homeTeamDisplayName;
            }
            else
            {
                html            = Request.GetHtml(apiGame.awayTeamUrl);
                teamDisplayName = apiGame.awayTeamDisplayName;
            }

            List <Player> players = GetPlayers(html, teamType);
            Team          team    = new Team(teamType, players, teamDisplayName);

            return(team);
        }
Beispiel #4
0
        private static List <Player> GetPlayers(string html, EventType.TeamType teamType)
        {
            HtmlNode        document  = GetHtmlNode(html);
            List <HtmlNode> names     = document.QuerySelectorAll(Configuration.Values["selectors:teamPagePlayerFullNames"]).ToList();;
            List <HtmlNode> images    = document.QuerySelectorAll(Configuration.Values["selectors:teamPagePlayerImages"]).ToList();
            List <HtmlNode> positions = document.QuerySelectorAll(Configuration.Values["selectors:teamPagePlayerPositions"]).ToList();

            var  players   = new List <Player>();
            bool addedSkip = false;

            for (var i = 0; i < names.Count; i++)
            {
                Player p = GetPlayer(names[i].InnerHtml, (images.Count > i ? images[i].InnerHtml : null), (positions.Count > i ? positions[i].InnerHtml : null), 4 - i);
                if (p.IsSkip)
                {
                    addedSkip = true;
                }
                players.Add(p);
            }
            int numberOfPlayers = EventType.GetNumberOfPlayersFromTeamType(teamType);
            Queue <Player.Position> positionsLeft = GetEmptyPositions(players, teamType);

            while (players.Count < numberOfPlayers)
            {
                Player.Position position = 0;
                if (positionsLeft.Count > 0)
                {
                    position = positionsLeft.Dequeue();
                }
                Player p = new Player(null, null, Gender.Unknown, position, (!addedSkip ? true : false));
                addedSkip = true;
                Program.Logger.Log("Adding Player", p);
                players.Add(p);
            }
            return(players);
        }
Beispiel #5
0
        private static Queue <Player.Position> GetEmptyPositions(List <Player> players, EventType.TeamType teamType)
        {
            Player.Position[] positions = { Player.Position.Fourth, Player.Position.Third, Player.Position.Second, Player.Position.Lead };
            var emptyPositions          = new Queue <Player.Position>();

            foreach (Player.Position position in positions)
            {
                bool foundPosition = false;
                foreach (Player p in players)
                {
                    if (position == p.position)
                    {
                        foundPosition = true;
                        break;
                    }
                }
                if (!foundPosition)
                {
                    emptyPositions.Enqueue(position);
                }
            }
            return(emptyPositions);
        }
Beispiel #6
0
        public void GetEventInfoTest(string czId, Gender g, string startDate, string endDate, string name, EventType.TeamType teamType, EventFormat eventFormat, bool standingsIsNull)
        {
            Console.WriteLine("GetEventInfoTest\nCZID: " + czId);
            Event e = Request.GetEventInfo(czId);

            Xunit.Assert.Equal(czId, e.CZId);
            Xunit.Assert.Equal(g, e.Type.Gender);
            Xunit.Assert.Equal(DateTime.Parse(startDate), e.StartDate);
            Xunit.Assert.Equal(DateTime.Parse(endDate), e.EndDate);
            Xunit.Assert.Equal(teamType, e.Type.teamType);
            Xunit.Assert.Equal(name, e.Name);
            Xunit.Assert.Equal(eventFormat, e.Type.EventFormat);
            Xunit.Assert.Equal(standingsIsNull, (e.Standings == null));
            Xunit.Assert.True(Utility.ValidatePlayoffHtml(e.Playoff.Html));
        }