public HostConfiguration GetConfiguration()
        {
            lock (LockObj)
            {
                if (userConfig != null)
                {
                    return(userConfig);
                }

                var userConfigPath = appSetting.GetSetting("HostConfigurationProvider.UserConfigPath", DefaultUserConfigPath);
                var baseConfigPath = appSetting.GetSetting("HostConfigurationProvider.BaseConfigPath", DefaultBaseConfigPath);

                userConfig = jsonService.GetObjectFromPath <HostConfiguration>(userConfigPath);
                if (userConfig == null)
                {
                    log.Warn($"HostConfigurationProvider - wrong user configuration from: {userConfigPath}");
                    var baseConfig = jsonService.GetObjectFromPath <HostConfiguration>(baseConfigPath);
                    jsonService.SaveObjectToFile(baseConfig, userConfigPath);
                    userConfig = baseConfig;
                }

                if (userConfig != null)
                {
                    return(userConfig);
                }

                log.Fatal($"HostConfigurationProvider - wrong user (from: {userConfigPath}) and base configuration (from: {baseConfigPath})");
                throw new Exception("Wrong configuration");
            }
        }