Example #1
0
        /// <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.GetType() == typeof(Snacks))
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                case ETipo.Dulce:
                    if (v.GetType() == typeof(Dulce))
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                case ETipo.Leche:
                    if (v.GetType() == typeof(Leche))
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                default:
                    sb.AppendLine(v.Mostrar());
                    break;
                }
            }

            return(sb.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 static 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:     // en el main pide que solo se muestre uno de los alimentos
                    if (v is Snacks)
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                case ETipo.Dulce:
                    if (v is Dulce)
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                case ETipo.Leche:
                    if (v is Leche)
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                default:
                    sb.AppendLine(v.Mostrar());
                    break;
                }
            }

            return(sb.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 static 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)                //pregunto si v es de la clase que necesito.
                    {
                        sb.AppendLine(v.Mostrar()); //de serlo, claramente se sabe que es un objeto de la clase Snacks
                    }                               //y por lo tanto el Mostrar() será el de Snacks
                    break;

                case ETipo.Dulce:
                    if (v is Dulce)
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                case ETipo.Leche:
                    if (v is Leche)
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                default:
                    sb.AppendLine(v.Mostrar());
                    break;
                }
            }

            return(sb.ToString());
        }
Example #4
0
        /// <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 static 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)    // Muestro solo Snacks
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                case ETipo.Dulce:
                    if (v is Dulce)     // Muestro solo Dulces
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                case ETipo.Leche:
                    if (v is Leche)    // Muestro solo Leches
                    {
                        sb.AppendLine(v.Mostrar());
                    }
                    break;

                default:
                    sb.AppendLine(v.Mostrar());
                    break;
                }
            }

            return(sb.ToString()); // Se agrega ToString() ya que el metodo devuelve string
        }
Example #5
0
        /// <summary>
        /// Agregará un elemento a la lista
        /// </summary>
        /// <param name="c">Objeto donde se agregará el elemento</param>
        /// <param name="p">Objeto a agregar</param>
        /// <returns></returns>
        public static Changuito operator +(Changuito c, Producto p)
        {
            bool      retorno = false;
            Changuito cc      = c;

            if (c._espacioDisponible > c._productos.Count)
            {
                foreach (Producto v in cc._productos)
                {
                    if (v == p)
                    {
                        retorno = true;
                    }
                }

                if (!retorno)
                {
                    cc._productos.Add(p);
                }
            }

            return(cc);
        }
 /// <summary>
 /// Muestro el changuito y TODOS los Productos que contiene
 /// </summary>
 /// <returns></returns>
 public override string ToString()
 {
     return(Changuito.Mostrar(this, ETipo.Todos));
 }
Example #7
0
        /// <summary>
        /// Muestro la concecionaria y TODOS los Productos
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            Changuito c = (Changuito)this;

            return(Changuito.Mostrar(c, ETipo.Todos));
        }