mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Merge branch 'dev' of https://github.com/OrchardCMS/Orchard into dev
This commit is contained in:
@@ -30,6 +30,8 @@ namespace Orchard.MultiTenancy.Commands {
|
||||
public string Modules { get; set; }
|
||||
[OrchardSwitch]
|
||||
public bool DropDatabaseTables { get; set; }
|
||||
[OrchardSwitch]
|
||||
public bool Force { get; set; }
|
||||
|
||||
[CommandHelp("tenant list\r\n\t" + "Display current tenants of the site.")]
|
||||
[CommandName("tenant list")]
|
||||
@@ -178,9 +180,9 @@ namespace Orchard.MultiTenancy.Commands {
|
||||
_tenantService.UpdateTenant(tenant);
|
||||
}
|
||||
|
||||
[CommandHelp("tenant reset <tenantName> /DropDatabaseTables:<true|false>\r\n\t" + "Reset the tenant <tenantName> to its uninitialized, optionally dropping its tables from the database.")]
|
||||
[CommandHelp("tenant reset <tenantName> /DropDatabaseTables:true|false /Force:true|false\r\n\t" + "Reset the tenant <tenantName> to its uninitialized, optionally dropping its tables from the database.")]
|
||||
[CommandName("tenant reset")]
|
||||
[OrchardSwitches("DropDatabaseTables")]
|
||||
[OrchardSwitches("DropDatabaseTables,Force")]
|
||||
public void Reset(string tenantName) {
|
||||
Context.Output.WriteLine(T("Resetting tenant '{0}'...", tenantName));
|
||||
|
||||
@@ -190,7 +192,7 @@ namespace Orchard.MultiTenancy.Commands {
|
||||
return;
|
||||
}
|
||||
|
||||
_tenantService.ResetTenant(tenant, DropDatabaseTables);
|
||||
_tenantService.ResetTenant(tenant, DropDatabaseTables, Force);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -247,7 +247,7 @@ namespace Orchard.MultiTenancy.Controllers {
|
||||
}
|
||||
|
||||
try {
|
||||
_tenantService.ResetTenant(tenant, viewModel.DropDatabaseTables);
|
||||
_tenantService.ResetTenant(tenant, viewModel.DropDatabaseTables, force: false);
|
||||
return RedirectToAction("Index");
|
||||
}
|
||||
catch (Exception ex) {
|
||||
|
||||
@@ -26,7 +26,8 @@ namespace Orchard.MultiTenancy.Services {
|
||||
/// </summary>
|
||||
/// <param name="settings">A ShellSettings object to identify the tenant to reset.</param>
|
||||
/// <param name="dropDatabaseTables">A boolean indicated whether tenant database tables should be dropped also.</param>
|
||||
void ResetTenant(ShellSettings settings, bool dropDatabaseTables);
|
||||
/// <param name="force">A boolean indicating whether reset should be performed even if the tenant state is <c>TenantState.Running</c>.</param>
|
||||
void ResetTenant(ShellSettings settings, bool dropDatabaseTables, bool force);
|
||||
|
||||
/// <summary>
|
||||
/// Returns a list of all known database tables in a tenant.
|
||||
|
||||
@@ -43,9 +43,13 @@ namespace Orchard.MultiTenancy.Services {
|
||||
_shellSettingsManager.SaveSettings(settings);
|
||||
}
|
||||
|
||||
public void ResetTenant(ShellSettings settings, bool dropDatabaseTables) {
|
||||
if (settings.State != TenantState.Disabled)
|
||||
throw new InvalidOperationException(String.Format("Tenant state is '{0}'; must be '{1}' to perform reset action.", settings.State, TenantState.Disabled));
|
||||
public void ResetTenant(ShellSettings settings, bool dropDatabaseTables, bool force) {
|
||||
if (settings.State == TenantState.Uninitialized)
|
||||
return;
|
||||
if (settings.State == TenantState.Invalid)
|
||||
throw new InvalidOperationException(String.Format("Tenant reset action cannot be performed when tenant state is '{0}'.", settings.State));
|
||||
if (!force && settings.State != TenantState.Disabled)
|
||||
throw new InvalidOperationException(String.Format("Tenant state is '{0}'; must be '{1}' to perform reset action. The 'force' option can be used to override this.", settings.State, TenantState.Disabled));
|
||||
|
||||
ExecuteOnTenantScope(settings, environment => {
|
||||
ExecuteResetEventHandlers(environment);
|
||||
|
||||
Reference in New Issue
Block a user