Exemplo n.º 1
0
        public static string Imprimir(List <IFormaGeometrica> formas, IIdioma idioma)
        {
            var sb = new StringBuilder();

            if (!formas.Any())
            {
                sb.Append($"<h1>{ GetEtiqueta("rpt.ListaVacia", idioma) }</h1>");
            }
            else
            {
                // Hay por lo menos una forma
                // HEADER
                sb.Append($"<h1>{ GetEtiqueta("rpt.Header", idioma) }</h1>");

                var totalesFormas = TotalizarFormas(formas);

                ValoresForma total = new ValoresForma();
                foreach (var fgName in totalesFormas.Keys)
                {
                    sb.Append(ObtenerLinea(totalesFormas[fgName].cantidad, totalesFormas[fgName].area, totalesFormas[fgName].perimetro, fgName, idioma));
                    total.cantidad  += totalesFormas[fgName].cantidad;
                    total.area      += totalesFormas[fgName].area;
                    total.perimetro += totalesFormas[fgName].perimetro;
                }

                // FOOTER
                sb.Append("TOTAL:<br/>");
                sb.Append(string.Format(GetEtiqueta("rpt.FooterCantidad", idioma), total.cantidad));
                sb.Append(string.Format(GetEtiqueta("rpt.FooterPerimetro", idioma), total.perimetro.ToString("#.##")));
                sb.Append(string.Format(GetEtiqueta("rpt.FooterArea", idioma), total.area.ToString("#.##")));
            }

            return(sb.ToString());
        }
Exemplo n.º 2
0
        public static string Imprimir(List <IFormaGeometrica> formas, IIdioma idioma)
        {
            var sb = new StringBuilder();

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

                formas = formas.OrderBy(t => t.tipo).ToList();

                Operacion operaciones = new Operacion(formas);

                foreach (var cont in operaciones.Contador)
                {
                    sb.Append(idioma.Linea(cont.Cantidad, cont.TotalAreas, cont.TotalPerimetro, cont.Figura));
                }

                sb.Append(idioma.Footer(operaciones.ContadorTotal.Cantidad, operaciones.ContadorTotal.TotalAreas, operaciones.ContadorTotal.TotalPerimetro));
            }

            return(sb.ToString());
        }
Exemplo n.º 3
0
 private static string ObtenerLinea(int cantidad, decimal area, decimal perimetro, IFormaGeometrica forma, IIdioma idioma)
 {
     return($"{cantidad} {idioma.TraducirForma(forma, isPlural: cantidad > 1)} | {idioma.TraduccionArea} {area:#.##} | {idioma.TraduccionPerimetro} {perimetro:#.##} <br/>");
 }
