public void LoadConfiguration(string configurationFilePath = null)
        {
            if (string.IsNullOrEmpty(configurationFilePath))
            {
                configurationFilePath = AgentBrokerConfiguration.DefaultConfigurationFilePath;
            }

            this.ConfigurationFilePath = configurationFilePath;
            var config = AgentBrokerConfiguration.Load(configurationFilePath);

            LoadConfiguration(config);
        }
        private static void InitializeLogging(AgentBrokerConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }

            ConfigurationItemFactory.Default.LayoutRenderers.RegisterDefinition(MultiagentLayoutRenderer.Name, typeof(MultiagentLayoutRenderer));

            if (!string.IsNullOrEmpty(configuration.LogConfigurationFilePath))
            {
                var logConfig = new XmlLoggingConfiguration(configuration.LogConfigurationFilePath);
                LogManager.Configuration = logConfig;
            }

            BrokerLogDataSource.EnsureInitialize();
        }
        public void LoadConfiguration(AgentBrokerConfiguration configuration)
        {
            if (configuration == null)
            {
                throw new ArgumentNullException("configuration");
            }
            if (this.State != ServiceState.Stopped)
            {
                throw new InvalidOperationException("The service must be stopped before configuration can be loaded.");
            }

            configuration.Validate();

            this.Configuration            = configuration;
            this.LogConfigurationFilePath = configuration.LogConfigurationFilePath;

            InitializeLogging(configuration);
        }