public OrderPriceCalculationFacade(IVatRateProvider vatRateProvider, IVatNumberValidator vatNumberValidator, IDateTimeProvider dateTimeProvider, OrderDiscountFacade orderDiscountFacade)
 {
     this.vatRateProvider = vatRateProvider;
     this.vatNumberValidator = vatNumberValidator;
     this.dateTimeProvider = dateTimeProvider;
     this.orderDiscountFacade = orderDiscountFacade;
 }
        public SpanishVatNumberValidatorMust()
        {
            var validator = new SpanishVatNumberValidator();

            _validator        = validator;
            _generalValidator = validator;
        }
        public VatValidationHandler(IVatNumberValidator vatNumberValidator)
        {
            if (vatNumberValidator == null)
            {
                throw new ArgumentNullException("vatNumberValidator");
            }

            this.vatNumberValidator = vatNumberValidator;
        }
        public VatValidationHandler(IVatNumberValidator vatNumberValidator)
        {
            if (vatNumberValidator == null)
            {
                throw new ArgumentNullException("vatNumberValidator");
            }

            this.vatNumberValidator = vatNumberValidator;
        }
        /// <summary>
        /// Construct a new instance of CartPricingProvider
        /// </summary>
        public CartPricingProvider(
            IResellerProvider resellerProvider,
            ICurrencyPreferenceProvider currencyPreferenceProvider,
            ICountryProvider countryProvider,
            IContactDataProvider contactDataProvider,
            RenewalPeriodProvider renewalPeriodProvider,
            IVatDisplayPreferenceProvider vatDisplayPreferenceProvider,
            PublicBillingApiProxy billingApi,
            IVatNumberValidator vatNumberValidator)
            : base(billingApi)
        {
            if (resellerProvider == null)
            {
                throw new ArgumentNullException("resellerProvider");
            }

            if (currencyPreferenceProvider == null)
            {
                throw new ArgumentNullException("currencyPreferenceProvider");
            }

            if (countryProvider == null)
            {
                throw new ArgumentNullException("countryProvider");
            }

            if (contactDataProvider == null)
            {
                throw new ArgumentNullException("contactDataProvider");
            }

            if (renewalPeriodProvider == null)
            {
                throw new ArgumentNullException("renewalPeriodProvider");
            }

            if (vatDisplayPreferenceProvider == null)
            {
                throw new ArgumentNullException("vatDisplayPreferenceProvider");
            }

            if (vatNumberValidator == null)
            {
                throw new ArgumentNullException("vatNumberValidator");
            }

            this.resellerProvider            = resellerProvider;
            this.currencyPreferenceProvider  = currencyPreferenceProvider;
            this.countryProvider             = countryProvider;
            this.contactDataProvider         = contactDataProvider;
            this.renewalPeriodProvider       = renewalPeriodProvider;
            this.pricesIncludeVat            = vatDisplayPreferenceProvider.ShowPricesIncludingVat();
            this.inclusiveTaxCalculationType = resellerProvider.GetReseller().InclusiveTaxCalculationType;
            this.vatNumberValidator          = vatNumberValidator;
        }
        public CachedVatNumberValidator(IVatNumberValidator vatNumberValidator, IVatDataProvider vatDataProvider)
        {
            if (vatNumberValidator == null)
            {
                throw new ArgumentNullException("vatNumberValidator");
            }

            if (vatDataProvider == null)
            {
                throw new ArgumentNullException("vatDataProvider");
            }

            this.vatNumberValidator = vatNumberValidator;
            this.vatDataProvider    = vatDataProvider;
        }
        public CachedVatNumberValidator(IVatNumberValidator vatNumberValidator, IVatDataProvider vatDataProvider)
        {
            if (vatNumberValidator == null)
            {
                throw new ArgumentNullException("vatNumberValidator");
            }

            if (vatDataProvider == null)
            {
                throw new ArgumentNullException("vatDataProvider");
            }

            this.vatNumberValidator = vatNumberValidator;
            this.vatDataProvider = vatDataProvider;
        }