public FormaGeometrica(FormasGeometricas formaGeometrica, decimal ancho, decimal?anchoMayor = null, decimal?altura = null, decimal?ladoDiagonal = null) { this.TipoDeFormaGeometrica = formaGeometrica; this._lado = ancho; if (formaGeometrica == FormasGeometricas.Trapecio) { this._altura = altura ?? throw new ArgumentNullException(nameof(altura)); this._anchoMayor = anchoMayor ?? throw new ArgumentException(nameof(anchoMayor)); this._ladoDiagonal = ladoDiagonal ?? throw new ArgumentException(nameof(ladoDiagonal)); } }
/// <summary> /// Obtiene el nombre en singular o plurar de la forma /// </summary> /// <returns> /// Un string /// </returns> /// <param name="tipo">El tipo de forma.</param> /// <param name="cantidad">La cantidad de formas.</param> private static string ObtenerNombreDeForma(FormasGeometricas tipo, int cantidad) { string nombre = cantidad == 1 ? Resx.Strings.ResourceManager.GetString(tipo.ToString()) : Resx.Strings.ResourceManager.GetString(tipo.ToString() + "_PLURAL"); return(nombre); }
/// <summary> /// Genera una linea del resumen segun la forma /// </summary> /// <returns> /// Un string /// </returns> /// <param name="cantidad">La cantidad de formas.</param> /// <param name="area">La sumatoria de areas de la forma.</param> /// <param name="perimetro">La sumatoria de perimetros de la forma.</param> /// <param name="tipo">El tipo de forma.</param> private static string ObtenerLinea(int cantidad, decimal area, decimal perimetro, FormasGeometricas tipo) { if (cantidad > 0) { return($"{cantidad} {ObtenerNombreDeForma(tipo, cantidad)} | {Resx.Strings.Area} {area.ToString("#.##")} | {Resx.Strings.Perimeter} {perimetro:#.##} <br/>"); } return(string.Empty); }