コード例 #1
0
ファイル: Reporte.cs プロジェクト: elmango80/CodingChallenge
        private string ObtenerLinea(Formas tipo)
        {
            int i        = (int)tipo;
            int cantidad = _cantidades[i];

            if (cantidad == 0)
            {
                return(string.Empty);
            }

            return($"{cantidad} {TraducirForma(tipo, cantidad)} | " +
                   $"{_texto.Area} {_areas[i]:#.##} | " +
                   $"{_texto.Perimetro} {_perimetros[i]:#.##} <br/>");
        }
コード例 #2
0
        protected override string TraducirForma(Formas tipo, int cantidad)
        {
            switch (tipo)
            {
            case  Formas.Cuadrado:
                return(cantidad == 1 ? "Cuadrado" : "Cuadrados");

            case Formas.TrianguloEquilatero:
                return(cantidad == 1 ? "Triángulo" : "Triángulos");

            case Formas.Circulo:
                return(cantidad == 1 ? "Círculo" : "Círculos");
            }
            return(string.Empty);
        }
コード例 #3
0
 public override string ObtenerLinea(int cantidad, decimal area, decimal perimetro, Formas tipo)
 {
     return((cantidad > 0) ? $"{cantidad} {TraducirForma(tipo, cantidad)} | Area {area:#.##} | Perimeter {perimetro:#.##} <br/>" : string.Empty);
 }
コード例 #4
0
 public abstract string ObtenerLinea(int cantidad, decimal area, decimal perimetro, Formas tipo);
コード例 #5
0
 protected abstract string TraducirForma(Formas tipo, int cantidad);
