예제 #1
0
        static void Main(string[] args)
        {
            //instanciamos al cliente
            Client cliente = new Client();

            //Instanciamos los decoradores
            ConcreteHistorial decoradorHistorial = null;
            ConcreteEmail     decoradorEmail     = null;

            //instanciamos el servicio principal
            GuardarCxP guardarCxP = new GuardarCxP();

            //instanciamos la entridad de cuenta por pagar con los valores deceados
            entCuentaPagar entCxP = new entCuentaPagar()
            {
                iIdCuentaPagar = 5, iImporte = 100, iNaturaleza = 1
            };

            while (true)
            {
                Console.WriteLine("Seleccione una opción: \n 1°) Guardar CxP \n 2°) Guardar Historial y Guardar CxP \n 3°) Enviar Email y Guardar CxP \n 4°) Enviar Correo, Guardar Historia y Guardar CxP");
                string cAccion = Console.ReadLine();
                switch (cAccion)
                {
                case "1":
                    //Ejecutamos el servicio de guardado sin decoradores
                    Console.WriteLine("1°) Se requiere que guarde una CxP");
                    cliente.Ejecutar(guardarCxP, entCxP);
                    break;

                case "2":
                    //Ejecutamos el servicio de guardado con el decorador de guardado de historial
                    decoradorHistorial = new ConcreteHistorial(guardarCxP);
                    Console.WriteLine("2°) Se debe guardar un Historial al guardar una CxP");
                    cliente.Ejecutar(decoradorHistorial, entCxP);
                    break;

                case "3":
                    //Ejecutamos el servicio de guardado con el decorador de enviar correo
                    decoradorEmail = new ConcreteEmail(guardarCxP);
                    Console.WriteLine("3°) Se requiere que cuando se guarde una CXP se envié un correo a un usuario");
                    cliente.Ejecutar(decoradorEmail, entCxP);
                    break;

                case "4":
                    //Ejecutamos el servicio de guardado con el decorador de guardar historial y este a la vez con un decorador de enviar email
                    decoradorHistorial = new ConcreteHistorial(guardarCxP);
                    decoradorEmail     = new ConcreteEmail(decoradorHistorial);
                    Console.WriteLine("4°) Se requiere que cuando se guarde una CXP se guarde un historial, y se envié un correo a un usuario.");
                    cliente.Ejecutar(decoradorEmail, entCxP);

                    break;

                default:
                    Console.WriteLine("No es una opcion válida");
                    break;
                }
                Console.WriteLine();
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            GuardarCxP guardarCxP = new GuardarCxP();

            Console.WriteLine("Se guarda CxP");
            guardarCxP.EjecutarAccion();

            Console.WriteLine("Modificacion 1");
            GuardarHistorialCxp guardarHistorialCxp = new GuardarHistorialCxp(guardarCxP);

            guardarHistorialCxp.EjecutarAccion();

            Console.WriteLine("Modificacion 2");
            EnviarCorreoUsuario enviarCorreoUsuario = new EnviarCorreoUsuario(guardarCxP);

            enviarCorreoUsuario.EjecutarAccion();

            Console.WriteLine("Modificacion 3");
            enviarCorreoUsuario = new EnviarCorreoUsuario(guardarHistorialCxp);
            enviarCorreoUsuario.EjecutarAccion();
        }