public void AddDatabaseConfiguration(string applicationName, string tenantName, DatabaseConfigurationInfo configurationInfo) { UseRepository( repository => { var updatedConfiguration = new List<DatabaseConfigurationInfo>(); var configuration = repository.GetTenantDatabaseConfiguration(applicationName, tenantName); if (configuration != null) { updatedConfiguration.AddRange(configuration); } updatedConfiguration.Add(configurationInfo); repository.UpdateTenantDatabaseConfiguration(applicationName, tenantName, updatedConfiguration.ToArray()); }); }
public ActionResult UpdateTenantDatabaseConfiguration(string applicationName, string name, DatabaseConfigurationInfo configurationInfo) { Requires.ArgumentNotNullOrEmptyString(applicationName, "applicationName"); Requires.ArgumentNotNullOrEmptyString(name, "name"); Requires.ArgumentNotNull(configurationInfo, "configurationInfo"); Requires.ArgumentNotNull(configurationInfo.Name, "configurationInfo.Name"); Requires.ArgumentNotNull(configurationInfo.ConnectionString, "configurationInfo.ConnectionString"); var client = new ApplicationManagerClient(); client.UpdateDatabaseConfiguration(applicationName, name, configurationInfo); return RedirectToAction("TenantDatabaseConfiguration", new { applicationName, name }); }
public void UpdateDatabaseConfiguration(string applicationName, string tenantName, DatabaseConfigurationInfo configurationInfo) { UseRepository( repository => { var configuration = repository.GetTenantDatabaseConfiguration(applicationName, tenantName); if (configuration != null) { var item = configuration.FirstOrDefault(i => i.Name == configurationInfo.Name); if (item == null) { throw new ArgumentException(string.Format("Configuration with name '{0}' could not be found for tenant {1}, application {2}.", configurationInfo.Name, tenantName, applicationName)); } item.ProviderName = configurationInfo.ProviderName; item.ConnectionString = configurationInfo.ConnectionString; repository.UpdateTenantDatabaseConfiguration(applicationName, tenantName, configuration); } }); }
public void UpdateTenantDatabaseConfiguration(string applicationName, string tenantName, DatabaseConfigurationInfo[] configuration) { UseDataContext(dataContext => { var dataTenant = dataContext.ApplicationTenants.FirstOrDefault( t => t.Application == applicationName && t.TenantName == tenantName); if (dataTenant == null) { throw new ArgumentException( string.Format("Tenant {0} from application {1} could not be found.", tenantName, applicationName)); } dataTenant.DatabaseConfiguration = DataHelper.MapToXml(configuration); dataContext.SubmitChanges(); }); }