예제 #1
0
 public void AgregarLata(Lata lata)
 {
     if (GetCapacidadRestante() > 0)
     {
         this._latas.Add(lata);
     }
     else
     {
         throw new NoEspacio();
     }
 }
예제 #2
0
        public ExtraccionObtenida ExtraerLata(string codigo, double dinero)
        {
            Lata   lataAExtraer = null;
            double vueltoADar   = 0;

            foreach (Lata l in this._latas)
            {
                if (codigo == l.Codigo)
                {
                    if (dinero == l.Precio)
                    {
                        lataAExtraer = l;
                        vueltoADar   = 0;
                        this._latas.Remove(l);
                        this._dinero += dinero;
                        break;
                    }
                    else if (dinero > l.Precio)
                    {
                        lataAExtraer = l;
                        vueltoADar   = dinero - l.Precio;
                        this._latas.Remove(l);
                        this._dinero += l.Precio;
                        break;
                    }
                    else
                    {
                        throw new DineroInsuficiente((l.Precio - dinero).ToString());
                    }
                }
            }
            if (lataAExtraer != null)
            {
                ExtraccionObtenida result = new ExtraccionObtenida(lataAExtraer, vueltoADar);
                return(result);
            }
            else
            {
                throw new NoExisteStock();
            }
        }
 public ExtraccionObtenida(Lata lata, double vuelto)
 {
     this._lata   = lata;
     this._vuelto = vuelto;
 }