/// <summary>
        /// Create new instance with reseller identifiers
        /// </summary>
        public ResellerDataProvider(IResellerIdentifierProvider resellerIdentifierProvider, PublicBillingApiProxy billingApi)
            : base(billingApi)
        {
            if (resellerIdentifierProvider == null)
            {
                throw new ArgumentNullException("resellerIdentifierProvider");
            }

            this.resellerIdentifierProvider = resellerIdentifierProvider;
        }
        /// <summary>
        /// Create new instance with reseller identifiers
        /// </summary>
        public ResellerDataProvider(IResellerIdentifierProvider resellerIdentifierProvider, PublicBillingApiProxy billingApi)
            : base(billingApi)
        {
            if (resellerIdentifierProvider == null)
            {
                throw new ArgumentNullException("resellerIdentifierProvider");
            }

            this.resellerIdentifierProvider = resellerIdentifierProvider;
        }
        /// <summary>
        /// Create new instance that wraps base provider
        /// </summary>
        public CachedResellerDataProvider(IResellerDataProvider resellerDataProvider, IResellerIdentifierProvider resellerIdentifierProvider)
        {
            if (resellerDataProvider == null)
            {
                throw new ArgumentException("resellerDataProvider");
            }

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

            this.backingProvider            = resellerDataProvider;
            this.resellerIdentifierProvider = resellerIdentifierProvider;
        }
        /// <summary>
        /// Create new instance that wraps base provider
        /// </summary>
        public CachedResellerDataProvider(IResellerDataProvider resellerDataProvider, IResellerIdentifierProvider resellerIdentifierProvider)
        {
            if (resellerDataProvider == null)
            {
                throw new ArgumentException("resellerDataProvider");
            }

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

            this.backingProvider = resellerDataProvider;
            this.resellerIdentifierProvider = resellerIdentifierProvider;
        }