DI: TenantManager

This commit is contained in:
pavelbannov 2019-09-20 15:47:00 +03:00
parent 7bb42748b7
commit 41b4a909cd
4 changed files with 17 additions and 21 deletions

View File

@ -78,31 +78,20 @@ namespace ASC.Core.Data
return SaveSettingsFor(settings, tenantId, Guid.Empty);
}
public bool SaveSettingsFor<T>(T settings, Guid userId) where T : class, ISettings
{
return SaveSettingsFor(settings, CoreContext.TenantManager.GetCurrentTenant().TenantId, userId);
}
public T LoadSettings<T>(int tenantId) where T : class, ISettings
{
return LoadSettingsFor<T>(tenantId, Guid.Empty);
}
public T LoadSettingsFor<T>(Guid userId) where T : class, ISettings
public void ClearCache<T>(int tenantId) where T : class, ISettings
{
return LoadSettingsFor<T>(CoreContext.TenantManager.GetCurrentTenant().TenantId, userId);
}
public void ClearCache<T>() where T : class, ISettings
{
var tenantId = CoreContext.TenantManager.GetCurrentTenant().TenantId;
var settings = LoadSettings<T>(tenantId);
var key = settings.ID.ToString() + tenantId + Guid.Empty;
notify.Publish(new SettingsCacheItem { Key = key }, CacheNotifyAction.Remove);
}
private bool SaveSettingsFor<T>(T settings, int tenantId, Guid userId) where T : ISettings
public bool SaveSettingsFor<T>(T settings, int tenantId, Guid userId) where T : ISettings
{
if (settings == null) throw new ArgumentNullException("settings");
try

View File

@ -99,7 +99,7 @@ namespace ASC.Core.Common.Settings
public bool SaveForUser(Guid userId)
{
return SettingsManager.SaveSettingsFor(this, userId);
return SettingsManager.SaveSettingsFor(this, TenantID, userId);
}
public bool SaveForDefaultTenant()
@ -114,7 +114,7 @@ namespace ASC.Core.Common.Settings
public void ClearCache()
{
SettingsManager.ClearCache<T>();
SettingsManager.ClearCache<T>(TenantID);
}
public abstract Guid ID { get; }

View File

@ -44,6 +44,15 @@ namespace ASC.Data.Storage.S3
private bool configErrors;
private bool configured;
public CoreSettings CoreSettings { get; }
public Configuration.Storage Storage { get; }
public S3UploadGuard(CoreSettings coreSettings, Configuration.Storage storage)
{
CoreSettings = coreSettings;
Storage = storage;
}
public void DeleteExpiredUploadsAsync(TimeSpan trustInterval)
{
var task = new Task(() =>
@ -118,8 +127,7 @@ namespace ASC.Data.Storage.S3
{
if (!configured)
{
var config = CommonServiceProvider.GetService<Configuration.Storage>();
var handler = config.GetHandler("s3");
var handler = Storage.GetHandler("s3");
if (handler != null)
{
var props = handler.GetProperties();
@ -128,7 +136,7 @@ namespace ASC.Data.Storage.S3
secretAccessKey = props["secretaccesskey"];
region = props["region"];
}
configErrors = string.IsNullOrEmpty(CoreContext.Configuration.BaseDomain) //localhost
configErrors = string.IsNullOrEmpty(CoreSettings.BaseDomain) //localhost
|| string.IsNullOrEmpty(accessKey)
|| string.IsNullOrEmpty(secretAccessKey)
|| string.IsNullOrEmpty(bucket)

View File

@ -221,9 +221,8 @@ namespace ASC.Web.Core.Sms
&& !string.IsNullOrEmpty(Secret);
}
public string GetBalance(bool eraseCache = false)
public string GetBalance(Tenant tenant, bool eraseCache = false)
{
var tenant = CoreContext.TenantManager.GetCurrentTenant(false);
var tenantCache = tenant == null ? Tenant.DEFAULT_TENANT : tenant.TenantId;
var key = "sms/smsc/" + tenantCache;
@ -279,7 +278,7 @@ namespace ASC.Web.Core.Sms
public bool ValidateKeys(AuthContext authContext, TenantUtil tenantUtil, SecurityContext securityContext, TenantManager tenantManager, BaseCommonLinkUtility baseCommonLinkUtility)
{
return double.TryParse(GetBalance(true), NumberStyles.Number, CultureInfo.InvariantCulture, out var balance) && balance > 0;
return double.TryParse(GetBalance(tenantManager.GetCurrentTenant(false), true), NumberStyles.Number, CultureInfo.InvariantCulture, out var balance) && balance > 0;
}
}