Exemplo n.º 4
0
        public static string Imprimir(List <IFormaGeometrica> formas, IIdioma idioma)
        {
            var sb = new StringBuilder();

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

                var diccionarioCantidadDeFormas  = new Dictionary <string, int>();
                var diccionarioAreaDeFormas      = new Dictionary <string, decimal>();
                var diccionarioPerimetroDeFormas = new Dictionary <string, decimal>();

                for (var i = 0; i < formas.Count; i++)
                {
                    var claveForma = formas[i].GetType().Name;

                    if (!diccionarioCantidadDeFormas.ContainsKey(claveForma))
                    {
                        diccionarioCantidadDeFormas.Add(claveForma, 0);
                    }

                    if (!diccionarioAreaDeFormas.ContainsKey(claveForma))
                    {
                        diccionarioAreaDeFormas.Add(claveForma, 0m);
                    }

                    if (!diccionarioPerimetroDeFormas.ContainsKey(claveForma))
                    {
                        diccionarioPerimetroDeFormas.Add(claveForma, 0m);
                    }

                    diccionarioCantidadDeFormas[claveForma]  += 1;
                    diccionarioAreaDeFormas[claveForma]      += formas[i].CalcularArea();
                    diccionarioPerimetroDeFormas[claveForma] += formas[i].CalcularPerimetro();
                }

                foreach (var claveForma in diccionarioCantidadDeFormas.Keys)
                {
                    var forma = formas.FirstOrDefault(f => f.GetType().Name.Equals(claveForma));

                    sb.Append(
                        ObtenerLinea(
                            diccionarioCantidadDeFormas[claveForma],
                            diccionarioAreaDeFormas[claveForma],
                            diccionarioPerimetroDeFormas[claveForma],
                            forma,
                            idioma
                            )
                        );
                }

                // FOOTER
                sb.Append("TOTAL:<br/>");
                sb.Append(diccionarioCantidadDeFormas.Sum(e => e.Value) + " " + idioma.TraduccionFormas + " ");
                sb.Append(idioma.TraduccionPerimetro + " " + (diccionarioPerimetroDeFormas.Sum(e => e.Value)).ToString("#.##") + " ");
                sb.Append("Area " + (diccionarioAreaDeFormas.Sum(e => e.Value)).ToString("#.##"));
            }

            return(sb.ToString());
        }
        public static string Imprimir(List <FormaGeometrica> formas, IIdioma idioma)
        {
            var sb = new StringBuilder();

            if (!formas.Any())
            {
                sb.Append(idioma.TituloVacio());
            }
            else
            {
                sb.Append(idioma.Titulo());

                var numeroCuadrados  = 0;
                var numeroCirculos   = 0;
                var numeroTriangulos = 0;
                var numeroTrapecio   = 0;

                var areaCuadrados  = 0m;
                var areaCirculos   = 0m;
                var areaTriangulos = 0m;
                var areaTrapecio   = 0m;

                var perimetroCuadrados  = 0m;
                var perimetroCirculos   = 0m;
                var perimetroTriangulos = 0m;
                var perimetroTrapecio   = 0m;

                foreach (var forma in formas)
                {
                    if (forma.Forma.GetType().Equals(new Cuadrado(0).GetType()))
                    {
                        numeroCuadrados++;
                        areaCuadrados      += forma.Forma.CalcularArea();
                        perimetroCuadrados += forma.Forma.CalcularPerimetro();
                    }
                    if (forma.Forma.Es(new Circulo(0)))
                    {
                        numeroCirculos++;
                        areaCirculos      += forma.Forma.CalcularArea();
                        perimetroCirculos += forma.Forma.CalcularPerimetro();
                    }
                    if (forma.Forma.Es(new TrianguloEquilatero(0)))
                    {
                        numeroTriangulos++;
                        areaTriangulos      += forma.Forma.CalcularArea();
                        perimetroTriangulos += forma.Forma.CalcularPerimetro();
                    }
                    if (forma.Forma.Es(new Trapecio()))
                    {
                        numeroTrapecio++;
                        areaTrapecio      += forma.Forma.CalcularArea();
                        perimetroTrapecio += forma.Forma.CalcularPerimetro();
                    }
                }

                sb.Append(idioma.ObtenerLinea(numeroCuadrados, areaCuadrados, perimetroCuadrados, Formas.Cuadrado));
                sb.Append(idioma.ObtenerLinea(numeroCirculos, areaCirculos, perimetroCirculos, Formas.Circulo));
                sb.Append(idioma.ObtenerLinea(numeroTriangulos, areaTriangulos, perimetroTriangulos, Formas.TrianguloEquilatero));
                sb.Append(idioma.ObtenerLinea(numeroTrapecio, areaTrapecio, perimetroTrapecio, Formas.Trapecio));

                // FOOTER
                sb.Append(idioma.Pie());

                sb.Append(idioma.PieResumenNumeroFormas(numeroCuadrados + numeroCirculos + numeroTriangulos + numeroTrapecio));
                sb.Append(idioma.PieResumenPerimetros(perimetroCuadrados + perimetroTriangulos + perimetroCirculos + perimetroTrapecio));

                sb.Append(idioma.PieResumenArea(areaCuadrados + areaCirculos + areaTriangulos + areaTrapecio));
            }

            return(sb.ToString());
        }
Exemplo n.º 6
0
 private static string TraducirForma(string fgNombre, int cantidad, IIdioma idioma)
 {
     return(GetEtiqueta($"fg.{fgNombre}{ (cantidad == 1 ? "" : ".plural") }", idioma));
 }
Exemplo n.º 7
0
 private static string ObtenerLinea(int cantidad, decimal area, decimal perimetro, string fgNombre, IIdioma idioma)
 {
     return(string.Format($"{GetEtiqueta("rpt.BodyLinea", idioma)} <br/>",
                          cantidad,
                          TraducirForma(fgNombre, cantidad, idioma),
                          area.ToString("#.##"),
                          perimetro.ToString("#.##")));
 }
Exemplo n.º 8
0
 private static string GetEtiqueta(string key, IIdioma idioma)
 {
     return(Etiquetas.ResourceManager.GetString(key, CultureInfo.GetCultureInfo(idioma.ToString())));
 }
 public virtual bool Es(IIdioma idioma)
 {
     return(this.Tipo == idioma.Tipo);
 }
Exemplo n.º 10
0
 public string Traducir(IIdioma idioma, bool isPlural)
 {
     return(idioma.TraducirCirculo(isPlural));
 }
 public string Traducir(IIdioma idioma, bool isPlural)
 {
     return(idioma.TraducirTrapecioIsoceles(isPlural));
 }
Exemplo n.º 12
0
 public string Traducir(IIdioma idioma, bool isPlural)
 {
     return(idioma.TraducirTrianguloEquilatero(isPlural));
 }