public List <Cassette> RemoveCassettes() { var tmp = _moneyCassettes; _moneyCassettes = null; //Statistics.RemoveCassettes(); AtmEvent.OnRemoveCassettesEvent(); return(tmp); }
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); }
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); }