/// <summary>
        /// Initializes a new instance of the <see cref="DefaultVisitorOrderManager" /> class.
        /// </summary>
        /// <param name="innerRepository">The inner repository.</param>
        /// <param name="stateConfiguration">The state configuration.</param>
        /// <param name="calculationStrategy">The calculation strategy.</param>
        /// <param name="customerManager">The customer manager.</param>
        public DefaultVisitorOrderManager(Repository<Order> innerRepository, CoreOrderStateConfiguration stateConfiguration, IOrderCalculationStrategy calculationStrategy, ICustomerManager<CustomerInfo> customerManager)
        {
            Assert.ArgumentNotNull(innerRepository, "innerRepository");
              Assert.ArgumentNotNull(stateConfiguration, "stateConfiguration");
              Assert.ArgumentNotNull(calculationStrategy, "calculationStrategy");
              Assert.ArgumentNotNull(customerManager, "customerManager");

              this.innerRepository = innerRepository;
              this.stateConfiguration = stateConfiguration;
              this.calculationStrategy = calculationStrategy;
              this.customerManager = customerManager;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="DefaultOrderFactory"/> class.
        /// </summary>
        /// <param name="idGenerator">The id generator.</param>
        /// <param name="shopContext">The shop context.</param>
        /// <param name="stateConfiguration">The state configuration.</param>
        /// <param name="currencyProvider">The currency provider.</param>
        public DefaultOrderFactory([NotNull] OrderIDGenerator idGenerator, [NotNull] ShopContext shopContext, [NotNull] CoreOrderStateConfiguration stateConfiguration, [NotNull] IEntityProvider <Currency> currencyProvider)
        {
            Assert.ArgumentNotNull(idGenerator, "idGenerator");
            Assert.ArgumentNotNull(shopContext, "shopContext");
            Assert.ArgumentNotNull(stateConfiguration, "stateConfiguration");
            Assert.ArgumentNotNull(currencyProvider, "currencyProvider");

            this.idGenerator        = idGenerator;
            this.shopContext        = shopContext;
            this.stateConfiguration = stateConfiguration;
            this.currencyProvider   = currencyProvider;
        }
    /// <summary>
    /// Initializes a new instance of the <see cref="DefaultOrderFactory"/> class.
    /// </summary>
    /// <param name="idGenerator">The id generator.</param>
    /// <param name="shopContext">The shop context.</param>
    /// <param name="stateConfiguration">The state configuration.</param>
    /// <param name="currencyProvider">The currency provider.</param>
    public DefaultOrderFactory([NotNull] OrderIDGenerator idGenerator, [NotNull] ShopContext shopContext, [NotNull] CoreOrderStateConfiguration stateConfiguration, [NotNull] IEntityProvider<Currency> currencyProvider)
    {
      Assert.ArgumentNotNull(idGenerator, "idGenerator");
      Assert.ArgumentNotNull(shopContext, "shopContext");
      Assert.ArgumentNotNull(stateConfiguration, "stateConfiguration");
      Assert.ArgumentNotNull(currencyProvider, "currencyProvider");

      this.idGenerator = idGenerator;
      this.shopContext = shopContext;
      this.stateConfiguration = stateConfiguration;
      this.currencyProvider = currencyProvider;
    }
 /// <summary>
 /// Initializes a new instance of the <see cref="SampleOrderManager" /> class.
 /// </summary>
 /// <param name="orderStateConfiguration">The order state configuration.</param>
 /// <param name="repository">The repository.</param>
 public SampleOrderManager(CoreOrderStateConfiguration orderStateConfiguration, Repository<Order> repository)
 {
     // this.StateConfiguration = orderStateConfiguration;
       // this.Repository = repository;
 }