Ejemplo n.º 1
0
        public string GenerateBody()
        {
            var bodyOut = new StringBuilder();

            var winners = GetWinners();
            var losers  = GetLosers();

            var winnersList = winners.ToList().OrderByDescending(x => x.Margin);
            var losersList  = losers.ToList().OrderBy(x => x.Margin);

            var c      = new YahooCalculator();
            var lineNo = 0;

            foreach (var winner in winnersList)
            {
                lineNo = GenerateChart(bodyOut, c, lineNo, winner);
            }

            foreach (var loser in losersList)
            {
                lineNo = GenerateChart(bodyOut, c, lineNo, loser);
            }

            return(bodyOut.ToString());
        }
Ejemplo n.º 2
0
        public int GenerateChart(
            StringBuilder bodyOut, YahooCalculator c, int lineNo, IWinOrLose team)
        {
            team.Team.LoadKickUnit();
            team.Team.LoadRushUnit();
            team.Team.LoadPassUnit();
            var qb      = GetQBBit(team, c);
            var rb      = GetRunnerBit(team, c);
            var gameBit = GameBit(team);
            var timeBit = TimeBit(team);

            lineNo++;
            bodyOut.Append($"{lineNo,2} {timeBit} {gameBit}");
            bodyOut.Append($" {qb}");
            bodyOut.Append($" {rb}");
            //    spit out the WR1 line
            var wr1 = GetW1Bit(team, c);

            bodyOut.Append(string.Format(" {0}", wr1));
            //    spit out the WR2 line
            var wr2 = GetW2Bit(team, c);

            bodyOut.Append(string.Format(" {0}", wr2));
            //    spit out the TE line
            var te = GetTEBit(team, c);

            bodyOut.Append(string.Format(" {0}", te));
            //    spit out the PK line
            var pk = GetPKBit(team, c);

            bodyOut.AppendLine(string.Format(" {0}", pk));

            return(lineNo);
        }
Ejemplo n.º 3
0
        public int GenerateChart(
            StringBuilder bodyOut,
            YahooCalculator c,
            int lineNo,
            IWinOrLose team)
        {
            team.Team.LoadKickUnit();
            team.Team.LoadRushUnit();
            team.Team.LoadPassUnit();
            var qb      = GetQBBit(team, c);
            var rb      = GetRunnerBit(team, c);
            var gameBit = GameBit(team);
            var timeBit = TimeBit(team);

            lineNo++;
            bodyOut.Append($"{lineNo,2} {timeBit} {gameBit}");
            bodyOut.Append($" {qb}");
            bodyOut.Append($" {rb}");

            SpitOutTheLineFor(team.Team.PassUnit.W1, bodyOut, c, team);
            SpitOutTheLineFor(team.Team.PassUnit.W2, bodyOut, c, team);
            SpitOutTheLineFor(team.Team.PassUnit.TE, bodyOut, c, team);
            SpitOutTheLineFor(team.Team.KickUnit.PlaceKicker, bodyOut, c, team);
            bodyOut.AppendLine();
            return(lineNo);
        }
Ejemplo n.º 4
0
        private string GetW1Bit(IWinOrLose team, YahooCalculator c)
        {
            var bit = NoneBit(team);

            if (team.Team.PassUnit.W1 != null)
            {
                bit = PlayerPiece(team.Team.PassUnit.W1, team.Game, c);
            }
            return(string.Format("{0,-36}", bit));
        }
Ejemplo n.º 5
0
        public string GetW2Bit(IWinOrLose team, YahooCalculator c)
        {
            var bit = NoneBit(team);

            if (team.Team.PassUnit.W2 != null)
            {
                bit = PlayerPiece(team.Team.PassUnit.W2, team.Game, c);
            }
            return($"{bit,-36}");
        }
Ejemplo n.º 6
0
        private string GetQBBit(IWinOrLose team, YahooCalculator c)
        {
            var bit = NoneBit(team);

            if (team.Team.PassUnit.Q1 != null)
            {
                bit = PlayerPiece(team.Team.PassUnit.Q1, team.Game, c);
            }
            return($"{bit,-36}");
        }
