private void buttonEnter_Click(object sender, EventArgs e) { var readLine = textBoxInputSum.Text; decimal requestedSum; if (!decimal.TryParse(readLine, out requestedSum) || requestedSum <= decimal.Zero) { MessageBox.Show(_languagePack.WrongInput); } var money = _atm.WithdrawMoney(requestedSum); switch (_atm.CurrentState) { case AtmState.Ok: { DisplayMoney(_atm.AllMoney); new IssuedMoneyForm(MoneyConverter.ConvertToDictionary(money)).ShowDialog(); break; } default: { MessageBox.Show(_statesDictionary[_atm.CurrentState]); break; } } }
private static void Main() { XmlConfigurator.Configure(); Log.Debug("start"); ILanguage languagePack = new LanguagePack("en-US"); //ILanguage languagePack = new LanguagePack("ru-RU"); Dictionary <AtmState, string> statesDictionary = new Dictionary <AtmState, string>() { { AtmState.Ok, languagePack.Ok }, { AtmState.NotEnoughMoney, languagePack.NotEnoughMoney }, { AtmState.ImpossibleToCollectMoney, languagePack.ImpossibleToCollectMoney }, { AtmState.TooManyBanknotes, languagePack.TooManyBanknotes } }; _atm = CashMachine.Deserialize(ConfigurationManager.AppSettings["SerializationFile"]) ?? new CashMachine(); CommandPerformer commandPerformer = new CommandPerformer(ref _atm, ref languagePack); commandPerformer.TryPerform("help"); while (true) { Console.WriteLine("\n" + _atm.TotalMoney); var readLine = Console.ReadLine(); decimal requestedSum; if (decimal.TryParse(readLine, out requestedSum) && requestedSum > decimal.Zero) { var money = _atm.WithdrawMoney(requestedSum); switch (_atm.CurrentState) { case AtmState.Ok: { Console.WriteLine(MoneyConverter.ConvertToString(money)); break; } default: Console.WriteLine(statesDictionary[_atm.CurrentState]); break; } continue; } bool isCommand = readLine != null && commandPerformer.TryPerform(readLine.Trim().ToLower()); if (!isCommand) { Console.WriteLine(languagePack.WrongInput); } } }
private void DisplayMoney(Money money) { listBoxMoney.Items.Clear(); listBoxMoney.Items.AddRange(MoneyConverter.ConvertToListBox(money)); }