|
using System;
using System.Collections.Generic;
using System.Text;
namespace StatePatternSampleApp.StatePattern
{
class NoCardState : ATMState
{
// This constructor will create new state taking values from old state
public NoCardState(ATMState state)
:this(state.DummyCashPresent, state.Atm)
{
}
// this constructor will be used by the other one
public NoCardState(int amountRemaining, ATM atmBeingUsed)
{
this.Atm = atmBeingUsed;
this.DummyCashPresent = amountRemaining;
}
public override string GetNextScreen()
{
Console.WriteLine("Please Enter your Pin");
string userInput = Console.ReadLine();
// lets check with the dummy pin
if (userInput.Trim() == "1234")
{
UpdateState();
return "Enter the Amount to Withdraw";
}
// Show only message and no change in state
return "Invalid PIN";
}
private void UpdateState()
{
Atm.currentState = new CardValidatedState(this);
}
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I Started my Programming career with C++. Later got a chance to develop Windows Form applications using C#. Currently using C#, ASP.NET & ASP.NET MVC to create Information Systems, e-commerce/e-governance Portals and Data driven websites.
My interests involves Programming, Website development and Learning/Teaching subjects related to Computer Science/Information Systems. IMO, C# is the best programming language and I love working with C# and other Microsoft Technologies.
- Microsoft Certified Technology Specialist (MCTS): Web Applications Development with Microsoft .NET Framework 4
- Microsoft Certified Technology Specialist (MCTS): Accessing Data with Microsoft .NET Framework 4
- Microsoft Certified Technology Specialist (MCTS): Windows Communication Foundation Development with Microsoft .NET Framework 4
If you like my articles, please visit my website for more: www.rahulrajatsingh.com[^]