Ejemplo n.º 7
0
        public void TestYahooProjectedPointsFrTomBrady2013Week01()
        {
            var p        = new NFLPlayer("BRADTO01");
            var g        = new NFLGame("2013:01-B");
            var c        = new YahooCalculator();
            var msg      = c.Calculate(p, g);
            var expected = 26;

            Assert.AreEqual(expected, msg.Player.Points);
        }
Ejemplo n.º 8
0
        private string GetPKBit(IWinOrLose team, YahooCalculator c)
        {
            var bit = NoneBit(team);

            if (team.Team.KickUnit.PlaceKicker != null)
            {
                bit = PlayerPiece(
                    team.Team.KickUnit.PlaceKicker,
                    team.Game,
                    c);
            }
            return($"{bit,-36}");
        }
Ejemplo n.º 9
0
        private void SpitOutTheLineFor(
            NFLPlayer player,
            StringBuilder bodyOut,
            YahooCalculator c,
            IWinOrLose team)
        {
            var pb = GetPlayerBit(
                player,
                team,
                c);

            bodyOut.Append($" {pb}");
        }
Ejemplo n.º 10
0
        public string GetPlayerWikiBit(
            NFLPlayer player,
            IWinOrLose team,
            YahooCalculator calculator,
            bool bLinks = true)
        {
            var bit = NoneBit(team, bLinks);

            if (player != null)
            {
                bit = PlayerWikiPiece(
                    player: player,
                    game: team.Game,
                    calculator: calculator);
            }
            return(string.Format("{0,-28}", bit));
        }
Ejemplo n.º 11
0
        public string PlayerWikiPiece(
            NFLPlayer player,
            NFLGame game,
            YahooCalculator calculator)
        {
            var nextOppTeam = player.NextOpponentTeam(game);
            var plusMatchup = PlusMatchup(player, nextOppTeam, player.CurrTeam);
            var matchupLink = nextOppTeam.DefensiveUnitMatchUp(
                catCode: player.PlayerCat,
                matchUp: plusMatchup,
                bLinks: false);
            var owners = player.LoadAllOwners();

            calculator.Calculate(player, game);
            var namePart = NoWiki($"{player.PlayerNameTo(11)}");

            namePart = UpperCaseMyPlayers(player, namePart);
            namePart = BoldFreeAgents(player, namePart);
            namePart = ItaliseNewPlayers(player, game, namePart);
            var playerPiece = string.Empty;

            if (player.PlayerCat.Equals(Constants.K_KICKER_CAT))
            {
                playerPiece = $@" {namePart,-11}  {
					owners
					}  ({PlayerPointsOut(player)}{DomeBit(game, player).Trim()})"                    ;
            }
            else
            {
                playerPiece = $@"{
					ReturnerBit(player)
					}{namePart,-11}{
					ShortYardageBit(player)
					} {owners}  {matchupLink}  ({PlayerPointsOut(player)}{
					DomeBit(game, player)
					})"                    ;
            }

            return(playerPiece);
        }
Ejemplo n.º 12
0
        public string PlayerPiece(
            NFLPlayer p,
            NFLGame g,
            YahooCalculator c)
        {
            var nextOppTeam = p.NextOpponentTeam(g);
            var plusMatchup = PlusMatchup(p, nextOppTeam, p.CurrTeam);
            var matchupLink = nextOppTeam.DefensiveUnitMatchUp(
                p.PlayerCat,
                plusMatchup);
            var owners = p.LoadAllOwners();

            c.Calculate(p, g);
            var namePart = string.Format("<a href='..\\Roles\\{0}-Roles-{1:0#}.htm'>{2}</a>",
                                         p.TeamCode, Week - 1, p.PlayerNameTo(11));

            if (p.PlayerCat.Equals(Constants.K_KICKER_CAT))
            {
                AddPickup(p, g);
                return(string.Format(" {0,-11}  {1}  {2,2:#0}{3} {4}",
                                     namePart,
                                     owners,
                                     p.Points,
                                     DomeBit(g, p),
                                     ActualOutput(g, p)
                                     ));
            }
            AddPickup(p, g);
            return(string.Format("{6}{0,-11}{7} {3}  {1}  {2,2:#0}{5} {4}",
                                 namePart,
                                 matchupLink, //  defensiveRating,
                                 p.Points,
                                 owners,
                                 ActualOutput(g, p),
                                 DomeBit(g, p),
                                 ReturnerBit(p),
                                 ShortYardageBit(p)
                                 ));
        }
