Пример #1
0
        public TeamData(teamStats teamStats)
        {
            Nombre     = teamStats.TeamId;
            contadores = new List <Accion>
            {
                new Accion(nameof(teamStats.BaseOnBalls), teamStats.BaseOnBalls),
                new Accion(nameof(teamStats.DoublePlayed), teamStats.DoublePlayed),
                new Accion(nameof(teamStats.Doubles), teamStats.Doubles),
                new Accion(nameof(teamStats.FGOuts), teamStats.FGOuts),
                new Accion(nameof(teamStats.HitByPitch), teamStats.HitByPitch),
                new Accion(nameof(teamStats.HomeRuns), teamStats.HomeRuns),
                new Accion(nameof(teamStats.Sacrifice), teamStats.Sacrifice),
                new Accion(nameof(teamStats.Singles), teamStats.Singles),
                new Accion(nameof(teamStats.StrikeOut), teamStats.StrikeOut),
                new Accion(nameof(teamStats.Triple), teamStats.Triple)
            };
            double fulldiv(int num, int dem) => Convert.ToDouble(num) / Convert.ToDouble(dem);

            foreach (var item in contadores)
            {
                item.ValorA = fulldiv(item.Contador, teamStats.Plates);
                if (item.Llave == nameof(teamStats.Sacrifice) || item.Llave == nameof(teamStats.DoublePlayed))
                {
                    item.ValorB = 0;
                }
                else
                {
                    item.ValorB = fulldiv(item.Contador, teamStats.Plates - teamStats.Sacrifice - teamStats.DoublePlayed);
                }
            }
            double counter = 0;

            rangoA = new List <Rango>();
            var listaA = contadores.Select(c => new { c.Llave, c.ValorA })
                         .OrderByDescending(o => o.ValorA);

            foreach (var item in listaA)
            {
                Rango rango = new Rango(counter, item.ValorA, item.Llave);
                rangoA.Add(rango);
                counter += item.ValorA;
            }
            counter = 0;
            rangoB  = new List <Rango>();
            var listaB = contadores.Select(c => new { c.Llave, c.ValorB })
                         .Where(c => c.Llave != nameof(teamStats.Sacrifice))
                         .Where(c => c.Llave != nameof(teamStats.DoublePlayed))
                         .OrderByDescending(o => o.ValorB);

            foreach (var item in listaB)
            {
                Rango rango = new Rango(counter, item.ValorB, item.Llave);
                rangoB.Add(rango);
                counter += item.ValorB;
            }
        }
Пример #2
0
        private static Dictionary <string, BatScenario> GetBatScenarios()
        {
            var ts = new teamStats();
            List <BatScenario> scenarios = new List <BatScenario>
            {
                new BatScenario(nameof(ts.Singles), 1, 0)
                , new BatScenario(nameof(ts.Doubles), 2, 0)
                , new BatScenario(nameof(ts.Triple), 3, 0)
                , new BatScenario(nameof(ts.HomeRuns), 4, 0)
                , new BatScenario(nameof(ts.BaseOnBalls), 1, 0)
                , new BatScenario(nameof(ts.HitByPitch), 1, 0)
                , new BatScenario(nameof(ts.Sacrifice), 1, 1)
                , new BatScenario(nameof(ts.StrikeOut), 0, 1)
                , new BatScenario(nameof(ts.DoublePlayed), 0, 2)
                , new BatScenario(nameof(ts.FGOuts), 0, 1)
            };

            return(scenarios.ToDictionary(s => s.Name));
        }