Пример #1
0
        private static GridBuilder <TeamSeasonSimulationResult> CreateSimulationGridBuilder(IReadOnlyList <TeamSeasonSimulationResult> teams, IEnumerable <PositionGrouping> positionGroupings)
        {
            var gridBuilder = new GridBuilder <TeamSeasonSimulationResult>();

            gridBuilder.AddColumn("#", Alignment.Right, tssr => tssr.CurrentPosition);
            gridBuilder.AddColumn("Name", Alignment.Left, tssr => tssr.TeamName);

            foreach (var position in Enumerable.Range(1, teams.Count))
            {
                gridBuilder.AddColumn($"#{position}", Alignment.Right, tssr => CalculatePercentage(position, tssr));
            }

            gridBuilder.AddColumn("Avg GF", Alignment.Right, tssr => tssr.GoalsFors.Average().ToString("N1"));
            gridBuilder.AddColumn("Avg GA", Alignment.Right, tssr => tssr.GoalsAgainsts.Average().ToString("N1"));
            gridBuilder.AddColumn("Avg GD", Alignment.Right, tssr => tssr.GoalDifferences.Average().ToString("N1"));
            gridBuilder.AddColumn("Avg Pts", Alignment.Right, tssr => tssr.Points.Average().ToString("N1"));

            foreach (var positionGrouping in positionGroupings)
            {
                gridBuilder.AddColumn(positionGrouping.ShortName, Alignment.Right,
                                      tssr => CalculatePercentage(positionGrouping, tssr));
            }

            gridBuilder.AddColumn("Name", Alignment.Left, tssr => tssr.TeamName);
            return(gridBuilder);
        }
Пример #2
0
        private static string CreateLeagueTableGrid(Season season)
        {
            var gridBuilder = new GridBuilder <TablePlacing>();

            gridBuilder.AddColumn("#", Alignment.Right, tp => tp.Position);
            gridBuilder.AddColumn("Name", Alignment.Left, tp => tp.TeamName);
            gridBuilder.AddColumn("Pld", Alignment.Right, tp => tp.Played);
            gridBuilder.AddColumn("W", Alignment.Right, tp => tp.Won);
            gridBuilder.AddColumn("D", Alignment.Right, tp => tp.Drawn);
            gridBuilder.AddColumn("L", Alignment.Right, tp => tp.Lost);
            gridBuilder.AddColumn("GF", Alignment.Right, tp => tp.GoalsFor);
            gridBuilder.AddColumn("GA", Alignment.Right, tp => tp.GoalsAgainst);
            gridBuilder.AddColumn("GD", Alignment.Right, tp => tp.GoalDifference);
            gridBuilder.AddColumn("Pts", Alignment.Right, tp => tp.Points);
            gridBuilder.AddColumn("AS", Alignment.Right, tp => tp.AttackingStrength.ToString("N2"));
            gridBuilder.AddColumn("DW", Alignment.Right, tp => tp.DefensiveWeakness.ToString("N2"));

            gridBuilder.AddColumn(
                string.Empty,
                Alignment.Left,
                tp => season.League.PositionGroupings
                .Where(pg => pg.Contains(tp.Position))
                .Select(pg => pg.LongName)
                .Join(", "));

            return(gridBuilder.Build(season.Table));
        }