public IVendible Aplicar(IVendible venta) { foreach (var v in promociones) { venta = v(venta); } return(venta); }
private static double FacturarUnitario(IVendible obj) { double total = 0; total = obj.Vender(); return(total); }
public Oferta(Producto producto, int cantidad) { if (cantidad == 3) { venta = new Oferta3x2(producto, cantidad); } else if (cantidad == 1) { venta = new Venta(producto, cantidad); } else { venta = new Oferta2x1(producto, cantidad); } }
public Ram(IVendible vendible) : base(vendible) { }
public Polarizado(IVendible vendible) : base(vendible) { SetDescripcion("Polarizado"); SetPrecio(3200); }
public AsientoCuero(IVendible vendible) : base(vendible) { SetDescripcion("Asiento de cuero"); SetPrecio(17000); }
public OfertaLoca(IVendible venta) { this.venta = venta; }
public Mayorista(IVendible venta) { this.venta = venta; }
public Descuento(IVendible venta) { this.venta = venta; }
public AutomovilDecorator(IVendible vendible) { SetVendible(vendible); }
public CubreCarter(IVendible vendible) : base(vendible) { SetDescripcion("Chapón cubre carter"); SetPrecio(4350); }
public Auditoria(IVendible venta) { this.venta = venta; }
public void Agregar(IVendible venta) { ventas.Add(venta); }
public CajaAutomatica(IVendible vendible) : base(vendible) { SetDescripcion("Caja automática"); SetPrecio(21000); }
public void SetVendible(IVendible vendible) { _vendible = vendible; }
public LlantasAleacion(IVendible vendible) : base(vendible) { SetDescripcion("Llantas de aleación"); SetPrecio(9500); }
public static void Vender(IVendible x, Persona p) => x.SeVendeA(p);
public GraphicCard(IVendible vendible) : base(vendible) { }
protected PcDecorator(IVendible vendible) { Vendible = vendible; }
public Factura Agregar(IVendible venta) { ventas.Add(venta); return(this); // Esto es para que se pueden usar interface fluidas }
// Ejemplo de uso de interface para delegar funcionalidad // Padron: Decorador static void Mostrar(IVendible venta) { Console.WriteLine($"El importe es {venta.Importe}"); }