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"); } }