Beispiel #1
0
        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;
            }
            }
        }
Beispiel #2
0
        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);
                }
            }
        }
Beispiel #3
0
 private void DisplayMoney(Money money)
 {
     listBoxMoney.Items.Clear();
     listBoxMoney.Items.AddRange(MoneyConverter.ConvertToListBox(money));
 }