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()); }
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); }
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); }
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)); }
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}"); }
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}"); }
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); }
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}"); }
private void SpitOutTheLineFor( NFLPlayer player, StringBuilder bodyOut, YahooCalculator c, IWinOrLose team) { var pb = GetPlayerBit( player, team, c); bodyOut.Append($" {pb}"); }
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)); }
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); }
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) )); }
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()); }
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 ); }
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 ); }
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); }
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; }
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(); }
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)); }
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( " <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}"); }
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( " <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}"); }
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}"); }
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))); }