Quota: recalculate quota

This commit is contained in:
Nikolay Rechkin 2022-08-31 17:42:00 +03:00
parent 54ff8de78b
commit 3ba02c3e2a
3 changed files with 28 additions and 21 deletions

View File

@ -62,6 +62,7 @@ public class SettingsController : BaseSettingsController
private readonly Constants _constants;
private readonly DnsSettings _dnsSettings;
private readonly AdditionalWhiteLabelSettingsHelper _additionalWhiteLabelSettingsHelper;
private readonly QuotaSyncJob _quotaSyncJob;
public SettingsController(
ILoggerProvider option,
@ -98,7 +99,8 @@ public class SettingsController : BaseSettingsController
Constants constants,
IHttpContextAccessor httpContextAccessor,
DnsSettings dnsSettings,
AdditionalWhiteLabelSettingsHelper additionalWhiteLabelSettingsHelper
AdditionalWhiteLabelSettingsHelper additionalWhiteLabelSettingsHelper,
QuotaSyncJob quotaSyncJob
) : base(apiContext, memoryCache, webItemManager, httpContextAccessor)
{
_log = option.CreateLogger("ASC.Api");
@ -132,6 +134,7 @@ public class SettingsController : BaseSettingsController
_constants = constants;
_dnsSettings = dnsSettings;
_additionalWhiteLabelSettingsHelper = additionalWhiteLabelSettingsHelper;
_quotaSyncJob = quotaSyncJob;
}
[HttpGet("")]
@ -326,23 +329,25 @@ public class SettingsController : BaseSettingsController
return _dnsSettings.SaveDnsSettings(model.DnsName, model.Enable);
}
//[HttpGet("recalculatequota")]
//public void RecalculateQuota()
//{
// SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings);
// var operations = quotaTasks.GetTasks()
// .Where(t => t.GetProperty<int>(QuotaSync.IdKey) == Tenant.Id);
// if (operations.Any(o => o.Status <= DistributedTaskStatus.Running))
// {
// throw new InvalidOperationException(Resource.LdapSettingsTooManyOperations);
// }
// var op = new QuotaSync(Tenant.Id, ServiceProvider);
// quotaTasks.QueueTask(op.RunJob, op.GetDistributedTask());
//}
[HttpGet("recalculatequota")]
public void RecalculateQuota()
{
_permissionContext.DemandPermissions(SecutiryConstants.EditPortalSettings);
_quotaSyncJob.RunJob(_tenantManager.GetCurrentTenant().Id);
// SecurityContext.DemandPermissions(Tenant, SecutiryConstants.EditPortalSettings);
// var operations = quotaTasks.GetTasks()
// .Where(t => t.GetProperty<int>(QuotaSync.IdKey) == Tenant.Id);
// if (operations.Any(o => o.Status <= DistributedTaskStatus.Running))
// {
// throw new InvalidOperationException(Resource.LdapSettingsTooManyOperations);
// }
// var op = new QuotaSync(Tenant.Id, ServiceProvider);
// quotaTasks.QueueTask(op.RunJob, op.GetDistributedTask());
}
//[HttpGet("checkrecalculatequota")]
//public bool CheckRecalculateQuota()

View File

@ -116,10 +116,11 @@ global using ASC.Web.Core.WebZones;
global using ASC.Web.Core.WhiteLabel;
global using ASC.Web.Files.Services.DocumentService;
global using ASC.Web.Studio.Core;
global using ASC.Web.Studio.Core.Notify;
global using ASC.Web.Studio.Core.Notify;
global using ASC.Web.Studio.Core.Quota;
global using ASC.Web.Studio.Core.SMS;
global using ASC.Web.Studio.Core.Statistic;
global using ASC.Web.Studio.Core.TFA;
global using ASC.Web.Studio.Core.TFA;
global using ASC.Web.Studio.UserControls.CustomNavigation;
global using ASC.Web.Studio.UserControls.FirstTime;
global using ASC.Web.Studio.UserControls.Management;

View File

@ -54,7 +54,8 @@ public class QuotaSync
}
}
class QuotaSyncJob
[Scope]
public class QuotaSyncJob
{
private readonly TenantManager _tenantManager;
private readonly StorageFactoryConfig _storageFactoryConfig;