/// <summary>This IBusinessLogicVisitor requires a reference to the ServiceInterface Visitor,
 /// instead of making it a public variable to all visitors, it is a required argument during construction</summary>
 /// <param name="serviceInterface">BusinessLogicServiceInterface</param>
 /// <param name="useConfigManagement">Depending if we're in </param>
 /// <param name="onLog">Argue a lambda which logs a debug message to your choosing</param>
 public BusinessLogicMultirateProcessor(BusinessLogicServiceInterface serviceInterface, bool useConfigManagement, LogMethod onLog = null)
     : base()
 {
     _serviceInterface = serviceInterface;
     _useConfigManagement = useConfigManagement;
     _onLog = onLog != null ? onLog : LogFallback;
 }
        public ConsumerWebBusinessLogic(QuoteHeader qHeader, IQuoteConfiguration config)
        {
            this.qHeader = qHeader;
            this.controlData = new List<ControlDataSource>();

            DataBinder = new BusinessLogicSessionDataBinder();
            DNQInterface = new BusinessLogicDNQInterface();
            ServiceInterface = new BusinessLogicServiceInterface();
            PurchaseProcessor = new BusinessLogicPurchaseProcessor();
            ABTestInterface = new BusinessLogicABTestInterface();
            ContactCustomerCareProcessor = new BusinessLogicCustCareProcessor();
            MultiRateProcessor = new BusinessLogicMultirateProcessor(ServiceInterface, false);
            PartnerConfiguration = config;

            this.Accept(DataBinder);
            this.Accept(DNQInterface);
            this.Accept(ServiceInterface);
            this.Accept(PurchaseProcessor);
            this.Accept(ABTestInterface);
            this.Accept(ContactCustomerCareProcessor);
            this.Accept(MultiRateProcessor);
        }