using System; namespace DesignPatterns.State { public class CardSwipedState : IState { public CardSwipedState( IPosTerminal terminal ) { _terminal = terminal; } public void SwipeCard( string cardNumber ) { Console.Out.WriteLine( "You already swiped a card" ); } public void EnterAmount( double amount ) { _terminal.Transaction.Amount = amount; _terminal.CurrentState = new AmountEnteredState( _terminal ); } public void EnterPin( string pin ) { Console.Out.WriteLine( "You haven't swiped a card yet!" ); } public void ProcessTransaction( ) { Console.Out.WriteLine( "You haven't swiped a card yet!" ); } public void PrintReceipt( ) { Console.Out.WriteLine( "You haven't swiped a card yet!" ); } private IPosTerminal _terminal; } }