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(); } }
public override string Ejecutar(entCuentaPagar entCxP) { if (this.componente != null) { return(this.componente.Ejecutar(entCxP)); } else { return(string.Empty); } }
public override string Ejecutar(entCuentaPagar entCxP) { return($"Se Envio un Correo({base.Ejecutar(entCxP)})"); }
public override string Ejecutar(entCuentaPagar entCxP) { return($"Se guardo en el historial({base.Ejecutar(entCxP)})"); }
public abstract string Ejecutar(entCuentaPagar entCxP);
public void Ejecutar(Componente component, entCuentaPagar entCxP) { Console.WriteLine(component.Ejecutar(entCxP)); }
public override string Ejecutar(entCuentaPagar entCxP) { return("RESULTADO: Se guardo la Cuenta por pagar: CuentaPagar=" + entCxP.iIdCuentaPagar + ", Importe= " + entCxP.iImporte + " y Naturaleza=" + entCxP.iNaturaleza); }