Exemplo n.º 1
0
 public void AgregarLata(Lata lata)
 {
     if (this.encendida && GetCapacidadRestante() > 0)
     {
         latas.Add(lata);
     }
     else if (!this.encendida)
     {
         throw new Exception("Se debe encender la maquina primero");
     }
     else
     {
         throw new CapacidadInsuficienteException();
     }
 }
Exemplo n.º 2
0
 public Lata ExtraerLata(CodigoLata codigoLata, double dineroIngresado)
 {
     if (HayStockDe(codigoLata))
     {
         Lata lataAEliminar = latas.Find(lata => lata.Codigo.Equals(codigoLata));
         if (AlcanzaDineroPara(lataAEliminar, dineroIngresado))
         {
             latas.Remove(lataAEliminar);
             IngresarDinero(lataAEliminar.Precio);
             return(lataAEliminar);
         }
         else
         {
             throw new DineroInsuficienteException(lataAEliminar, dineroIngresado);
         }
     }
     else
     {
         throw new SinStockException();
     }
 }
Exemplo n.º 3
0
 public DineroInsuficienteException(Lata lata, double dinero) : base("No hay dinero suficiente para realizar la compra de: " + lata.Codigo + ". Faltan: $ " + (lata.Precio - dinero))
 {
 }
Exemplo n.º 4
0
        static void IngresarLata(Expendedora exp)
        {
            try
            {
                if (!exp.Encendida)
                {
                    Console.WriteLine("Primero debe encender la maquina para continuar.");
                }
                else
                {
                    exp.ListaLatas();
                    string codigo;

                    Console.WriteLine("Ingrese un codigo de lata: ");
                    codigo = Console.ReadLine();
                    Lata L1 = exp.BuscarLata(codigo);

                    if (L1 == null)
                    {
                        throw new CodigoInvalidoExepcion();
                    }
                    else
                    {
                        try
                        {
                            double _precio = 0;
                            string _strprecio;
                            bool   esPrecio;
                            // INGRESO PRECIO
                            do
                            {
                                Console.Write("Ingrese precio: ");
                                _strprecio = Console.ReadLine();
                                esPrecio   = new Validaciones().ValidarPrecio(_strprecio, ref _precio);
                            } while (esPrecio == false);

                            // INGRESO VOLUMEN
                            double _volumen = 0;
                            string _strvolumen;
                            bool   esVolumen;
                            do
                            {
                                Console.Write("Ingrese volumen: ");
                                _strvolumen = Console.ReadLine();
                                esVolumen   = new Validaciones().ValidarPrecio(_strvolumen, ref _volumen);
                            } while (esVolumen == false);

                            Lata Lata = new Lata(L1.Codigo, L1.Nombre, L1.Sabor, _precio, _volumen);

                            exp.AgregarLata(Lata);

                            Console.WriteLine("Lata agregada con exito");
                        } catch (CapacidadInsuficienteExcepcion ee)
                        {
                            Console.WriteLine(ee.Message);
                        }
                    }
                }
            }
            catch (CodigoInvalidoExepcion ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Exemplo n.º 5
0
        static void ExtraerLata(Expendedora exp)
        {
            try
            {
                if (!exp.Encendida)
                {
                    Console.WriteLine("Primero debe encender la maquina para continuar.");
                }
                try
                {
                    //SELECCIONA EL CODIGO DE LATA
                    exp.ListaLatas();
                    Console.Write("Por favor selccione el codigo de lata a extraer: ");

                    string codigo = Console.ReadLine();
                    Lata   L1     = exp.BuscarLata(codigo);

                    if (L1 == null)
                    {
                        throw new CodigoInvalidoExepcion();
                    }
                    else if (exp.EstaVacia())
                    {
                        throw new SinStockExcepcion();
                    }
                    else
                    {
                        //INGRESO DEL DINERO, UNA VEZ SELECCIONADA LA LATA
                        try
                        {
                            double _dinero = 0;
                            string _strdinero;
                            bool   esDinero;
                            // INGRESO PRECIO
                            do
                            {
                                Console.Write("Ingrese dinero: ");
                                _strdinero = Console.ReadLine();
                                esDinero   = new Validaciones().ValidarPrecio(_strdinero, ref _dinero);
                            } while (esDinero == false);

                            if (_dinero < L1.Precio)
                            {
                                throw new DineroInsuficienteExcepcion();
                            }
                            else
                            {
                                Console.WriteLine("Lata extraida con EXITO");

                                exp.ExtraerLata(L1.Codigo, L1.Precio);
                            }
                        }
                        catch (DineroInsuficienteExcepcion e)
                        {
                            Console.WriteLine(e.Message);
                        }
                    }
                }
                catch (CodigoInvalidoExepcion ex)
                {
                    Console.WriteLine(ex.Message);
                }
                catch (SinStockExcepcion ez)
                {
                    Console.WriteLine(ez.Message);
                }
            }
            catch (Exception ee)
            {
                Console.WriteLine(ee.Message);
            }
        }
Exemplo n.º 6
0
 /* public string GetBalance()
  * {
  *
  * }*/
 public bool AlcanzaDineroPara(Lata lata, double dineroIngresado)
 {
     return(lata.Precio <= dineroIngresado);
 }