예제 #1
0
        /// <summary>
        /// Retorna el texto con información de las figuras geométricas, según el idioma recibido como parámetro
        /// </summary>
        /// <param name="idioma">Idioma</param>
        /// <param name="area">Área de las figuras</param>
        /// <param name="perimetro">Perímetro de las figuras</param>
        /// <param name="tipo">Nombre de la figura</param>
        /// <param name="cantidad">Cantidad de figuras</param>
        /// <returns>String</returns>
        public override string ObtenerLinea(int cantidad, decimal area, decimal perimetro, string tipo, int idioma)
        {
            var contadorResolver = new ContadorResolver();

            var contador = contadorResolver.GetContador(tipo) as ContadorCirculos;

            if (contador.getCantidad() > 0)
            {
                var forma = TraducirForma(tipo, contador.getCantidad(), idioma);

                return(this.GenerarLinea(contador, idioma, forma));
            }

            return(string.Empty);
        }
        /// <summary>
        /// Realiza la impresión del reporte de formas geométricas, según el idioma recibido por parámetro
        /// </summary>
        /// <param name="formas">Lista de formas geométricas</param>
        /// <param name="idioma">Idioma</param>
        /// <returns>String</returns>
        public static string Imprimir(List <FormaGeometrica> formas, int idioma)
        {
            var sb = new StringBuilder();
            var contadorResolver                     = new ContadorResolver();
            var contadorCleaner                      = new ContadorCleaner();
            var generadorDeLineasCuadrado            = new GeneradorDeLineasCuadrado();
            var generadorDeLineasCirculo             = new GeneradorDeLineasCirculo();
            var generadorDeLineasTrianguloEquilatero = new GeneradorDeLineasTrianguloEquilatero();
            var generadorDeLineasTrapecio            = new GeneradorDeLineasTrapecio();
            var generadorDeLineasRectangulo          = new GeneradorDeLineasRectangulo();

            if (!formas.Any())
            {
                sb.Append(GeneradorDeLineas.ListaVacia(idioma));
            }
            else
            {
                // Hay por lo menos una forma
                // HEADER
                sb.Append(GeneradorDeLineas.Header(idioma));

                for (var i = 0; i < formas.Count; i++)
                {
                    contadorResolver.SumarFormasGeometricas(formas[i]);
                }

                sb.Append(generadorDeLineasCuadrado.ObtenerLinea(ContadorCuadrados.GetInstance().getCantidad(), ContadorCuadrados.GetInstance().getArea(), ContadorCuadrados.GetInstance().getPerimetro(), typeof(Cuadrado).Name, idioma));
                sb.Append(generadorDeLineasCirculo.ObtenerLinea(ContadorCirculos.GetInstance().getCantidad(), ContadorCirculos.GetInstance().getArea(), ContadorCirculos.GetInstance().getPerimetro(), typeof(Circulo).Name, idioma));
                sb.Append(generadorDeLineasTrianguloEquilatero.ObtenerLinea(ContadorTriangulosEquilateros.GetInstance().getCantidad(), ContadorTriangulosEquilateros.GetInstance().getCantidad(), ContadorTriangulosEquilateros.GetInstance().getPerimetro(), typeof(TrianguloEquilatero).Name, idioma));
                sb.Append(generadorDeLineasTrapecio.ObtenerLinea(ContadorTrapecios.GetInstance().getCantidad(), ContadorTrapecios.GetInstance().getArea(), ContadorTrapecios.GetInstance().getPerimetro(), typeof(Trapecio).Name, idioma));
                sb.Append(generadorDeLineasRectangulo.ObtenerLinea(ContadorRectangulos.GetInstance().getCantidad(), ContadorRectangulos.GetInstance().getArea(), ContadorRectangulos.GetInstance().getPerimetro(), typeof(Rectangulo).Name, idioma));

                // FOOTER
                sb.Append("TOTAL:<br/>");
                sb.Append(GeneradorDeLineas.CantidadFormas(idioma));
                sb.Append(GeneradorDeLineas.PerimetroTotal(idioma));
                sb.Append(GeneradorDeLineas.AreaTotal(idioma));
            }

            contadorCleaner.LimpiarContadores();

            return(sb.ToString());
        }