Ejemplo n.º 13
0
        public string GenerateBody()
        {
            var bodyOut = new StringBuilder();

            var winners = GetWinners();
            var losers  = GetLosers();

            //  We now sort by Points For as this correlates better with FPts

            var completeList = new List <Teamer>();

            foreach (var winner in winners)
            {
                completeList.Add(winner);
            }
            foreach (var loser in losers)
            {
                completeList.Add(loser);
            }
            var sortedList = completeList.OrderByDescending(
                x => x.PointsFor);

            var c      = new YahooCalculator();
            var lineNo = 0;

            foreach (var tm in sortedList)
            {
                lineNo = GenerateChart(
                    bodyOut: bodyOut,
                    c: c,
                    lineNo: lineNo,
                    team: tm);
            }

            return(bodyOut.ToString());
        }
Ejemplo n.º 14
0
 private string GetW2Bit( IWinOrLose team, YahooCalculator c )
 {
     var bit = NoneBit( team );
     if ( team.Team.PassUnit.W2 != null )
      {
     bit = PlayerPiece( team.Team.PassUnit.W2, team.Game, c );
      }
      return string.Format( "{0,-36}", bit );
 }
Ejemplo n.º 15
0
        private string GetRunnerBit( IWinOrLose team, YahooCalculator c )
        {
            var bit = NoneBit(team);
             if (team.Team.PassUnit.Q1 != null)
             {
            // get the next opponent by using the QB
            var nextOppTeam = team.Team.PassUnit.Q1.NextOpponentTeam(team.Game);
            var defensiveRating = nextOppTeam.DefensiveRating(Constants.K_RUNNINGBACK_CAT);

            bit = string.Format("<a href='..\\Roles\\{0}-Roles-{1:0#}.htm'>dual</a>                    {2}       ",
               team.Team.TeamCode, Week - 1, defensiveRating);

            if ( team.Team.RushUnit == null )
               team.Team.LoadRushUnit();
            else
               Logger.Trace( "   >>> Rush unit loaded {0} rushers; Ace back {1}",
                  team.Team.RushUnit.Runners.Count(), team.Team.RushUnit.AceBack );

            if ( team.Team.RushUnit.AceBack != null)
               bit = PlayerPiece(team.Team.RushUnit.AceBack, team.Game, c);
            else
               Logger.Trace( "   >>> No Ace back for {0}", team.Team.Name );
             }
             else
             {
            Logger.Trace( "   >>> No QB1 for {0}", team.Team.Name );
             }
             Logger.Trace( "   >>> bit = {0}", bit );
             return string.Format( "{0,-36}", bit );
        }
Ejemplo n.º 16
0
        private string GetPKBit(IWinOrLose team, YahooCalculator c)
        {
            var bit = NoneBit(team);

            if (team.Team.KickUnit.PlaceKicker != null)
            {
                bit = PlayerPiece(team.Team.KickUnit.PlaceKicker, team.Game, c);
            }
            return string.Format("{0,-36}", bit);
        }
Ejemplo n.º 17
0
        private int GenerateChart( 
         StringBuilder bodyOut, YahooCalculator c, int lineNo, IWinOrLose team )
        {
            team.Team.LoadKickUnit();
             team.Team.LoadRushUnit();
             team.Team.LoadPassUnit();
             var qb = GetQBBit( team, c );
             var rb = GetRunnerBit( team, c );
             var gameBit = GameBit( team );
             var timeBit = TimeBit( team );

             lineNo++;
             bodyOut.Append( string.Format( "{0,2} {2} {1}", lineNo, gameBit, timeBit ) );
             bodyOut.Append( string.Format( " {0}", qb ) );
             bodyOut.Append( string.Format( " {0}", rb ) );
             //    spit out the WR1 line
             var wr1 = GetW1Bit( team, c );
             bodyOut.Append( string.Format( " {0}", wr1 ) );
             //    spit out the WR2 line
             var wr2 = GetW2Bit( team, c );
             bodyOut.Append( string.Format( " {0}", wr2 ) );
             //    spit out the TE line
             var te = GetTEBit( team, c );
             bodyOut.Append( string.Format( " {0}", te ) );
            //    spit out the PK line
            var pk = GetPKBit(team, c);
            bodyOut.AppendLine(string.Format(" {0}", pk));

             return lineNo;
        }
