private static StringBuilder Informe(List <Geometrica> formas, Idioma idioma) { //TODO se debe mejorar este metodo. var sb = new StringBuilder(); var numeroCuadrados = 0; var numeroCirculos = 0; var numeroTriangulos = 0; var numeroTrapecios = 0; var areaCuadrados = 0m; var areaCirculos = 0m; var areaTriangulos = 0m; var areaTrapecios = 0m; var perimetroCuadrados = 0m; var perimetroCirculos = 0m; var perimetroTriangulos = 0m; var perimetroTrapecios = 0m; for (var i = 0; i < formas.Count; i++) { if (formas[i].TipoFigura == TipoFiguras.Cuadrado) { numeroCuadrados++; areaCuadrados += formas[i].CalcularArea(); perimetroCuadrados += formas[i].CalcularPerimetro(); } if (formas[i].TipoFigura == TipoFiguras.Circulo) { numeroCirculos++; areaCirculos += formas[i].CalcularArea(); perimetroCirculos += formas[i].CalcularPerimetro(); } if (formas[i].TipoFigura == TipoFiguras.TrianguloEquilatero) { numeroTriangulos++; areaTriangulos += formas[i].CalcularArea(); perimetroTriangulos += formas[i].CalcularPerimetro(); } if (formas[i].TipoFigura == TipoFiguras.Trapecio) { numeroTrapecios++; areaTrapecios += formas[i].CalcularArea(); perimetroTrapecios += formas[i].CalcularPerimetro(); } } sb.Append(idioma.ObtenerLinea(numeroCuadrados, areaCuadrados, perimetroCuadrados, TipoFiguras.Cuadrado)); sb.Append(idioma.ObtenerLinea(numeroCirculos, areaCirculos, perimetroCirculos, TipoFiguras.Circulo)); sb.Append(idioma.ObtenerLinea(numeroTriangulos, areaTriangulos, perimetroTriangulos, TipoFiguras.TrianguloEquilatero)); sb.Append(idioma.ObtenerLinea(numeroTrapecios, areaTrapecios, perimetroTrapecios, TipoFiguras.Trapecio)); // FOOTER sb.Append(idioma.TraducirTotal(numeroCuadrados, numeroCirculos, numeroTriangulos, numeroTrapecios, areaCuadrados, areaCirculos, areaTriangulos, areaTrapecios, perimetroCuadrados, perimetroCirculos, perimetroTriangulos, perimetroTrapecios)); return(sb); }