using System; namespace DesignPatterns.State { public class TransactionRejectedState : IState { public TransactionRejectedState( IPosTerminal terminal ) { _terminal = terminal; } public void SwipeCard( string cardNumber ) { Console.Out.WriteLine( "The transaction was rejected" ); } public void EnterAmount( double amount ) { Console.Out.WriteLine( "The transaction was rejected" ); } public void EnterPin( string pin ) { Console.Out.WriteLine( "The transaction was rejected" ); } public void ProcessTransaction( ) { Console.Out.WriteLine( "The transaction was rejected" ); } public void PrintReceipt( ) { Console.Out.WriteLine("** Rejected **"); 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; } }