using System; namespace DesignPatterns.State { public class IdleState : IState { public IdleState( IPosTerminal terminal ) { _terminal = terminal; Console.Out.WriteLine( "Mo's POS TERMINAL" ); Console.Out.WriteLine( "Please swipe a card:" ); } public void SwipeCard( string cardNumber ) { _terminal.Transaction = new PosTransaction( ); _terminal.Transaction.Date = DateTime.Now; _terminal.Transaction.CardNumber = cardNumber; _terminal.CurrentState = new CardSwipedState( _terminal ); } public void EnterAmount( double amount ) { Console.Out.WriteLine( "Please swipe a card first." ); } public void EnterPin( string pin ) { Console.Out.WriteLine( "Please swipe a card first." ); } public void ProcessTransaction( ) { Console.Out.WriteLine( "Please swipe a card first." ); } public void PrintReceipt( ) { Console.Out.WriteLine( "Please swipe a card first." ); } private IPosTerminal _terminal; } }