示例#1
0
        public List <Cassette> RemoveCassettes()
        {
            var tmp = _moneyCassettes;

            _moneyCassettes = null;
            //Statistics.RemoveCassettes();
            AtmEvent.OnRemoveCassettesEvent();
            return(tmp);
        }
示例#2
0
        public Money Withdraw(decimal requestedSum)
        {
            Log.Info("Request for withdrw " + requestedSum);
            AtmState result;
            List <MutablePair <decimal, int> > combination;
            var moneyForWithdraw = new Money();

            if (_moneyCassettes == null || _moneyCassettes.Count == 0)
            {
                return(moneyForWithdraw);
            }
            if (_banknoteSelector.TrySelect(ConvertCassettes(), requestedSum, out result, out combination))
            {
                UpdateCassettes(combination);
                moneyForWithdraw = (Money)PreparedMoney.Clone();
            }
            CurrentState = result;
            Log.Info(_logViewer.ToString(moneyForWithdraw, result));
            // Statistics.Update(requestedSum,moneyForWithdraw, CurrentState,new List<Cassette>(_moneyCassettes));
            AtmEvent.OnWithdrawMoneyEvent(requestedSum, CurrentState, moneyForWithdraw);
            return(moneyForWithdraw);
        }
示例#3
0
 public void InsertCassettes(List <Cassette> cassetes)
 {
     Log.Debug(cassetes);
     _moneyCassettes = new List <Cassette>();
     try
     {
         if (cassetes == null)
         {
             throw new ArgumentNullException("cassetes");
         }
         foreach (var variable in cassetes)
         {
             _moneyCassettes.Add((Cassette)variable.Clone());
         }
         Log.Info("Cassettes has been inserted");
     }
     catch (ArgumentNullException ex)
     {
         Log.Error(ex);
         throw;
     }
     //Statistics = new Statistics(TotalSum, new List<Cassette>(_moneyCassettes));
     AtmEvent.OnInsertCassettesEvent(_moneyCassettes);
 }