public IEnumerable <Money> Eject(CashDeal inCash, ChangePool inReservedMoney) { try { if (inCash.UsedAmount == 0) { return(inCash.RecevedMoney.ToList()); } var result = new List <KeyValuePair <Money, int> >(); this.EjectCore( inCash.ChangedAount, inReservedMoney.Items.OrderByDescending(pair => pair.Key.Value()), (m, totalCount, useCount) => { result.Add( new KeyValuePair <Money, int>(m, (int)useCount) ); } ); return(result.SelectMany(r => Enumerable.Repeat(r.Key, r.Value))); } finally { inCash.RecevedMoney.Clear(); } }
public IEnumerable<Money> Eject(CashDeal inCash, ChangePool inReservedMoney) { try { if (inCash.UsedAmount == 0) { return inCash.RecevedMoney.ToList(); } var result = new List<KeyValuePair<Money, int>>(); this.EjectCore( inCash.ChangedAount, inReservedMoney.Items.OrderByDescending(pair => pair.Key.Value()), (m, totalCount, useCount) => { result.Add( new KeyValuePair<Money, int>(m, (int)useCount) ); } ); return result.SelectMany(r => Enumerable.Repeat(r.Key, r.Value)); } finally { inCash.RecevedMoney.Clear(); } }
public PurchaseContext(ChangePool inChanges, ItemRackPosition inItems) { mDealAmount = new CashDeal(); mChanges = inChanges; mItems = inItems; mCoinMeckRole = new CoinMeckRole(); mItemRole = new ItemRackRole(); }
public PurchaseContext(ChangePool inChanges, ItemRackPosition inItems) { mDealAmount = new CashDeal(); mChanges = inChanges; mItems = inItems; mCoinMeckRole = new CoinMeckRole(); mItemRole = new ItemRackRole(); }
public bool UpdateItemSelectionState(ItemRack inRack, CashDeal inCredits, ChangePool inPool) { var oldState = inRack.State; if (oldState == ItemRackState.Soldout) return false; if (inRack.Item.Price <= (inCredits.RecevedMoney.TotalAmount() - inCredits.UsedAmount)) { inRack.State = ItemRackState.CanPurchase; } return oldState != inRack.State; }
public bool UpdateItemSelectionState(ItemRack inRack, CashDeal inCredits, ChangePool inPool) { var oldState = inRack.State; if (oldState == ItemRackState.Soldout) { return(false); } if (inRack.Item.Price <= (inCredits.RecevedMoney.TotalAmount() - inCredits.UsedAmount)) { inRack.State = ItemRackState.CanPurchase; } return(oldState != inRack.State); }