public void apply(BasketVoucher voucher)
        {
            if (voucher.can_be_applied_to(this))
            {
                this._basket_voucher = voucher;

                DomainEvents.raise(new BasketPriceChanged(this._id, amount_to_pay()));
            }
        }
        public void remove_offer_voucher()
        {
            this._basket_voucher = null;

            DomainEvents.raise(new BasketPriceChanged(this._id, amount_to_pay()));
        }