AppConfigurationAccessor is now tenant aware

This commit is contained in:
Chris Payne
2015-08-14 11:34:28 +01:00
parent 64585223ee
commit 0213524317

View File

@@ -7,13 +7,20 @@ using System.Threading.Tasks;
namespace Orchard.Environment.Configuration { namespace Orchard.Environment.Configuration {
public class AppConfigurationAccessor : IAppConfigurationAccessor { public class AppConfigurationAccessor : IAppConfigurationAccessor {
private readonly ShellSettings _shellSettings;
public AppConfigurationAccessor(ShellSettings shellSettings) {
_shellSettings = shellSettings;
}
public string GetConfiguration(string name) { public string GetConfiguration(string name) {
var appSettingsValue = ConfigurationManager.AppSettings[name]; var tenantName = String.Format("{0}:{1}", _shellSettings.Name, name);
var appSettingsValue = ConfigurationManager.AppSettings[tenantName] ?? ConfigurationManager.AppSettings[name];
if (appSettingsValue != null) { if (appSettingsValue != null) {
return appSettingsValue; return appSettingsValue;
} }
var connectionStringSettings = ConfigurationManager.ConnectionStrings[name]; var connectionStringSettings = ConfigurationManager.ConnectionStrings[tenantName] ?? ConfigurationManager.ConnectionStrings[name];
if (connectionStringSettings != null) { if (connectionStringSettings != null) {
return connectionStringSettings.ConnectionString; return connectionStringSettings.ConnectionString;
} }