public CurrencyParser(CurrencyProvider currencyProvider)
        {
            if (currencyProvider == null)
            {
                throw new ArgumentNullException("currencyProvider");
            }

            this.currencyProvider = currencyProvider;
        }
        public CachingCurrencyProvider(CurrencyProvider innerProvider, TimeSpan cacheTimeout)
        {
            if (innerProvider == null)
            {
                throw new ArgumentNullException("innerProvider");
            }

            this.innerProvider = innerProvider;
            this.cacheTimeout = cacheTimeout;
            this.cache = new Dictionary<string, CachingCurrency>();
        }
        public HomeController(ProductRepository repository, CurrencyProvider currencyProvider)
        {
            if (repository == null)
            {
                throw new ArgumentNullException("repository");
            }
            if (currencyProvider == null)
            {
                throw new ArgumentNullException("currencyProvider");
            }

            this.repository = repository;
            this.currencyProvider = currencyProvider;
        }
        public BasketControllerAdapter(IBasketService basketService, CurrencyProvider currencyProvider)
        {
            if (basketService == null)
            {
                throw new ArgumentNullException("basketService");
            }
            if (currencyProvider == null)
            {
                throw new ArgumentNullException("currencyProvider");
            }

            this.basketService = basketService;
            this.currencyProvider = currencyProvider;
        }