public static string Imprimir(List <FormaGeometrica> formas, int idioma) { var sb = new StringBuilder(); if (!formas.Any()) { //FORMAS VACIO sb.Append(Idioma.formas_Lista(idioma)); } //AUNQUE SEA UNA FORMA else { sb.Append(Idioma.formas_Reporte(idioma)); //CALCULO FORMAS var numeroCuadrados = 0; var areaCuadrados = 0m; var perimetroCuadrados = 0m; var numeroCirculos = 0; var areaCirculos = 0m; var perimetroCirculos = 0m; var numeroTriangulos = 0; var areaTriangulos = 0m; var perimetroTriangulos = 0m; var numeroTrapecio = 0; var areaTrapecio = 0m; var perimetroTrapecio = 0m; var numeroRectangulo = 0; var areaRectangulo = 0m; var perimetroRectangulo = 0m; for (var i = 0; i < formas.Count; i++) { if (formas[i].Tipo == Cuadrado) { numeroCuadrados++; areaCuadrados += Calculos.CalcularArea(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); perimetroCuadrados += Calculos.CalcularPerimetro(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); } if (formas[i].Tipo == Circulo) { numeroCirculos++; areaCirculos += Calculos.CalcularArea(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); perimetroCirculos += Calculos.CalcularPerimetro(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); } if (formas[i].Tipo == TrianguloEquilatero) { numeroTriangulos++; areaTriangulos += Calculos.CalcularArea(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); perimetroTriangulos += Calculos.CalcularPerimetro(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); } if (formas[i].Tipo == Trapecio) { numeroTrapecio++; areaTrapecio += Calculos.CalcularArea(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); perimetroTrapecio += Calculos.CalcularPerimetro(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); } if (formas[i].Tipo == Rectangulo) { numeroRectangulo++; areaRectangulo += Calculos.CalcularArea(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); perimetroRectangulo += Calculos.CalcularPerimetro(formas[i], formas[i]._lado, formas[i]._bamayor, formas[i]._bamenor, formas[i]._alturas, formas[i]._brectan); } } sb.Append(Calculos.ObtenerLinea(numeroCuadrados, areaCuadrados, perimetroCuadrados, Cuadrado, idioma)); sb.Append(Calculos.ObtenerLinea(numeroCirculos, areaCirculos, perimetroCirculos, Circulo, idioma)); sb.Append(Calculos.ObtenerLinea(numeroTriangulos, areaTriangulos, perimetroTriangulos, TrianguloEquilatero, idioma)); sb.Append(Calculos.ObtenerLinea(numeroTrapecio, areaTrapecio, perimetroTrapecio, Trapecio, idioma)); sb.Append(Calculos.ObtenerLinea(numeroRectangulo, areaRectangulo, perimetroRectangulo, Rectangulo, idioma)); //----------------- // FOOTER sb.Append("TOTAL:<br/>"); sb.Append(numeroCuadrados + numeroCirculos + numeroTriangulos + numeroTrapecio + numeroRectangulo + " " + Idioma.formas_tipos(idioma) + " "); sb.Append(Idioma.formas_Total(idioma) + (perimetroCuadrados + perimetroTriangulos + perimetroCirculos + perimetroTrapecio + perimetroRectangulo).ToString("#.##") + " "); sb.Append("Area " + (areaCuadrados + areaCirculos + areaTriangulos + areaTrapecio + areaRectangulo).ToString("#.##")); } return(sb.ToString()); }