コード例 #6
0
        public static string Imprimir(List <FormaGeometrica> formas, int idioma)
        {
            var    sb      = new StringBuilder();
            var    cuerpo  = Metodos.CargarLista();
            Formas _forma  = new Formas();
            String _header = null;


            for (var j = 0; j < cuerpo.Count; j++)
            {
                if (idioma == cuerpo[j].Valoridioma)
                {
                    _header = cuerpo[j].header;
                    break;
                }
            }


            if (!formas.Any())
            {
                sb.Append("<h1>" + _header + "!</h1>");

                /* if (idioma == Castellano)
                 *   sb.Append("<h1>Lista vacía de formas!</h1>");
                 * else
                 *   sb.Append("<h1>Empty list of shapes!</h1>");*/
            }
            else
            {
                // Hay por lo menos una forma
                // HEADER
                sb.Append("<h1>" + _header + "!</h1>");

                /*if (idioma == Castellano)
                 *    sb.Append("<h1>Reporte de Formas</h1>");
                 * else
                 *    // default es inglés
                 *    sb.Append("<h1>Shapes report</h1>");*/

                var areaGenerico      = 0m;
                var perimetroGenerico = 0m;

                var numeroCuadrados   = 0;
                var numeroCirculos    = 0;
                var numeroTriangulos  = 0;
                var numeroRectangulos = 0;
                var numeroTrapecios   = 0;

                var areaCuadrados   = 0m;
                var areaCirculos    = 0m;
                var areaTriangulos  = 0m;
                var areaRectangulos = 0m;
                var areaTrapecios   = 0m;

                var perimetroCuadrados   = 0m;
                var perimetroCirculos    = 0m;
                var perimetroTriangulos  = 0m;
                var perimetroRectangulos = 0m;
                var perimetroTrapecios   = 0m;

                for (var i = 0; i < formas.Count; i++)
                {
                    for (var j = 0; j < cuerpo.Count; j++)
                    {
                        if (formas[i].Tipo == cuerpo[j].ValorCuerpo && idioma == cuerpo[j].Valoridioma)
                        {
                            areaGenerico      = formas[i].CalcularArea();
                            perimetroGenerico = formas[i].CalcularPerimetro();
                        }
                    }

                    if (formas[i].Tipo == Cuadrado)
                    {
                        numeroCuadrados++;
                        areaCuadrados      += formas[i].CalcularArea();
                        perimetroCuadrados += formas[i].CalcularPerimetro();
                    }
                    if (formas[i].Tipo == Circulo)
                    {
                        numeroCirculos++;
                        areaCirculos      += formas[i].CalcularArea();
                        perimetroCirculos += formas[i].CalcularPerimetro();
                    }
                    if (formas[i].Tipo == TrianguloEquilatero)
                    {
                        numeroTriangulos++;
                        areaTriangulos      += formas[i].CalcularArea();
                        perimetroTriangulos += formas[i].CalcularPerimetro();
                    }
                    if (formas[i].Tipo == Rectangulo)
                    {
                        numeroRectangulos++;
                        areaRectangulos      += areaGenerico;
                        perimetroRectangulos += perimetroGenerico;
                    }
                    if (formas[i].Tipo == Trapecio)
                    {
                        numeroTrapecios++;
                        areaTrapecios      += areaGenerico;
                        perimetroTrapecios += perimetroGenerico;
                    }
                }

                /*sb.Append(ObtenerLinea(numeroCuadrados, areaCuadrados, perimetroCuadrados, Cuadrado, idioma));
                 * sb.Append(ObtenerLinea(numeroCirculos, areaCirculos, perimetroCirculos, Circulo, idioma));
                 * sb.Append(ObtenerLinea(numeroTriangulos, areaTriangulos, perimetroTriangulos, TrianguloEquilatero, idioma));*/

                sb.Append(ObtenerLinea(numeroCuadrados, areaCuadrados, perimetroCuadrados, Cuadrado, idioma, cuerpo));
                sb.Append(ObtenerLinea(numeroCirculos, areaCirculos, perimetroCirculos, Circulo, idioma, cuerpo));
                sb.Append(ObtenerLinea(numeroTriangulos, areaTriangulos, perimetroTriangulos, TrianguloEquilatero, idioma, cuerpo));
                sb.Append(ObtenerLinea(numeroRectangulos, areaRectangulos, perimetroRectangulos, Rectangulo, idioma, cuerpo));
                sb.Append(ObtenerLinea(numeroTrapecios, areaTrapecios, perimetroTrapecios, Trapecio, idioma, cuerpo));



                // FOOTER
                sb.Append("TOTAL:<br/>");

                /*sb.Append(numeroCuadrados + numeroCirculos + numeroTriangulos + " " + (idioma == Castellano ? "formas" : "shapes") + " ");
                 * sb.Append((idioma == Castellano ? "Perimetro " : "Perimeter ") + (perimetroCuadrados + perimetroTriangulos + perimetroCirculos).ToString("#.##") + " ");
                 * sb.Append("Area " + (areaCuadrados + areaCirculos + areaTriangulos).ToString("#.##"));*/
                for (var i = 0; i < formas.Count; i++)
                {
                    for (var j = 0; j < cuerpo.Count; j++)
                    {
                        if (idioma == cuerpo[j].Valoridioma && formas[i].Tipo == cuerpo[j].ValorCuerpo)
                        {
                            sb.Append(numeroCuadrados + numeroCirculos + numeroTriangulos + numeroRectangulos + numeroTrapecios + " " + _forma.formas + " ");
                            sb.Append(_forma.perimetro + (perimetroCuadrados + perimetroTriangulos + perimetroCirculos + perimetroRectangulos + perimetroTrapecios).ToString("#.##") + " ");
                            sb.Append(_forma.area + (areaCuadrados + areaCirculos + areaTriangulos + areaRectangulos + areaTrapecios).ToString("#.##"));
                        }
                    }
                }
            }

            return(sb.ToString());
        }
コード例 #7
0
        /*private static string TraducirForma(int tipo, int cantidad, int idioma)
         * {
         *  switch (tipo)
         *  {
         *      case Cuadrado:
         *          if (idioma == Castellano) return cantidad == 1 ? "Cuadrado" : "Cuadrados";
         *          else return cantidad == 1 ? "Square" : "Squares";
         *      case Circulo:
         *          if (idioma == Castellano) return cantidad == 1 ? "Círculo" : "Círculos";
         *          else return cantidad == 1 ? "Circle" : "Circles";
         *      case TrianguloEquilatero:
         *          if (idioma == Castellano) return cantidad == 1 ? "Triángulo" : "Triángulos";
         *          else return cantidad == 1 ? "Triangle" : "Triangles";
         *  }
         *
         *  return string.Empty;
         * }*/

        private static string TraducirForma(int cantidad, Formas p_forma)
        {
            return(cantidad == 1 ? p_forma.forma : p_forma.formas);
        }