Ejemplo n.º 18
0
        private string GenerateBody()
        {
            var bodyOut = new StringBuilder();

             var winners = GetWinners();
             var losers = GetLosers();

             var winnersList = winners.ToList().OrderByDescending( x => x.Margin );
             var losersList = losers.ToList().OrderBy( x => x.Margin );

             var c = new YahooCalculator();
             var lineNo = 0;

             foreach ( var winner in winnersList )
            lineNo = GenerateChart( bodyOut, c, lineNo, winner );

             foreach ( var loser in losersList )
            lineNo = GenerateChart( bodyOut, c, lineNo, loser );

             return bodyOut.ToString();
        }
Ejemplo n.º 19
0
 public string PlayerPiece( NFLPlayer p, NFLGame g, YahooCalculator c )
 {
     var nextOppTeam = p.NextOpponentTeam( g );
     var defensiveRating = nextOppTeam.DefensiveUnit(p.PlayerCat);
     var owners = p.LoadAllOwners();
      c.Calculate( p, g );
     var namePart = string.Format( "<a href='..\\Roles\\{0}-Roles-{1:0#}.htm'>{2}</a>",
     p.TeamCode, Week - 1, p.PlayerNameTo( 11 ) );
      return string.Format( "{0,-11} {3}  {1}  {2,2:#0}{5} {4} ",
     namePart, defensiveRating, p.Points, owners, ActualOutput(g,p),
     DomeBit(g,p));
 }
Ejemplo n.º 20
0
        public string GetRunnerBit(
            IWinOrLose team,
            YahooCalculator calculator,
            bool bLinks = true)
        {
            var bit = NoneBit(
                team,
                bLinks);

            if (team.Team.PassUnit.Q1 != null)
            {
                // get the next opponent by using the QB
                var nextOppTeam = team.Team.PassUnit.Q1.NextOpponentTeam(team.Game);

                if (team.Team.RunUnit == null)
                {
                    team.Team.LoadRushUnit();
                }
                else
                {
                    Logger.Trace("   >>> Rush unit loaded {0} rushers; Ace back {1}",
                                 team.Team.RunUnit.Runners.Count(), team.Team.RunUnit.AceBack);
                }

                if (team.Team.RunUnit.AceBack != null)
                {
                    bit = PlayerPiece(
                        player: team.Team.RunUnit.AceBack,
                        game: team.Game,
                        calculator: calculator,
                        bLinks: bLinks);
                }
                else
                {
                    var runners     = team.Team.RunUnit.Starters;
                    var dualBacks   = team.Team.RunUnit.Committee;
                    var combinedPts = 0.0M;
                    foreach (NFLPlayer runner in team.Team.RunUnit.Starters)
                    {
                        calculator.Calculate(
                            runner,
                            team.Game);
                        combinedPts += runner.Points;
                    }
                    if (!string.IsNullOrWhiteSpace(
                            dualBacks.Trim()))
                    {
                        var dualSpace = 24;
                        dualBacks = dualBacks.Substring(0, dualBacks.Length - 3);
                        if (dualBacks.Length < dualSpace)
                        {
                            dualBacks += new string( ' ', dualSpace - dualBacks.Length );
                        }
                        if (dualBacks.Length > dualSpace)
                        {
                            dualBacks = dualBacks.Substring(0, dualSpace);
                        }
                    }
                    var p = team.Team.RunUnit.R1;

                    string matchupLink;
                    if (p != null)
                    {
                        var plusMatchup = PlusMatchup(
                            player: p,
                            nextOppTeam: nextOppTeam,
                            pTeam: p.CurrTeam);
                        matchupLink = nextOppTeam.DefensiveUnitMatchUp(
                            catCode: p.PlayerCat,
                            matchUp: plusMatchup,
                            bLinks: bLinks);
                    }
                    else
                    {
                        matchupLink = "?" + new String(' ', 24);
                    }

                    if (bLinks)
                    {
                        bit = string.Format(
                            "&nbsp;<a href='..\\Roles\\{0}-Roles-{1:0#}.htm'>{3}</a> {2}  {4,2:#0}  ",
                            team.Team.TeamCode,
                            Week - 1,
                            matchupLink,
                            dualBacks,
                            (int)combinedPts);
                    }
                    else
                    {
                        bit = $" {dualBacks} {matchupLink}  {(int)combinedPts,2:#0}  ";
                    }

                    bit += ActualOutput(
                        game: team.Game,
                        player: null,
                        runners: runners);

                    Logger.Trace(
                        "   >>> No Ace back for {0}", team.Team.Name);
                }
            }
            else
            {
                Logger.Trace("   >>> No QB1 for {0}", team.Team.Name);
            }
            Logger.Trace("   >>> bit = {0}", bit);
            return($"{bit,-36}");
        }
