/// <summary>
        /// Initializes a new instance of the <see cref="CollectorReceiptManager" /> class.
        /// </summary>
        /// <param name="receiptRepository">The receipt repository.</param>
        /// <param name="processRepository">The process repository.</param>
        /// <param name="settingsManager">The settings manager.</param>
        /// <param name="networkHelper">The network helper.</param>
        /// <param name="logger">The logger.</param>
        /// <exception cref="System.ArgumentNullException">settingsManager
        /// or
        /// receiptRepository
        /// or
        /// processRepository
        /// or
        /// networkHelper
        /// or
        /// logger</exception>
        public CollectorReceiptManager(
            Interfaces.ICollectorReceiptRepository receiptRepository,
            Interfaces.IProcessRepository processRepository,
            Interfaces.ISettingsManager settingsManager,
            Interfaces.INetworkHelper networkHelper,
            ILoggerService logger)
        {
            if (settingsManager == null)
            {
                throw new ArgumentNullException("settingsManager");
            }

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

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

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

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

            this.receiptRepository = receiptRepository;
            this.processRepository = processRepository;
            this.settingsManager   = settingsManager;
            this.settings          = this.settingsManager.LoadSettings();
            this.networkHelper     = networkHelper;
            this.logger            = logger;

            this.databaseConnectionString = "jdbc:h2:" + this.settings.CollectionneurDabasePath.Replace(".h2.db", string.Empty);
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SettingsManager"/> class.
        /// </summary>
        /// <param name="dataSettings">The data settings.</param>
        /// <param name="collectorReceiptRepository">The collector receipt repository.</param>
        /// <param name="logger">The logger.</param>
        /// <exception cref="System.ArgumentNullException">
        /// dataSettings
        /// or
        /// collectorReceiptRepository
        /// or
        /// logger
        /// </exception>
        public SettingsManager(
            Interfaces.IDataSettings dataSettings,
            Interfaces.ICollectorReceiptRepository collectorReceiptRepository,
            ILoggerService logger)
        {
            if (dataSettings == null)
            {
                throw new ArgumentNullException("dataSettings");
            }

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

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

            this.collectorReceiptRepository = collectorReceiptRepository;
            this.dataSettings = dataSettings;
            this.logger       = logger;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="SettingsManager"/> class.
        /// </summary>
        /// <param name="dataSettings">The data settings.</param>
        /// <param name="collectorReceiptRepository">The collector receipt repository.</param>
        /// <param name="logger">The logger.</param>
        /// <exception cref="System.ArgumentNullException">
        /// dataSettings
        /// or
        /// collectorReceiptRepository
        /// or
        /// logger
        /// </exception>
        public SettingsManager(
            Interfaces.IDataSettings dataSettings,
            Interfaces.ICollectorReceiptRepository collectorReceiptRepository,
            ILoggerService logger)
        {
            if (dataSettings == null)
            {
                throw new ArgumentNullException("dataSettings");
            }

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

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

            this.collectorReceiptRepository = collectorReceiptRepository;
            this.dataSettings = dataSettings;
            this.logger = logger;
        }
        /// <summary>
        /// Initializes a new instance of the <see cref="CollectorReceiptManager" /> class.
        /// </summary>
        /// <param name="receiptRepository">The receipt repository.</param>
        /// <param name="processRepository">The process repository.</param>
        /// <param name="settingsManager">The settings manager.</param>
        /// <param name="networkHelper">The network helper.</param>
        /// <param name="logger">The logger.</param>
        /// <exception cref="System.ArgumentNullException">settingsManager
        /// or
        /// receiptRepository
        /// or
        /// processRepository
        /// or
        /// networkHelper
        /// or
        /// logger</exception>
        public CollectorReceiptManager(
            Interfaces.ICollectorReceiptRepository receiptRepository, 
            Interfaces.IProcessRepository processRepository,
            Interfaces.ISettingsManager settingsManager,
            Interfaces.INetworkHelper networkHelper,
            ILoggerService logger)
        {
            if (settingsManager == null)
            {
                throw new ArgumentNullException("settingsManager");
            }

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

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

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

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

            this.receiptRepository = receiptRepository;
            this.processRepository = processRepository;
            this.settingsManager = settingsManager;
            this.settings = this.settingsManager.LoadSettings();
            this.networkHelper = networkHelper;
            this.logger = logger;

            this.databaseConnectionString = "jdbc:h2:" + this.settings.CollectionneurDabasePath.Replace(".h2.db", string.Empty);
        }