Example #1
0
        public ItemRackState UpdateItemSelectionState(ItemRack inRack, CashDeal inCredits, CreditPool inChangesPool)
        {
            if (inRack.State == ItemRackState.RackNotExist) return inRack.State;
            if (inRack.Count == 0) return inRack.State = ItemRackState.Soldout;

            var amount = inCredits.ChangedAount;
            if (inRack.Item.Price > amount) {
                return inRack.State = ItemRackState.CanNotPurchase;
            }

            if (inChangesPool.TotalAmount() != amount-inRack.Item.Price) {
                return inRack.State = ItemRackState.MissingChange;
            }

            return inRack.State = ItemRackState.CanPurchase;
        }