public static async Task <YahooLeague> Create(string leagueId) { string leagueXml = await Services.Http.GetRawDataAsync(UrlGen.LeagueSettingsUrl(leagueId)); XmlDocument doc = new XmlDocument(); doc.LoadXml(leagueXml); NSMgr nsmgr = new NSMgr(doc); XmlNode league = doc.SelectSingleNode(nsmgr.GetXPath("fantasy_content", "league"), nsmgr); string name = nsmgr.GetValue(league, "name"); List <Constants.StatID> scoringStats = new List <Constants.StatID>(); foreach (XmlNode node in league.SelectNodes(nsmgr.GetXPath("settings", "stat_categories", "stats", "stat"), nsmgr)) { string displayOnly = nsmgr.GetValue(node, "is_only_display_stat"); // !1 -> counts for points if (displayOnly != "1") { string idString = nsmgr.GetValue(node, "stat_id"); int id = int.Parse(idString); scoringStats.Add(YConstants.Stats.ScoringStatIdFromYahooStatId(id)); } } Dictionary <Position, int> positionCounts = new Dictionary <Position, int>(); foreach (XmlNode node in league.SelectNodes(nsmgr.GetXPath("settings", "roster_positions", "roster_position"), nsmgr)) { string position = nsmgr.GetValue(node, "position"); string countString = nsmgr.GetValue(node, "count"); int count = int.Parse(countString); positionCounts[YConstants.Positions.PositionFromYahooPosition(position)] = count; } //List<YahooPlayerData> allPlayers = await YahooPlayerData.GetAllPlayers(leagueId); string leagueTeams = await Services.Http.GetRawDataAsync(UrlGen.TeamsWithRostersUrl(leagueId)); doc.LoadXml(leagueTeams); nsmgr = new NSMgr(doc); league = doc.SelectSingleNode(nsmgr.GetXPath("fantasy_content", "league"), nsmgr); List <Team> teams = new List <Team>(); foreach (XmlNode team in league.SelectNodes(nsmgr.GetXPath("teams", "team"), nsmgr)) { } return(null); }
public static async Task <League> Create(string leagueId) { string leagueXml = await Services.Http.GetRawDataAsync(UrlGen.LeagueSettingsUrl(leagueId)); XmlDocument doc = new XmlDocument(); doc.LoadXml(leagueXml); NSMgr nsmgr = new NSMgr(doc); XmlNode league = doc.SelectSingleNode(nsmgr.GetXPath("fantasy_content", "league"), nsmgr); string key = nsmgr.GetValue(league, "league_key"); string name = nsmgr.GetValue(league, "name"); Dictionary <int, StatDefinition> stats = new Dictionary <int, StatDefinition>(); foreach (XmlNode node in league.SelectNodes(nsmgr.GetXPath("settings", "stat_categories", "stats", "stat"), nsmgr)) { StatDefinition stat = StatDefinition.Create(node, nsmgr); stats[stat.Id] = stat; } List <RosterPosition> rosterPositions = new List <RosterPosition>(); foreach (XmlNode node in league.SelectNodes(nsmgr.GetXPath("settings", "roster_positions", "roster_position"), nsmgr)) { rosterPositions.Add(RosterPosition.Create(node, nsmgr)); } string leagueTeams = await Services.Http.GetRawDataAsync(UrlGen.TeamsWithRostersUrl(leagueId)); doc.LoadXml(leagueTeams); nsmgr = new NSMgr(doc); league = doc.SelectSingleNode(nsmgr.GetXPath("fantasy_content", "league"), nsmgr); List <Team> teams = new List <Team>(); foreach (XmlNode team in league.SelectNodes(nsmgr.GetXPath("teams", "team"), nsmgr)) { teams.Add(Team.Create(team, nsmgr)); } Dictionary <string, Player> players = new Dictionary <string, Player>(); foreach (Player player in await Player.GetAllPlayers(leagueId)) { player.SetStatValues(stats); players[player.Key] = player; } string leagueStandings = await Services.Http.GetRawDataAsync(UrlGen.LeagueStandings(leagueId)); doc.LoadXml(leagueStandings); nsmgr = new NSMgr(doc); league = doc.SelectSingleNode(nsmgr.GetXPath("fantasy_content", "league"), nsmgr); List <Standings> standings = new List <Standings>(); foreach (XmlNode node in league.SelectNodes(nsmgr.GetXPath("standings", "teams", "team"), nsmgr)) { standings.Add(Standings.Create(node, nsmgr)); } return(new League(key, name, stats, rosterPositions, teams, players, standings)); }