예제 #1
0
        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);
        }
예제 #2
0
        static async Task GetLeagueStats()
        {
            string stats = await Http.GetRawDataAsync(UrlGen.LeagueSettingsUrl(YConstants.Leagues.Rounders2019));

            Console.WriteLine(stats);
        }
예제 #3
0
        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));
        }