/// <summary> /// Expone los datos del elemento y su lista (incluidas sus herencias). /// SOLO del tipo requerido. /// </summary> /// <param name="concecionaria">Elemento a exponer.</param> /// <param name="tipoDeChanguito">Tipos de ítems de la lista a mostrar.</param> /// <returns>Retorna los datos de los elementos concatenados en un solo string.</returns> public string Mostrar(Changuito concecionaria, ETipo tipoDeChanguito) { StringBuilder builder = new StringBuilder(); builder.AppendFormat("Tenemos {0} lugares ocupados de un total de {1} disponibles", concecionaria._productos.Count, concecionaria._espacioDisponible); builder.AppendLine(""); foreach (Producto producto in concecionaria._productos) { switch (tipoDeChanguito) { case ETipo.Dulce: if (producto is Dulce) { builder.AppendLine(producto.Mostrar()); } break; case ETipo.Leche: if (producto is Leche) { builder.AppendLine(producto.Mostrar()); } break; case ETipo.Snacks: if (producto is Snacks) { builder.AppendLine(producto.Mostrar()); } break; default: builder.AppendLine(producto.Mostrar()); break; } } return(builder.ToString()); }
/// <summary> /// Expone los datos del elemento y su lista (incluidas sus herencias) /// SOLO del tipo requerido /// </summary> /// <param name="c">Elemento a exponer</param> /// <param name="ETipo">Tipos de ítems de la lista a mostrar</param> /// <returns></returns> public string Mostrar(Changuito c, ETipo tipo) //quitar static { StringBuilder sb = new StringBuilder(); sb.AppendFormat("Tenemos {0} lugares ocupados de un total de {1} disponibles", c._productos.Count, c._espacioDisponible); sb.AppendLine(""); foreach (Producto v in c._productos) { switch (tipo) { case ETipo.Snacks: if (v is Snacks) { sb.AppendLine(((Snacks)v).Mostrar()); } break; case ETipo.Dulce: if (v is Dulce) { sb.AppendLine(((Dulce)v).Mostrar()); } break; case ETipo.Leche: if (v is Leche) { sb.AppendLine(((Leche)v).Mostrar()); } break; default: sb.AppendLine(v.Mostrar()); break; } } return(sb.ToString()); }
/// <summary> /// Muestra Producto dependiendo de su Tipo /// </summary> /// <param name="c"></param> /// <param name="tipo"></param> /// <returns></returns> public string Mostrar(Changuito c, ETipo tipo) { StringBuilder sb = new StringBuilder(ToString()); foreach (Producto p in productos) { switch (tipo) { case ETipo.Dulce: if (p is Dulce) { sb.Append(p.Mostrar()); } break; case ETipo.Leche: if (p is Leche) { sb.Append(p.Mostrar()); } break; case ETipo.Snacks: if (p is Snacks) { sb.Append(p.Mostrar()); } break; default: sb.Append(p.Mostrar()); break; } } return(sb.ToString()); }
/// <summary> /// Muestro el Changuito y TODOS los Productos /// </summary> /// <returns></returns> public override string ToString() { return(Changuito.Mostrar(this, ETipo.Todos)); }
/// <summary> /// Expone los datos del elemento y su lista (incluidas sus herencias) /// SOLO del tipo requerido /// </summary> /// <param name="c">Elemento a exponer</param> /// <param name="ETipo">Tipos de ítems de la lista a mostrar</param> /// <returns>Retorna una cadena de caracteres con los datos del chango segun el tipo especificado de producto</returns> public string Mostrar(Changuito c, ETipo tipo) { StringBuilder cadena = new StringBuilder(); cadena.AppendFormat("Tenemos {0} lugares ocupados de un total de {1} disponibles", c.productos.Count, c.espacioDisponible); cadena.AppendLine(""); #region "Otra forma con if" /* * if (!(c is null)) * { * foreach (Producto product in c.productos) * { * if (tipo == ETipo.Leche && product is Leche) * { * cadena.AppendLine(((Leche)product).Mostrar()); * } * else if (tipo == ETipo.Snacks && product is Snacks) * { * cadena.AppendLine(((Snacks)product).Mostrar()); * } * else if (product is Dulce && tipo == ETipo.Dulce) * { * cadena.AppendLine(((Dulce)product).Mostrar()); * }else if (tipo== ETipo.Todos) * { * cadena.AppendLine(product.Mostrar()); * } * } * } * * return cadena.ToString();*/ #endregion if (!(c is null)) { foreach (Producto product in c.productos) { switch (tipo) { case ETipo.Snacks: if (product is Snacks) { cadena.AppendLine(product.Mostrar()); } break; case ETipo.Dulce: if (product is Dulce) { cadena.AppendLine(product.Mostrar());; } break; case ETipo.Leche: if (product is Leche) { cadena.AppendLine(product.Mostrar()); } break; default: cadena.AppendLine(product.Mostrar()); break; } } } return(cadena.ToString()); }