/// <summary>
        /// The get customer item cache.
        /// </summary>
        /// <param name="instruction">
        /// The instruction.
        /// </param>
        /// <returns>
        /// The <see cref="CustomerItemCacheBase"/>.
        /// </returns>
        /// <exception cref="NullReferenceException">
        /// Throws a null reference if the customer is not found
        /// </exception>
        private CustomerItemCacheBase GetCustomerItemCache(ItemCacheInstructionBase instruction)
        {
            var customer = GetCustomer(instruction);

            if (customer == null)
            {
                var notFound = new NullReferenceException("Customer was not found");
                MultiLogHelper.Error<BackOfficeCheckoutApiController>("Could not add item to customer ItemCache", notFound);
                return null;
            }

            return instruction.ItemCacheType == ItemCacheType.Wishlist
                       ? (CustomerItemCacheBase)customer.WishList()
                       : (CustomerItemCacheBase)customer.Basket();
        }
 /// <summary>
 /// Gets the customer.
 /// </summary>
 /// <param name="instruction">
 /// The instruction.
 /// </param>
 /// <returns>
 /// The <see cref="ICustomer"/>.
 /// </returns>
 private ICustomer GetCustomer(ItemCacheInstructionBase instruction)
 {
     return _customerService.GetByKey(instruction.CustomerKey);
 }