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()); }
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()); }
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/>"); }
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()); }
private static string TraducirForma(string fgNombre, int cantidad, IIdioma idioma) { return(GetEtiqueta($"fg.{fgNombre}{ (cantidad == 1 ? "" : ".plural") }", idioma)); }
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("#.##"))); }
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); }
public string Traducir(IIdioma idioma, bool isPlural) { return(idioma.TraducirCirculo(isPlural)); }
public string Traducir(IIdioma idioma, bool isPlural) { return(idioma.TraducirTrapecioIsoceles(isPlural)); }
public string Traducir(IIdioma idioma, bool isPlural) { return(idioma.TraducirTrianguloEquilatero(isPlural)); }