diff --git a/common/ASC.Data.Backup.Core/BackupAjaxHandler.cs b/common/ASC.Data.Backup.Core/BackupAjaxHandler.cs index 114634c793..c40c43d08d 100644 --- a/common/ASC.Data.Backup.Core/BackupAjaxHandler.cs +++ b/common/ASC.Data.Backup.Core/BackupAjaxHandler.cs @@ -388,7 +388,7 @@ public class BackupAjaxHandler public string GetTmpFilePath() { - var discStore = _storageFactory.GetStorage("", _tenantManager.GetCurrentTenant().Id.ToString(), BackupTempModule, null) as DiscDataStore; + var discStore = _storageFactory.GetStorage("", _tenantManager.GetCurrentTenant().Id, BackupTempModule, null) as DiscDataStore; var folder = discStore.GetPhysicalPath("", ""); if (!Directory.Exists(folder)) diff --git a/common/ASC.Data.Backup.Core/Core/FileBackupProvider.cs b/common/ASC.Data.Backup.Core/Core/FileBackupProvider.cs index 5ef6d1550d..8cc7bc6577 100644 --- a/common/ASC.Data.Backup.Core/Core/FileBackupProvider.cs +++ b/common/ASC.Data.Backup.Core/Core/FileBackupProvider.cs @@ -68,7 +68,7 @@ public class FileBackupProvider : IBackupProvider var backupPath = GetBackupPath(file); if (!backupKeys.Contains(backupPath)) { - var storage = _storageFactory.GetStorage(config, tenant.ToString(), file.Module); + var storage = _storageFactory.GetStorage(config, tenant, file.Module); var errors = 0; while (true) { @@ -111,7 +111,7 @@ public class FileBackupProvider : IBackupProvider { using (var entry = dataOperator.GetEntry(GetBackupPath(backupInfo))) { - var storage = _storageFactory.GetStorage(config, tenant.ToString(), backupInfo.Module, null); + var storage = _storageFactory.GetStorage(config, tenant, backupInfo.Module, null); try { storage.SaveAsync(backupInfo.Domain, backupInfo.Path, entry).Wait(); @@ -133,7 +133,7 @@ public class FileBackupProvider : IBackupProvider { if (_allowedModules.Contains(module)) { - var store = _storageFactory.GetStorage(config, tenant.ToString(), module); + var store = _storageFactory.GetStorage(config, tenant, module); var domainList = _storageFactoryConfig.GetDomainList(config, module); foreach (var domain in domainList) diff --git a/common/ASC.Data.Backup.Core/Storage/DataStoreBackupStorage.cs b/common/ASC.Data.Backup.Core/Storage/DataStoreBackupStorage.cs index 998bb43160..225ca35b91 100644 --- a/common/ASC.Data.Backup.Core/Storage/DataStoreBackupStorage.cs +++ b/common/ASC.Data.Backup.Core/Storage/DataStoreBackupStorage.cs @@ -81,6 +81,6 @@ public class DataStoreBackupStorage : IBackupStorage protected virtual IDataStore GetDataStore() { - return _storageFactory.GetStorage(_webConfigPath, _tenant.ToString(), "backup", null); + return _storageFactory.GetStorage(_webConfigPath, _tenant, "backup", null); } } diff --git a/common/ASC.Data.Backup.Core/Storage/DocumentsBackupStorage.cs b/common/ASC.Data.Backup.Core/Storage/DocumentsBackupStorage.cs index a2da60a264..64c8d8bda3 100644 --- a/common/ASC.Data.Backup.Core/Storage/DocumentsBackupStorage.cs +++ b/common/ASC.Data.Backup.Core/Storage/DocumentsBackupStorage.cs @@ -208,7 +208,7 @@ public class DocumentsBackupStorage : IBackupStorage { // hack: create storage using webConfigPath and put it into DataStoreCache // FileDao will use this storage and will not try to create the new one from service config - _storageFactory.GetStorage(_webConfigPath, _tenantId.ToString(), "files"); + _storageFactory.GetStorage(_webConfigPath, _tenantId, "files"); return _daoFactory.GetFileDao(); } } diff --git a/common/ASC.Data.Backup.Core/Tasks/BackupPortalTask.cs b/common/ASC.Data.Backup.Core/Tasks/BackupPortalTask.cs index 4b9f906372..b3c9f3e20b 100644 --- a/common/ASC.Data.Backup.Core/Tasks/BackupPortalTask.cs +++ b/common/ASC.Data.Backup.Core/Tasks/BackupPortalTask.cs @@ -574,7 +574,7 @@ public class BackupPortalTask : PortalTaskBase private async Task DoDumpFile(BackupFileInfo file, string dir) { - var storage = StorageFactory.GetStorage(ConfigPath, file.Tenant.ToString(), file.Module); + var storage = StorageFactory.GetStorage(ConfigPath, file.Tenant, file.Module); var filePath = CrossPlatform.PathCombine(dir, file.GetZipKey()); var dirName = Path.GetDirectoryName(filePath); @@ -708,7 +708,7 @@ public class BackupPortalTask : PortalTaskBase foreach (var file in group) { - var storage = StorageFactory.GetStorage(ConfigPath, TenantId.ToString(), group.Key); + var storage = StorageFactory.GetStorage(ConfigPath, TenantId, group.Key); var file1 = file; ActionInvoker.Try(state => { diff --git a/common/ASC.Data.Backup.Core/Tasks/DeletePortalTask.cs b/common/ASC.Data.Backup.Core/Tasks/DeletePortalTask.cs index 2499e7bc9d..6ead8fd57d 100644 --- a/common/ASC.Data.Backup.Core/Tasks/DeletePortalTask.cs +++ b/common/ASC.Data.Backup.Core/Tasks/DeletePortalTask.cs @@ -91,7 +91,7 @@ public class DeletePortalTask : PortalTaskBase var modulesProcessed = 0; foreach (var module in storageModules) { - var storage = StorageFactory.GetStorage(ConfigPath, TenantId.ToString(), module); + var storage = StorageFactory.GetStorage(ConfigPath, TenantId, module); var domains = StorageFactoryConfig.GetDomainList(ConfigPath, module); foreach (var domain in domains) { diff --git a/common/ASC.Data.Backup.Core/Tasks/PortalTaskBase.cs b/common/ASC.Data.Backup.Core/Tasks/PortalTaskBase.cs index bbf0da3132..0f532d6199 100644 --- a/common/ASC.Data.Backup.Core/Tasks/PortalTaskBase.cs +++ b/common/ASC.Data.Backup.Core/Tasks/PortalTaskBase.cs @@ -97,7 +97,7 @@ public abstract class PortalTaskBase var files = new List(); foreach (var module in StorageFactoryConfig.GetModuleList(ConfigPath).Where(IsStorageModuleAllowed)) { - var store = StorageFactory.GetStorage(ConfigPath, tenantId.ToString(), module); + var store = StorageFactory.GetStorage(ConfigPath, tenantId, module); var domains = StorageFactoryConfig.GetDomainList(ConfigPath, module).ToArray(); foreach (var domain in domains) diff --git a/common/ASC.Data.Backup.Core/Tasks/RestorePortalTask.cs b/common/ASC.Data.Backup.Core/Tasks/RestorePortalTask.cs index 6886ec59b8..68fc1f2e09 100644 --- a/common/ASC.Data.Backup.Core/Tasks/RestorePortalTask.cs +++ b/common/ASC.Data.Backup.Core/Tasks/RestorePortalTask.cs @@ -353,7 +353,7 @@ public class RestorePortalTask : PortalTaskBase { foreach (var file in group) { - var storage = StorageFactory.GetStorage(ConfigPath, Dump ? file.Tenant.ToString() : _columnMapper.GetTenantMapping().ToString(), group.Key); + var storage = StorageFactory.GetStorage(ConfigPath, Dump ? file.Tenant : _columnMapper.GetTenantMapping(), group.Key); var quotaController = storage.QuotaController; storage.SetQuotaController(null); @@ -407,7 +407,7 @@ public class RestorePortalTask : PortalTaskBase { foreach (var module in storageModules) { - var storage = StorageFactory.GetStorage(ConfigPath, tenant.Id.ToString(), module); + var storage = StorageFactory.GetStorage(ConfigPath, tenant.Id, module); var domains = StorageFactoryConfig.GetDomainList(ConfigPath, module).ToList(); domains.Add(string.Empty); //instead storage.DeleteFiles("\\", "*.*", true); diff --git a/common/ASC.Data.Backup.Core/Tasks/TransferPortalTask.cs b/common/ASC.Data.Backup.Core/Tasks/TransferPortalTask.cs index ad39388fba..27a953ae04 100644 --- a/common/ASC.Data.Backup.Core/Tasks/TransferPortalTask.cs +++ b/common/ASC.Data.Backup.Core/Tasks/TransferPortalTask.cs @@ -160,8 +160,8 @@ public class TransferPortalTask : PortalTaskBase var groupsProcessed = 0; foreach (var group in fileGroups) { - var baseStorage = StorageFactory.GetStorage(ConfigPath, TenantId.ToString(), group.Key); - var destStorage = StorageFactory.GetStorage(ToConfigPath, columnMapper.GetTenantMapping().ToString(), group.Key); + var baseStorage = StorageFactory.GetStorage(ConfigPath, TenantId, group.Key); + var destStorage = StorageFactory.GetStorage(ToConfigPath, columnMapper.GetTenantMapping(), group.Key); var utility = new CrossModuleTransferUtility(_logger, _tempStream, _tempPath, baseStorage, destStorage); foreach (var file in group) diff --git a/common/ASC.Data.Backup.Core/Utils/FCKEditorPathUtility.cs b/common/ASC.Data.Backup.Core/Utils/FCKEditorPathUtility.cs index 7fd9a5c3aa..64d8b9b18f 100644 --- a/common/ASC.Data.Backup.Core/Utils/FCKEditorPathUtility.cs +++ b/common/ASC.Data.Backup.Core/Utils/FCKEditorPathUtility.cs @@ -37,7 +37,7 @@ static class FCKEditorPathUtility return content; } - var tenantPath = "/" + TenantPath.CreatePath(tenant.ToString()) + "/"; + var tenantPath = "/" + TenantPath.CreatePath(tenant) + "/"; return _regex.Replace(content, (m) => m.Success ? m.Groups["start"] + tenantPath : string.Empty); } diff --git a/common/ASC.Data.Reassigns/RemoveProgressItem.cs b/common/ASC.Data.Reassigns/RemoveProgressItem.cs index 2a70d01f76..b3185b4ea8 100644 --- a/common/ASC.Data.Reassigns/RemoveProgressItem.cs +++ b/common/ASC.Data.Reassigns/RemoveProgressItem.cs @@ -207,7 +207,7 @@ public class RemoveProgressItem : DistributedTaskProgress var md5Hash = sBuilder.ToString(); - var storage = storageFactory.GetStorage(_tenantId.ToString(CultureInfo.InvariantCulture), "talk"); + var storage = storageFactory.GetStorage(_tenantId, "talk"); if (storage != null && storage.IsDirectoryAsync(md5Hash).Result) { diff --git a/common/ASC.Data.Storage/Configuration/StorageSettings.cs b/common/ASC.Data.Storage/Configuration/StorageSettings.cs index 3cf18979bb..7104af36ea 100644 --- a/common/ASC.Data.Storage/Configuration/StorageSettings.cs +++ b/common/ASC.Data.Storage/Configuration/StorageSettings.cs @@ -229,8 +229,7 @@ public class StorageSettingsHelper internal void ClearDataStoreCache() { - var tenantId = _tenantManager.GetCurrentTenant().Id.ToString(); - var path = TenantPath.CreatePath(tenantId); + var path = TenantPath.CreatePath(_tenantManager.GetCurrentTenant().Id); foreach (var module in _storageFactoryConfig.GetModuleList("", true)) { diff --git a/common/ASC.Data.Storage/Encryption/EncryptionOperation.cs b/common/ASC.Data.Storage/Encryption/EncryptionOperation.cs index 6bf8722505..547d31edd7 100644 --- a/common/ASC.Data.Storage/Encryption/EncryptionOperation.cs +++ b/common/ASC.Data.Storage/Encryption/EncryptionOperation.cs @@ -92,7 +92,7 @@ public class EncryptionOperation : DistributedTaskProgress foreach (var module in _modules) { - dictionary.Add(module, (DiscDataStore)storageFactory.GetStorage(ConfigPath, tenant.Id.ToString(), module)); + dictionary.Add(module, (DiscDataStore)storageFactory.GetStorage(ConfigPath, tenant.Id, module)); } Parallel.ForEach(dictionary, (elem) => @@ -256,7 +256,7 @@ public class EncryptionOperation : DistributedTaskProgress { foreach (var module in _modules) { - var store = (DiscDataStore)storageFactory.GetStorage(ConfigPath, tenant.Id.ToString(), module); + var store = (DiscDataStore)storageFactory.GetStorage(ConfigPath, tenant.Id, module); if (await store.IsFileAsync(string.Empty, ProgressFileName)) { diff --git a/common/ASC.Data.Storage/StorageFactory.cs b/common/ASC.Data.Storage/StorageFactory.cs index 1ce8880af9..0fd65db34e 100644 --- a/common/ASC.Data.Storage/StorageFactory.cs +++ b/common/ASC.Data.Storage/StorageFactory.cs @@ -138,12 +138,7 @@ public class StorageFactory private readonly StorageFactoryConfig _storageFactoryConfig; private readonly SettingsManager _settingsManager; private readonly StorageSettingsHelper _storageSettingsHelper; - private readonly TenantManager _tenantManager; - private readonly UserManager _userManager; - private readonly AuthContext _authContext; private readonly CoreBaseSettings _coreBaseSettings; - private readonly TenantQuotaFeatureChecker _maxFileSizeChecker; - private readonly TenantQuotaFeatureChecker _maxTotalSizeChecker; private readonly IServiceProvider _serviceProvider; public StorageFactory( @@ -151,51 +146,33 @@ public class StorageFactory StorageFactoryConfig storageFactoryConfig, SettingsManager settingsManager, StorageSettingsHelper storageSettingsHelper, - TenantManager tenantManager, - UserManager userManager, - AuthContext authContext, - CoreBaseSettings coreBaseSettings, - TenantQuotaFeatureChecker maxFileSizeChecker, - TenantQuotaFeatureChecker maxTotalSizeChecker) + CoreBaseSettings coreBaseSettings) { _serviceProvider = serviceProvider; _storageFactoryConfig = storageFactoryConfig; _settingsManager = settingsManager; _storageSettingsHelper = storageSettingsHelper; - _tenantManager = tenantManager; - _userManager = userManager; - _authContext = authContext; _coreBaseSettings = coreBaseSettings; - _maxFileSizeChecker = maxFileSizeChecker; - _maxTotalSizeChecker = maxTotalSizeChecker; } - public IDataStore GetStorage(string tenant, string module) + public IDataStore GetStorage(int? tenant, string module) { return GetStorage(string.Empty, tenant, module); } - public IDataStore GetStorage(string configpath, string tenant, string module) + public IDataStore GetStorage(string configpath, int? tenant, string module) { - int.TryParse(tenant, out var tenantId); + var tenantQuotaController = _serviceProvider.GetService(); + tenantQuotaController.Init(tenant.GetValueOrDefault()); - return GetStorage(configpath, tenant, module, new TenantQuotaController(tenantId, _tenantManager, _authContext, _maxFileSizeChecker, _maxTotalSizeChecker)); + return GetStorage(configpath, tenant, module, tenantQuotaController); } - public IDataStore GetStorage(string configpath, string tenant, string module, IQuotaController controller) + public IDataStore GetStorage(string configpath, int? tenant, string module, IQuotaController controller) { - var tenantId = -2; - if (string.IsNullOrEmpty(tenant)) - { - tenant = DefaultTenantName; - } - else - { - tenantId = Convert.ToInt32(tenant); - } + var tenantPath = tenant != null ? TenantPath.CreatePath(tenant.Value) : TenantPath.CreatePath(DefaultTenantName); - //Make tennant path - tenant = TenantPath.CreatePath(tenant); + tenant = tenant ?? -2; var section = _storageFactoryConfig.Section; if (section == null) @@ -203,20 +180,14 @@ public class StorageFactory throw new InvalidOperationException("config section not found"); } - var settings = _settingsManager.LoadForTenant(tenantId); + var settings = _settingsManager.LoadForTenant(tenant.Value); //TODO:GetStoreAndCache - return GetDataStore(tenant, module, _storageSettingsHelper.DataStoreConsumer(settings), controller); + return GetDataStore(tenantPath, module, _storageSettingsHelper.DataStoreConsumer(settings), controller); } - public IDataStore GetStorageFromConsumer(string configpath, string tenant, string module, DataStoreConsumer consumer) + public IDataStore GetStorageFromConsumer(string configpath, int? tenant, string module, DataStoreConsumer consumer) { - if (tenant == null) - { - tenant = DefaultTenantName; - } - - //Make tennant path - tenant = TenantPath.CreatePath(tenant); + var tenantPath = tenant != null ? TenantPath.CreatePath(tenant.Value) : TenantPath.CreatePath(DefaultTenantName); var section = _storageFactoryConfig.Section; if (section == null) @@ -224,12 +195,13 @@ public class StorageFactory throw new InvalidOperationException("config section not found"); } - int.TryParse(tenant, out var tenantId); + var tenantQuotaController = _serviceProvider.GetService(); + tenantQuotaController.Init(tenant.GetValueOrDefault()); - return GetDataStore(tenant, module, consumer, new TenantQuotaController(tenantId, _tenantManager, _authContext, _maxFileSizeChecker, _maxTotalSizeChecker)); + return GetDataStore(tenantPath, module, consumer, tenantQuotaController); } - private IDataStore GetDataStore(string tenant, string module, DataStoreConsumer consumer, IQuotaController controller) + private IDataStore GetDataStore(string tenantPath, string module, DataStoreConsumer consumer, IQuotaController controller) { var storage = _storageFactoryConfig.Section; var moduleElement = storage.GetModuleElement(module); @@ -257,7 +229,7 @@ public class StorageFactory return ((IDataStore)ActivatorUtilities.CreateInstance(_serviceProvider, instanceType)) - .Configure(tenant, handler, moduleElement, props) + .Configure(tenantPath, handler, moduleElement, props) .SetQuotaController(moduleElement.Count ? controller : null /*don't count quota if specified on module*/); } @@ -271,5 +243,6 @@ public static class StorageFactoryExtension services.TryAdd(); services.TryAdd(); services.TryAdd(); + services.TryAdd(); } } diff --git a/common/ASC.Data.Storage/StorageHandler.cs b/common/ASC.Data.Storage/StorageHandler.cs index 44ae45c49c..1f9a450c30 100644 --- a/common/ASC.Data.Storage/StorageHandler.cs +++ b/common/ASC.Data.Storage/StorageHandler.cs @@ -49,7 +49,7 @@ public class StorageHandler return Task.CompletedTask; } - var storage = storageFactory.GetStorage(tenantManager.GetCurrentTenant().Id.ToString(CultureInfo.InvariantCulture), _module); + var storage = storageFactory.GetStorage(tenantManager.GetCurrentTenant().Id, _module); var path = CrossPlatform.PathCombine(_path, GetRouteValue("pathInfo", context).Replace('/', Path.DirectorySeparatorChar)); var header = context.Request.Query[Constants.QueryHeader].FirstOrDefault() ?? ""; diff --git a/common/ASC.Data.Storage/StorageUploader.cs b/common/ASC.Data.Storage/StorageUploader.cs index d1d807043c..bd231c8b99 100644 --- a/common/ASC.Data.Storage/StorageUploader.cs +++ b/common/ASC.Data.Storage/StorageUploader.cs @@ -159,8 +159,8 @@ public class MigrateOperation : DistributedTaskProgress foreach (var module in _modules) { - var oldStore = storageFactory.GetStorage(_configPath, _tenantId.ToString(), module); - var store = storageFactory.GetStorageFromConsumer(_configPath, _tenantId.ToString(), module, storageSettingsHelper.DataStoreConsumer(_settings)); + var oldStore = storageFactory.GetStorage(_configPath, _tenantId, module); + var store = storageFactory.GetStorageFromConsumer(_configPath, _tenantId, module, storageSettingsHelper.DataStoreConsumer(_settings)); var domains = _storageFactoryConfig.GetDomainList(_configPath, module).ToList(); var crossModuleTransferUtility = new CrossModuleTransferUtility(options, _tempStream, tempPath, oldStore, store); diff --git a/common/ASC.Data.Storage/TenantPath.cs b/common/ASC.Data.Storage/TenantPath.cs index 06a20342f6..90acc93a5a 100644 --- a/common/ASC.Data.Storage/TenantPath.cs +++ b/common/ASC.Data.Storage/TenantPath.cs @@ -42,6 +42,13 @@ public static class TenantPath return tenant; } + public static string CreatePath(int tenant) + { + var culture = CultureInfo.InvariantCulture; + + return tenant == 0 ? tenant.ToString(culture) : tenant.ToString("00/00/00", culture); + } + public static bool TryGetTenant(string tenantPath, out int tenant) { tenantPath = tenantPath.Replace("/", ""); diff --git a/common/ASC.Data.Storage/TenantQuotaController.cs b/common/ASC.Data.Storage/TenantQuotaController.cs index 26ac178696..ac47292bbc 100644 --- a/common/ASC.Data.Storage/TenantQuotaController.cs +++ b/common/ASC.Data.Storage/TenantQuotaController.cs @@ -26,6 +26,7 @@ namespace ASC.Data.Storage; +[Transient] public class TenantQuotaController : IQuotaController { private long CurrentSize @@ -42,24 +43,28 @@ public class TenantQuotaController : IQuotaController set => _currentSize = value; } - private readonly int _tenant; + private int _tenant; private readonly TenantManager _tenantManager; private readonly AuthContext _authContext; private readonly TenantQuotaFeatureChecker _maxFileSizeChecker; private readonly TenantQuotaFeatureChecker _maxTotalSizeChecker; - private readonly Lazy _lazyCurrentSize; + private Lazy _lazyCurrentSize; private long _currentSize; - public TenantQuotaController(int tenant, TenantManager tenantManager, AuthContext authContext, TenantQuotaFeatureChecker maxFileSizeChecker, TenantQuotaFeatureChecker maxTotalSizeChecker) + public TenantQuotaController(TenantManager tenantManager, AuthContext authContext, TenantQuotaFeatureChecker maxFileSizeChecker, TenantQuotaFeatureChecker maxTotalSizeChecker) { - _tenant = tenant; _tenantManager = tenantManager; _maxFileSizeChecker = maxFileSizeChecker; _maxTotalSizeChecker = maxTotalSizeChecker; + _authContext = authContext; + } + + public void Init(int tenant) + { + _tenant = tenant; _lazyCurrentSize = new Lazy(() => _tenantManager.FindTenantQuotaRows(tenant) .Where(r => UsedInQuota(r.Tag)) .Sum(r => r.Counter)); - _authContext = authContext; } public void QuotaUsedAdd(string module, string domain, string dataTag, long size, bool quotaCheckFileSize = true) diff --git a/packages/client/src/pages/PortalSettings/categories/integration/index.js b/packages/client/src/pages/PortalSettings/categories/integration/index.js index e79a872357..2f8905a392 100644 --- a/packages/client/src/pages/PortalSettings/categories/integration/index.js +++ b/packages/client/src/pages/PortalSettings/categories/integration/index.js @@ -52,10 +52,11 @@ const IntegrationWrapper = (props) => { } const load = async () => { - await loadBaseInfo(); const path = location.pathname; const currentTab = data.findIndex((item) => path.includes(item.id)); if (currentTab !== -1) setCurrentTab(currentTab); + + await loadBaseInfo(); setIsLoading(true); }; diff --git a/products/ASC.CRM/Server/Classes/Global.cs b/products/ASC.CRM/Server/Classes/Global.cs index f756d8d875..ea0f8dc613 100644 --- a/products/ASC.CRM/Server/Classes/Global.cs +++ b/products/ASC.CRM/Server/Classes/Global.cs @@ -96,12 +96,12 @@ namespace ASC.Web.CRM.Classes public IDataStore GetStore() { - return _storageFactory.GetStorage(_tenantID.ToString(), "crm"); + return _storageFactory.GetStorage(_tenantID, "crm"); } public IDataStore GetStoreTemplate() { - return _storageFactory.GetStorage(String.Empty, "crm_template"); + return _storageFactory.GetStorage(null, "crm_template"); } public bool CanCreateProjects() diff --git a/products/ASC.Files/Core/Core/VirtualRooms/RoomLogoManager.cs b/products/ASC.Files/Core/Core/VirtualRooms/RoomLogoManager.cs index 57f4ac9c5e..b1d3a4aa9d 100644 --- a/products/ASC.Files/Core/Core/VirtualRooms/RoomLogoManager.cs +++ b/products/ASC.Files/Core/Core/VirtualRooms/RoomLogoManager.cs @@ -64,7 +64,7 @@ public class RoomLogoManager } public bool EnableAudit { get; set; } = true; - private IDataStore DataStore => _dataStore ??= _storageFactory.GetStorage(TenantId.ToString(), ModuleName); + private IDataStore DataStore => _dataStore ??= _storageFactory.GetStorage(TenantId, ModuleName); private int TenantId => _tenantManager.GetCurrentTenant().Id; private IDictionary Headers => _httpContextAccessor?.HttpContext?.Request?.Headers; diff --git a/products/ASC.Files/Core/Helpers/Global.cs b/products/ASC.Files/Core/Helpers/Global.cs index 4d5a528fc1..fc27258374 100644 --- a/products/ASC.Files/Core/Helpers/Global.cs +++ b/products/ASC.Files/Core/Helpers/Global.cs @@ -238,12 +238,12 @@ public class GlobalStore public IDataStore GetStore(bool currentTenant = true) { - return _storageFactory.GetStorage(currentTenant ? _tenantManager.GetCurrentTenant().Id.ToString() : string.Empty, FileConstant.StorageModule); + return _storageFactory.GetStorage(currentTenant ? _tenantManager.GetCurrentTenant().Id : null, FileConstant.StorageModule); } public IDataStore GetStoreTemplate() { - return _storageFactory.GetStorage(string.Empty, FileConstant.StorageTemplate); + return _storageFactory.GetStorage(null, FileConstant.StorageTemplate); } } diff --git a/web/ASC.Web.Core/LogoUploader.cs b/web/ASC.Web.Core/LogoUploader.cs index 294acb94f0..60867cf300 100644 --- a/web/ASC.Web.Core/LogoUploader.cs +++ b/web/ASC.Web.Core/LogoUploader.cs @@ -155,7 +155,7 @@ public class StorageHelper try { - var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(CultureInfo.InvariantCulture), StorageName); + var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, StorageName); var fileName = Path.GetFileName(logoPath); @@ -172,7 +172,7 @@ public class StorageHelper private string SaveLogo(string fileName, byte[] data) { - var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(CultureInfo.InvariantCulture), StorageName); + var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, StorageName); using var stream = new MemoryStream(data); stream.Seek(0, SeekOrigin.Begin); diff --git a/web/ASC.Web.Core/QuotaSync.cs b/web/ASC.Web.Core/QuotaSync.cs index ffbd45df2d..d10458f76f 100644 --- a/web/ASC.Web.Core/QuotaSync.cs +++ b/web/ASC.Web.Core/QuotaSync.cs @@ -125,7 +125,7 @@ public class QuotaSyncJob : DistributedTaskProgress foreach (var module in storageModules) { - var storage = _storageFactory.GetStorage(TenantId.ToString(), module); + var storage = _storageFactory.GetStorage(TenantId, module); storage.ResetQuotaAsync("").Wait(); var domains = _storageFactoryConfig.GetDomainList(string.Empty, module); diff --git a/web/ASC.Web.Core/Users/UserPhotoManager.cs b/web/ASC.Web.Core/Users/UserPhotoManager.cs index 4724a6b489..0ae270ebf4 100644 --- a/web/ASC.Web.Core/Users/UserPhotoManager.cs +++ b/web/ASC.Web.Core/Users/UserPhotoManager.cs @@ -130,7 +130,7 @@ public class UserPhotoManagerCache scope.ServiceProvider.GetRequiredService().SetCurrentTenant(data.TenantId); var storageFactory = scope.ServiceProvider.GetRequiredService(); - var storage = storageFactory.GetStorage(data.TenantId.ToString(), "userPhotos"); + var storage = storageFactory.GetStorage(data.TenantId, "userPhotos"); try { @@ -905,7 +905,7 @@ public class UserPhotoManager private IDataStore _dataStore; private IDataStore GetDataStore() { - return _dataStore ??= _storageFactory.GetStorage(Tenant.Id.ToString(), "userPhotos"); + return _dataStore ??= _storageFactory.GetStorage(Tenant.Id, "userPhotos"); } public static CacheSize ToCache(Size size) diff --git a/web/ASC.Web.Core/WhiteLabel/TenantInfoSettings.cs b/web/ASC.Web.Core/WhiteLabel/TenantInfoSettings.cs index cc7acf6854..9bf6c6bc7f 100644 --- a/web/ASC.Web.Core/WhiteLabel/TenantInfoSettings.cs +++ b/web/ASC.Web.Core/WhiteLabel/TenantInfoSettings.cs @@ -89,7 +89,7 @@ public class TenantInfoSettingsHelper { tenantInfoSettings.IsDefault = true; - var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(), "logo"); + var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, "logo"); try { store.DeleteFilesAsync("", "*", false).Wait(); @@ -104,7 +104,7 @@ public class TenantInfoSettingsHelper public void SetCompanyLogo(string companyLogoFileName, byte[] data, TenantInfoSettings tenantInfoSettings, TenantLogoManager tenantLogoManager) { - var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(), "logo"); + var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, "logo"); if (!tenantInfoSettings.IsDefault) { @@ -136,7 +136,7 @@ public class TenantInfoSettingsHelper return _webImageSupplier.GetAbsoluteWebPath("logo/dark_general.png"); } - var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(), "logo"); + var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, "logo"); return store.GetUriAsync(tenantInfoSettings.CompanyLogoFileName ?? "").Result.ToString(); } @@ -150,7 +150,7 @@ public class TenantInfoSettingsHelper return null; } - var storage = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(CultureInfo.InvariantCulture), "logo"); + var storage = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, "logo"); if (storage == null) { diff --git a/web/ASC.Web.Core/WhiteLabel/TenantWhiteLabelSettings.cs b/web/ASC.Web.Core/WhiteLabel/TenantWhiteLabelSettings.cs index 40e3ad7fa5..26f8f0cc57 100644 --- a/web/ASC.Web.Core/WhiteLabel/TenantWhiteLabelSettings.cs +++ b/web/ASC.Web.Core/WhiteLabel/TenantWhiteLabelSettings.cs @@ -302,7 +302,7 @@ public class TenantWhiteLabelSettingsHelper tenantWhiteLabelSettings.SetLogoText(null); - var store = storage ?? _storageFactory.GetStorage(tenantId.ToString(), ModuleName); + var store = storage ?? _storageFactory.GetStorage(tenantId, ModuleName); try { @@ -323,7 +323,7 @@ public class TenantWhiteLabelSettingsHelper try { tenantWhiteLabelSettings.SetIsDefault(type, true); - var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(), ModuleName); + var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, ModuleName); DeleteLogoFromStore(tenantWhiteLabelSettings, store, type); } catch (Exception e) @@ -339,7 +339,7 @@ public class TenantWhiteLabelSettingsHelper public void SetLogo(TenantWhiteLabelSettings tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum type, string logoFileExt, byte[] data, IDataStore storage = null) { - var store = storage ?? _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(), ModuleName); + var store = storage ?? _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, ModuleName); #region delete from storage if already exists @@ -447,7 +447,7 @@ public class TenantWhiteLabelSettingsHelper private string GetAbsoluteStorageLogoPath(TenantWhiteLabelSettings tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum type, bool general) { - var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(), ModuleName); + var store = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, ModuleName); var fileName = BuildLogoFileName(type, tenantWhiteLabelSettings.GetExt(type), general); if (store.IsFileAsync(fileName).Result) @@ -487,7 +487,7 @@ public class TenantWhiteLabelSettingsHelper return null; } - var partnerStorage = _storageFactory.GetStorage(string.Empty, "static_partnerdata"); + var partnerStorage = _storageFactory.GetStorage(null, "static_partnerdata"); if (partnerStorage == null) { @@ -518,7 +518,7 @@ public class TenantWhiteLabelSettingsHelper private Stream GetStorageLogoData(TenantWhiteLabelSettings tenantWhiteLabelSettings, WhiteLabelLogoTypeEnum type, bool general) { - var storage = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id.ToString(CultureInfo.InvariantCulture), ModuleName); + var storage = _storageFactory.GetStorage(_tenantManager.GetCurrentTenant().Id, ModuleName); if (storage == null) { @@ -539,7 +539,7 @@ public class TenantWhiteLabelSettingsHelper return null; } - var partnerStorage = _storageFactory.GetStorage(string.Empty, "static_partnerdata"); + var partnerStorage = _storageFactory.GetStorage(null, "static_partnerdata"); if (partnerStorage == null) {