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(); }
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); }
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); }
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); }
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); }
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)); }