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(); } }
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(); } }
public DineroInsuficienteException(Lata lata, double dinero) : base("No hay dinero suficiente para realizar la compra de: " + lata.Codigo + ". Faltan: $ " + (lata.Precio - dinero)) { }
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); } }
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); } }
/* public string GetBalance() * { * * }*/ public bool AlcanzaDineroPara(Lata lata, double dineroIngresado) { return(lata.Precio <= dineroIngresado); }