Ejemplo n.º 21
0
        public string GetRunnerBit(IWinOrLose team, YahooCalculator c)
        {
            var bit = NoneBit(team);

            if (team.Team.PassUnit.Q1 != null)
            {
                // get the next opponent by using the QB
                var nextOppTeam = team.Team.PassUnit.Q1.NextOpponentTeam(team.Game);

                if (team.Team.RunUnit == null)
                {
                    team.Team.LoadRushUnit();
                }
                else
                {
                    Logger.Trace("   >>> Rush unit loaded {0} rushers; Ace back {1}",
                                 team.Team.RunUnit.Runners.Count(), team.Team.RunUnit.AceBack);
                }

                if (team.Team.RunUnit.AceBack != null)
                {
                    bit = PlayerPiece(team.Team.RunUnit.AceBack, team.Game, c);
                }
                else
                {
                    var dualBacks   = team.Team.RunUnit.Committee;
                    var combinedPts = 0.0M;
                    foreach (NFLPlayer runner in team.Team.RunUnit.Starters)
                    {
                        c.Calculate(runner, team.Game);
                        combinedPts += runner.Points;
                    }
                    if (!string.IsNullOrWhiteSpace(dualBacks.Trim()))
                    {
                        dualBacks = dualBacks.Substring(0, dualBacks.Length - 3);
                        if (dualBacks.Length < 20)
                        {
                            dualBacks = dualBacks + new string( ' ', 20 - dualBacks.Length );
                        }
                        if (dualBacks.Length > 20)
                        {
                            dualBacks = dualBacks.Substring(0, 20);
                        }
                    }
                    var p = team.Team.RunUnit.R1;

                    var matchupLink = "";
                    if (p != null)
                    {
                        var plusMatchup = PlusMatchup(p, nextOppTeam, p.CurrTeam);
                        matchupLink = nextOppTeam.DefensiveUnitMatchUp(p.PlayerCat, plusMatchup);
                    }
                    else
                    {
                        matchupLink = "?" + new String(' ', 20);
                    }

                    bit = string.Format(
                        "&nbsp;<a href='..\\Roles\\{0}-Roles-{1:0#}.htm'>{3}</a> {2}  {4,2:#0}      ",
                        team.Team.TeamCode,
                        Week - 1,
                        matchupLink,
                        dualBacks,
                        (int)combinedPts
                        );
                    Logger.Trace("   >>> No Ace back for {0}", team.Team.Name);
                }
            }
            else
            {
                Logger.Trace("   >>> No QB1 for {0}", team.Team.Name);
            }
            Logger.Trace("   >>> bit = {0}", bit);
            return($"{bit,-36}");
        }
