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;
        }
        public VatNumberValidator(IVatDataProvider vatDataProvider, IResourceProvider resourceProvider, PublicBillingApiProxy billingApi)
            : base(billingApi)
        {
            if (vatDataProvider == null)
            {
                throw new ArgumentNullException("vatDataProvider");
            }

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

            this.vatDataProvider  = vatDataProvider;
            this.resourceProvider = resourceProvider;
        }
        public VatNumberValidator(IVatDataProvider vatDataProvider, IResourceProvider resourceProvider, PublicBillingApiProxy billingApi)
            : base(billingApi)
        {
            if (vatDataProvider == null)
            {
                throw new ArgumentNullException("vatDataProvider");
            }

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

            this.vatDataProvider = vatDataProvider;
            this.resourceProvider = resourceProvider;
        }