// other methods and fields that deal with an Order
        public decimal CalculatePrice(Person customer,
			double taxAmount,
			IEnumerable<Item> items,
			IEnumerable<Discount> discounts,
			params decimal[] basePrices)
        {
            return new OrderCalculator(customer, taxAmount, items, discounts, basePrices)
                .Calculate();
        }
        public OrderCalculator(Person customer,
			double taxAmount,
			IEnumerable<Item> items,
			IEnumerable<Discount> discounts,
			params decimal[] basePrices)
        {
            Customer = customer;
            TaxAmount = taxAmount;
            Items = items;
            Discounts = discounts;
            BasePrices = basePrices;
        }