Ejemplo n.º 22
0
        public string GetRunnerWikiBit(
            IWinOrLose team,
            YahooCalculator calculator)
        {
            var bit = NoneBit(team, bLinks: false);

            if (team.Team.PassUnit.Q1 != null)
            {
                // get the next opponent by using the QB
                var nextOppTeam = team.Team.PassUnit.Q1.NextOpponentTeam(team.Game);

                if (team.Team.RunUnit == null)
                {
                    team.Team.LoadRushUnit();
                }
                else
                {
                    Logger.Trace("   >>> Rush unit loaded {0} rushers; Ace back {1}",
                                 team.Team.RunUnit.Runners.Count(), team.Team.RunUnit.AceBack);
                }

                if (team.Team.RunUnit.AceBack != null)
                {
                    bit = PlayerWikiPiece(
                        player: team.Team.RunUnit.AceBack,
                        game: team.Game,
                        calculator: calculator);
                }
                else
                {
                    var dualBacks   = string.Empty;
                    var combinedPts = 0.0M;
                    foreach (NFLPlayer runner in team.Team.RunUnit.Starters)
                    {
                        var namePart = NoWiki($"{runner.PlayerNameTo(11)}");
                        namePart   = UpperCaseMyPlayers(runner, namePart);
                        dualBacks += BoldFreeAgents(runner, namePart) + " ";
                        calculator.Calculate(runner, team.Game);
                        combinedPts += runner.Points;
                    }
                    if (!string.IsNullOrWhiteSpace(dualBacks.Trim()))
                    {
                        dualBacks = dualBacks.Substring(0, dualBacks.Length - 1);
                        //if (dualBacks.Length < 20)
                        //	dualBacks = dualBacks + new string(' ', 20 - dualBacks.Length);
                        //if (dualBacks.Length > 20)
                        //	dualBacks = dualBacks.Substring(0, 20);
                    }
                    var p = team.Team.RunUnit.R1;

                    string matchupLink;
                    if (p != null)
                    {
                        var plusMatchup = PlusMatchup(
                            player: p,
                            nextOppTeam: nextOppTeam,
                            pTeam: p.CurrTeam);
                        matchupLink = nextOppTeam.DefensiveUnitMatchUp(
                            catCode: p.PlayerCat,
                            matchUp: plusMatchup,
                            bLinks: false);
                    }
                    else
                    {
                        matchupLink = "?" + new String(' ', 20);
                    }

                    bit = $" {dualBacks} {matchupLink}  ({(int)combinedPts,2:#0})";

                    Logger.Trace("   >>> No Ace back for {0}", team.Team.Name);
                }
            }
            else
            {
                Logger.Trace("   >>> No QB1 for {0}", team.Team.Name);
            }
            Logger.Trace("   >>> bit = {0}", bit);
            return($"{bit,-28}");
        }
Ejemplo n.º 23
0
        public string PlayerPiece(
            NFLPlayer player,
            NFLGame game,
            YahooCalculator calculator,
            bool bLinks = true,
            List <NFLPlayer> runners = null)
        {
            var nextOppTeam = player.NextOpponentTeam(
                game);
            var plusMatchup = PlusMatchup(
                player,
                nextOppTeam,
                player.CurrTeam);
            var matchupLink = nextOppTeam.DefensiveUnitMatchUp(
                player.PlayerCat,
                plusMatchup,
                bLinks);
            var owners = player.LoadAllOwners();

            calculator.Calculate(
                player,
                game);
            var namePart = bLinks
                                ? RoleLink(player)
                                : $"{player.PlayerNameTo(11)}";

            if (player.PlayerCat.Equals(
                    Constants.K_KICKER_CAT))
            {
                AddPickup(
                    player,
                    game,
                    " ",
                    DomeBit(game, player));
                return(string.Format(" {0,-11}  {1}  {2,2:#0}{3} {4}",
                                     namePart,
                                     owners,
                                     player.Points,
                                     DomeBit(game, player),
                                     ActualOutput(
                                         game: game,
                                         player: player,
                                         runners: null)));
            }
            AddPickup(
                player,
                game,
                matchupLink,
                DomeBit(game, player));
            return(string.Format("{6}{0,-11}{7} {3}  {1}  {2,2:#0}{5} {4}",
                                 namePart,
                                 matchupLink, //  defensiveRating,
                                 player.Points,
                                 owners,
                                 ActualOutput(
                                     game: game,
                                     player: player,
                                     runners: runners),
                                 DomeBit(game, player),
                                 ReturnerBit(player),
                                 ShortYardageBit(player)));
        }