public void AgregaOpcionIncompatible(OpcionVehiculo
                                      opcionIncompatible)
 {
     if (!OpcionesIncompatibles.Contains(opcionIncompatible))
     {
         OpcionesIncompatibles.Add(opcionIncompatible);
         opcionIncompatible.AgregaOpcionIncompatible(this);
     }
 }
        public IMemento AgregaOpcion(OpcionVehiculo
                                     opcionVehiculo)
        {
            MementoImpl resultado = new MementoImpl();

            resultado.Estado = opciones;
            IList <OpcionVehiculo> opcionesIncompatibles =
                opcionVehiculo.OpcionesIncompatibles;

            foreach (OpcionVehiculo opcion in
                     opcionesIncompatibles)
            {
                opciones.Remove(opcion);
            }
            opciones.Add(opcionVehiculo);
            return(resultado);
        }
Esempio n. 3
0
        private static void Main(string[] args)
        {
            IMemento       memento;
            OpcionVehiculo opcion1 = new OpcionVehiculo(
                "Asientos en cuero");
            OpcionVehiculo opcion2 = new OpcionVehiculo(
                "Reclinables");
            OpcionVehiculo opcion3 = new OpcionVehiculo(
                "Asientos deportivos");

            opcion1.AgregaOpcionIncompatible(opcion3);
            opcion2.AgregaOpcionIncompatible(opcion3);
            CarritoOpciones carritoOpciones = new CarritoOpciones();

            carritoOpciones.AgregaOpcion(opcion1);
            carritoOpciones.AgregaOpcion(opcion2);
            carritoOpciones.Visualiza();
            memento = carritoOpciones.AgregaOpcion(opcion3);
            carritoOpciones.Visualiza();
            carritoOpciones.Anula(memento);
            carritoOpciones.Visualiza();
            Console.ReadKey();
        }