using System; namespace DesignPatterns.State { public class TransactionApprovedState : IState { public TransactionApprovedState( IPosTerminal terminal ) { _terminal = terminal; } public void SwipeCard( string cardNumber ) { Console.Out.WriteLine( "The transaction was approved" ); } public void EnterAmount( double amount ) { Console.Out.WriteLine( "The transaction was approved" ); } public void EnterPin( string pin ) { Console.Out.WriteLine( "The transaction was approved" ); } public void ProcessTransaction( ) { Console.Out.WriteLine( "The transaction was approved" ); } public void PrintReceipt( ) { Console.Out.WriteLine( "** Approved **" ); Console.Out.WriteLine( "Date: {0}", _terminal.Transaction.Date ); Console.Out.WriteLine( "Card Number: {0}", _terminal.Transaction.CardNumber ); Console.Out.WriteLine( "Amount: {0}", _terminal.Transaction.Amount ); _terminal.CurrentState = new IdleState( _terminal ); } private IPosTerminal _terminal; } }