public void Execute(VolarisReservation reservation)
        {
            var openSession = new VolarisOpenSessionResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart,
                MessageToSend             = "Conectando con volaris...."
            };
            var airBook = new VolarisAirBookingResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart,
                MessageToSend             = "Procesando informacion...."
            };

            var airPrice = new VolarisAirPricingResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };

            var travelItinerary = new VolarisTravelItineraryAddInformationResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };

            var specialService = new VolarisSpecialServiceResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };

            var endTransaction = new VolarisEndTransactionResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };

            var closeSession = new VolarisSessionCloseResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };


            openSession.SetSuccesor(airBook);
            airBook.SetSuccesor(airPrice);
            airPrice.SetSuccesor(travelItinerary);
            travelItinerary.SetSuccesor(specialService);
            specialService.SetSuccesor(endTransaction);
            endTransaction.SetSuccesor(closeSession);
            openSession.Execute(reservation, "");
        }
        public void AmericanExpressPayment(VolarisReservation reservation)
        {
            var openSession = new VolarisOpenSessionResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart,
                MessageToSend             = "Conectado con volaris..."
            };

            var sabreCommand = new VolarisSabreCommandResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };
            var designatePrinter = new VolarisDesignatePrinterResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };

            var itineraryRead = new VolarisItineraryReadResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart,
                MessageToSend             = "Comprobando tarjeta...."
            };


            var airTicket = new VolarisAirTicketResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };

            var fraudCheck = new VolarisFraudCheckResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart,
            };


            var addRemark = new VolarisAddRemarkResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };

            var travelReadItinerary = new VolarisItineraryReadResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart,
                MessageToSend             = "Tarjeta aceptada..."
            };
            var endTransactionForRecord = new VolarisEndTransactionResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };

            var endTransactionForRemark = new VolarisEndTransactionResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };


            var closeSession = new VolarisSessionCloseResponsabilityHandler()
            {
                OnWebServiceCallCompleted = OnWebServiceCallCompleted,
                OnWebServiceCallStart     = OnWebServiceCallStart
            };


            openSession.SetSuccesor(sabreCommand);
            sabreCommand.SetSuccesor(designatePrinter);
            designatePrinter.SetSuccesor(itineraryRead);
            itineraryRead.SetSuccesor(airTicket);
            airTicket.SetSuccesor(endTransactionForRecord);
            endTransactionForRecord.SetSuccesor(travelReadItinerary);
            travelReadItinerary.SetSuccesor(fraudCheck);
            fraudCheck.SetSuccesor(addRemark);
            addRemark.SetSuccesor(endTransactionForRemark);
            endTransactionForRemark.SetSuccesor(closeSession);
            openSession.Execute(reservation, "");
        }