public CheckoutTill(PricingRules rules, IReceiptPrinter receiptPrinter)
 {
     _rules = rules;
     _specialRuleEngine = new SpecialRuleEngine(_rules);
     _receiptItems = new ReceiptItems();
     _receiptPrinter = receiptPrinter;
 }
        public void GivenTheFollowingPricingRules(Table table)
        {
            var pricingRules = new PricingRules();
            var rules = table.CreateDynamicSet().ToList();
            foreach (dynamic rule in rules)
            {
                int totalQualify;

                if (rule.TotalQualify is Int32)
                {
                    totalQualify = rule.TotalQualify;
                }
                else
                {
                    totalQualify = 0;
                }

                pricingRules.AddRule((string)rule.Sku, (Decimal)rule.Price, (string)rule.Rule, totalQualify);
            }
            _checkoutTill = new CheckoutTill(pricingRules, this);
        }
 public SpecialRuleEngine(PricingRules rules)
 {
     _rules = rules;
 }