示例#1
0
        public static void UpdateRosterAnalysisPlayerList(League league, string myTeam, ListView lv, Func <IPlayer, bool> playerPassesFilter)
        {
            LeagueConstants lc = LeagueConstants.For(league.FantasyLeague);

            List <IRoster> baselineTeams = RosterAnalysis.AssignPlayersToTeams(league, p => p.FantasyTeam);

            RosterAnalysis.AssignStatsAndPoints(baselineTeams, lc.ScoringStatExtractors);
            IRoster baselineTeam = baselineTeams.Find(t => t.TeamName == myTeam);

            if (baselineTeam == null)
            {
                return;
            }

            lv.BeginUpdate();
            lv.Items.Clear();
            League l = league.Clone();

            foreach (IPlayer p in l.AllPlayers)
            {
                if (!string.IsNullOrEmpty(p.FantasyTeam) || !playerPassesFilter(p))
                {
                    continue;
                }

                p.FantasyTeam = baselineTeam.TeamName;

                List <IRoster> teams = RosterAnalysis.AssignPlayersToTeams(l, pb => pb.FantasyTeam);
                RosterAnalysis.AssignStatsAndPoints(teams, lc.ScoringStatExtractors);
                IRoster team = teams.Find(t => t.TeamName == baselineTeam.TeamName);

                ListViewItem item = new ListViewItem(p.Name);
                item.Tag = p;
                item.SubItems.Add(string.Empty); // total delta
                float totalDelta = 0f;
                foreach (IStatExtractor extractor in lc.ScoringStatExtractors)
                {
                    float delta = team.Points[extractor.StatName] - baselineTeam.Points[extractor.StatName];
                    totalDelta += delta;
                    item.SubItems.Add(delta.ToString());
                }
                item.SubItems[1].Text = totalDelta.ToString();
                lv.Items.Add(item);

                p.FantasyTeam = string.Empty;
            }
            lv.EndUpdate();
        }
示例#2
0
        public StatCenter(League league, Func <IPlayer, string> extractTeam)
        {
            InitializeComponent();

            this.league = league;
            LeagueConstants lc    = LeagueConstants.For(league.FantasyLeague);
            List <IRoster>  teams = RosterAnalysis.AssignPlayersToTeams(league, extractTeam);

            RosterAnalysis.AssignStatsAndPoints(teams, lc.ScoringStatExtractors);

            this.lvStats.BeginUpdate();
            this.lvPoints.BeginUpdate();

            int columnWidth = this.lvPoints.Width / (lc.ScoringStatExtractors.Count + 2);

            this.AddColumns(this.lvStats, lc.ScoringStatExtractors, columnWidth);
            this.AddColumns(this.lvPoints, lc.ScoringStatExtractors, columnWidth);
            this.lvPoints.Columns.Add("Total Points", columnWidth);

            foreach (IRoster team in teams)
            {
                float        totalPoints = 0;
                ListViewItem statsItem   = new ListViewItem(team.TeamName);
                ListViewItem pointsItem  = new ListViewItem(team.TeamName);
                statsItem.Tag  = team;
                pointsItem.Tag = team;
                foreach (IStatExtractor extractor in lc.ScoringStatExtractors)
                {
                    statsItem.SubItems.Add(team.Stats.ContainsKey(extractor.StatName) ? team.Stats[extractor.StatName].ToString() : "N/A");
                    pointsItem.SubItems.Add(team.Points.ContainsKey(extractor.StatName) ? team.Points[extractor.StatName].ToString() : "N/A");
                    totalPoints += team.Points[extractor.StatName];
                }
                pointsItem.SubItems.Add(totalPoints.ToString());
                this.lvStats.Items.Add(statsItem);
                this.lvPoints.Items.Add(pointsItem);
            }

            this.lvStats.EndUpdate();
            this.lvPoints.EndUpdate();
        }
示例#3
0
        public static void UpdatePointsPlayerList(League league, ListView lv, Func <IPlayer, bool> playerPassesFilter)
        {
            List <IRoster> teams = new List <IRoster>();

            foreach (IPlayer player in league.AllPlayers)
            {
                if (string.IsNullOrEmpty(player.FantasyTeam) && playerPassesFilter(player))
                {
                    Roster r = new Roster(player.Name);
                    r.AllPlayers.Add(player);
                    teams.Add(r);
                }
            }

            LeagueConstants lc = LeagueConstants.For(league.FantasyLeague);

            RosterAnalysis.AssignStatsAndPoints(teams, lc.ScoringStatExtractors);

            lv.BeginUpdate();
            lv.Items.Clear();
            foreach (IRoster team in teams)
            {
                float        totalPoints = 0;
                ListViewItem item        = new ListViewItem(team.TeamName);
                item.Tag = team;
                item.SubItems.Add(string.Empty); // total points
                foreach (IStatExtractor extractor in lc.ScoringStatExtractors)
                {
                    item.SubItems.Add(team.Points[extractor.StatName].ToString());
                    totalPoints += team.Points[extractor.StatName];
                }
                item.SubItems[1].Text = totalPoints.ToString();
                lv.Items.Add(item);
            }
            lv.EndUpdate();
        }