public static Task ProcessConfigurationHooks(PlatibusConfiguration configuration)
        {
            if (configuration == null)
            {
                Task.FromResult(0);
            }
            var configManager = new PlatibusConfigurationManager();

            return(configManager.FindAndProcessConfigurationHooks(configuration));
        }
        public static async Task <PlatibusConfiguration> LoadConfiguration(string sectionName             = null,
                                                                           bool processConfigurationHooks = true)
        {
            var configurationManager = new PlatibusConfigurationManager();
            var configuration        = new PlatibusConfiguration();
            await configurationManager.Initialize(configuration, sectionName);

            await configurationManager.FindAndProcessConfigurationHooks(configuration);

            if (processConfigurationHooks)
            {
                await configurationManager.FindAndProcessConfigurationHooks(configuration);
            }
            return(configuration);
        }