// Invoke the launch Request event
 public virtual void OnRequest(LaunchRequestEventArgs e)
 {
     if (Request != null)
     {
         Request(this, e);
     }
 }
        public void FlightDirectorRequest(Approver approver, LaunchRequestEventArgs e)
        {
            if (e.FuelOnBoardInLbs < 1000000.0)
            {
                Console.WriteLine("{0}, you are only reporting {1} lbs of fuel on board.",
                    this.GetType().Name, e.FuelOnBoardInLbs);
                Console.WriteLine("You need at least 1 Million. {0} Denied.\n\n", e.LaunchCommand);

            }
            else
            {
                Console.WriteLine(
                    "{0}: All Systems Go! Launch Control, launch is a Go!",
                    this.GetType().Name);
            }
        }
        public void PilotRequest(Approver approver, LaunchRequestEventArgs e)
        {
            if (e.Crew < 3)
            {
                Console.WriteLine("{0}, you are only reporting {1} crew on board.",
                    this.GetType().Name, e.Crew);
                Console.WriteLine("We need at least 3. {0} denied.\n\n", e.LaunchCommand);

            }
            else if (Successor != null)
            {
                Console.WriteLine("{0}: Commander says: {1} Go.\n\n", e.LaunchCommand, this.GetType().Name);
                Successor.OnRequest(e);
            }
        }
        public void CommanderRequest(Approver approver,
            LaunchRequestEventArgs e)
        {
            if (e.FuelOnBoardInLbs < 1000000.0)
                {
                    Console.WriteLine("{0}, you are only reporting {1} lbs of fuel on board.",
                        this.GetType().Name, e.FuelOnBoardInLbs);
                    Console.WriteLine("You need at least 1 Million. {0} denied.\n\n", e.LaunchCommand);

                }
                else if (Successor != null)
                {
                    Console.WriteLine("{0}: Flight Director says: {1} Go.\n\n",e.LaunchCommand, this.GetType().Name);
                    Successor.OnRequest(e);
                }
        }