示例#1
0
        private static string ObtenerLinea(int cantidad, decimal area, decimal perimetro, string figura, Traductor traductor)
        {
            if (cantidad > 0)
            {
                return($"{cantidad} {TraducirForma(figura, cantidad, traductor)} | {traductor.getDescArea()} {area:#.##} | {traductor.getDescPerimetro()} {perimetro:#.##} <br/>");
            }

            return(string.Empty);
        }
示例#2
0
        public string Imprimir(List <Figura> listaFiguras, string idioma)
        {
            Traductor traductor = new Traductor(idioma);

            var sb = new StringBuilder();


            foreach (Figura figura in listaFiguras)
            {
                CrearFigura(figura);
            }
            int cantCuadrados   = listaCuadrados != null ? listaCuadrados.Count : 0;
            int cantCirculos    = listaCirculos != null ? listaCirculos.Count : 0;
            int cantTriangulos  = listaTriangulos != null ? listaTriangulos.Count : 0;
            int cantTrapecios   = listaTrapecios != null ? listaTrapecios.Count : 0;
            int cantRectangulos = listaRectangulos != null ? listaRectangulos.Count : 0;
            int cantFiguras     = cantCuadrados + cantCirculos + cantTriangulos + cantTrapecios + cantRectangulos;

            if (cantFiguras == 0)
            {
                sb.Append("<h1>" + traductor.getDescListaVacia() + "</h1>");
            }
            else
            {
                sb.Append("<h1>" + traductor.getDescReporte() + "</h1>");

                decimal areaCuadrados        = 0;
                decimal areaCirculos         = 0;
                decimal areaTriangulos       = 0;
                decimal areaTrapecios        = 0;
                decimal areaRectangulos      = 0;
                decimal areaTotal            = 0;
                decimal perimetroCuadrados   = 0;
                decimal perimetroCirculos    = 0;
                decimal perimetroTriangulos  = 0;
                decimal perimetroTrapecios   = 0;
                decimal perimetroRectangulos = 0;
                decimal perimTotal           = 0;

                if (cantCuadrados != 0)
                {
                    areaCuadrados      = listaCuadrados.Sum(x => x.Area());
                    perimetroCuadrados = listaCuadrados.Sum(x => x.Perimetro());
                }
                if (cantCirculos != 0)
                {
                    areaCirculos      = listaCirculos.Sum(x => x.Area());
                    perimetroCirculos = listaCirculos.Sum(x => x.Perimetro());
                }
                if (cantTriangulos != 0)
                {
                    areaTriangulos      = listaTriangulos.Sum(x => x.Area());
                    perimetroTriangulos = listaTriangulos.Sum(x => x.Perimetro());
                }
                if (cantTrapecios != 0)
                {
                    areaTrapecios      = listaTrapecios.Sum(x => x.Area());
                    perimetroTrapecios = listaTrapecios.Sum(x => x.Perimetro());
                }
                if (cantRectangulos != 0)
                {
                    areaRectangulos      = listaRectangulos.Sum(x => x.Area());
                    perimetroRectangulos = listaRectangulos.Sum(x => x.Perimetro());
                }
                areaTotal  = areaCuadrados + areaCirculos + areaRectangulos + areaTrapecios + areaTriangulos;
                perimTotal = perimetroCuadrados + perimetroCirculos + perimetroTriangulos + perimetroTrapecios + perimetroRectangulos;

                sb.Append(ObtenerLinea(cantCuadrados, areaCuadrados, perimetroCuadrados, "Cuadrado", traductor));
                sb.Append(ObtenerLinea(cantCirculos, areaCirculos, perimetroCirculos, "Circulo", traductor));
                sb.Append(ObtenerLinea(cantTriangulos, areaTriangulos, perimetroTriangulos, "Triangulo", traductor));
                sb.Append(ObtenerLinea(cantTrapecios, areaTrapecios, perimetroTrapecios, "Trapecio", traductor));
                sb.Append(ObtenerLinea(cantRectangulos, areaRectangulos, perimetroRectangulos, "Rectangulo", traductor));

                // FOOTER
                sb.Append("TOTAL:<br/>");
                sb.Append(cantFiguras + " " + (cantFiguras > 1 ? traductor.getDescFormasPlural() : traductor.getDescForma()) + " ");
                sb.Append((traductor.getDescPerimetro()) + " " + (perimTotal).ToString("#.##") + " ");
                sb.Append(traductor.getDescArea() + " " + (areaTotal).ToString("#.##"));
            }
            return(sb.ToString());
        }