コード例 #1
0
        private static string TimeBit(IWinOrLose team)
        {
            var dayName = team.Game.GameDate.ToString("dddd").Substring(0, 2);
            var bit     = string.Format("{0}{1}", dayName, team.Game.Hour);

            return(bit);
        }
コード例 #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);
        }
コード例 #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);
        }
コード例 #4
0
        private static string TimeBit(
            IWinOrLose team)
        {
            var dayName = team.Game.GameDate.ToString("dddd").Substring(0, 2);
            var bit     = $"{dayName}{team.Game.Hour}";

            return(bit);
        }
コード例 #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}");
        }
コード例 #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}");
        }
コード例 #7
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));
        }
コード例 #8
0
        private string NoneBit(IWinOrLose team, bool bLinks = true)
        {
            if (bLinks)
            {
                var bit = $@" <a href='..\\Roles\\{
					team.Team.TeamCode
					}-Roles-{Week - 1:0#}.htm'>none</a>                                "                    ;
                return(bit);
            }
            return("none");
        }
コード例 #9
0
        private static string GameBit(IWinOrLose team)
        {
            team.Game.CalculateSpreadResult();
            var predictedResult = team.IsWinner
                           ? team.Game.BookieTip.PredictedScore()
                           : team.Game.BookieTip.PredictedScoreFlipped();
            var theLine = team.Game.TheLine(team.Team.TeamCode);
            var url     = team.Game.GameProjectionUrl();

            return($"<a href='{url}'>{predictedResult}</a> {theLine,3}");
        }
コード例 #10
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}");
        }
コード例 #11
0
        private void SpitOutTheLineFor(
            NFLPlayer player,
            StringBuilder bodyOut,
            YahooCalculator c,
            IWinOrLose team)
        {
            var pb = GetPlayerBit(
                player,
                team,
                c);

            bodyOut.Append($" {pb}");
        }
コード例 #12
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));
        }
コード例 #13
0
        public static string GameBit(
            IWinOrLose team)
        {
            team.Game.CalculateSpreadResult();
            string theResult;

            if (team.Game.Played())
            {
                theResult = team.Game.ResultOutSimple(
                    teamInFocus: team.Team.TeamCode);
            }
            else
            {
                var predictedResult = team.IsWinner
                                   ? team.Game.BookieTip.PredictedScore()
                                   : team.Game.BookieTip.PredictedScoreFlipped();
                theResult = predictedResult;
            }
            var theLine = team.Game.TheLine(team.Team.TeamCode);
            var url     = team.Game.GameProjectionUrl();

            return($"<a href='{url}'>{theResult}</a> {theLine,3}");
        }
コード例 #14
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;
        }
コード例 #15
0
 private static string TimeBit( IWinOrLose team )
 {
     var dayName = team.Game.GameDate.ToString("dddd").Substring(0,2);
      var bit = string.Format( "{0}{1}", dayName, team.Game.Hour );
      return bit;
 }
コード例 #16
0
 private static string GameBit( IWinOrLose team )
 {
     team.Game.CalculateSpreadResult();
      var predictedResult = team.IsWinner
     ? team.Game.BookieTip.PredictedScore()
     : team.Game.BookieTip.PredictedScoreFlipped();
      var theLine = team.Game.TheLine();
       var url = team.Game.GameProjectionUrl();
      return string.Format( "<a href='{0}'>{1}</a> {2,3}", url, predictedResult, theLine );
 }
コード例 #17
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}");
        }
コード例 #18
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}");
        }
コード例 #19
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 );
 }
コード例 #20
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);
        }
コード例 #21
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}");
        }
コード例 #22
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 );
        }
コード例 #23
0
        private string NoneBit(IWinOrLose team)
        {
            var bit = $" <a href='..\\Roles\\{team.Team.TeamCode}-Roles-{Week - 1:0#}.htm'>none</a>                            ";

            return(bit);
        }
コード例 #24
0
 private string NoneBit( IWinOrLose team )
 {
     var bit = string.Format( "<a href='..\\Roles\\{0}-Roles-{1:0#}.htm'>none</a>                            ", team.Team.TeamCode, Week - 1 );
        return bit;
 }
コード例 #25
0
 public TenantBankingProvider(Func <int, IWinOrLose> winOrLoseFunc)
 {
     isBankingSetupWinOrLose = winOrLoseFunc(Probability.Even);
     setupWinOrLose          = winOrLoseFunc(Probability.High);
 }