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; } }
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)); }