public void ProcessRequest(Request request)
 {
     OnRequest(new LaunchRequestEventArgs(
         request.Crew, request.FuelOnBoardInLbs, request.LaunchCommand));
 }
        static void Main()
        {
            Request request;

            // Setup Chain of Responsibility
            Approver Buzz = new Pilot();
            Approver Neil = new Commander();
            Approver Gene = new FlightDirector();

            Buzz.Successor = Neil;
            Neil.Successor = Gene;

            // Generate and process launch requests
            request = new Request(2, 35000.00, "Launch 1");
            Buzz.ProcessRequest(request);

            request = new Request(3, 35000.00, "Launch 2");
            Buzz.ProcessRequest(request);

            request = new Request(3, 1221000.50, "Launch 3");
            Buzz.ProcessRequest(request);

            // Wait for user
            Console.Read();
        }