DocSpace-client/common/ASC.Data.Storage/Encryption/EncryptionServiceNotifier.cs

45 lines
1.3 KiB
C#
Raw Normal View History

2020-09-18 17:57:51 +00:00
using System;
2020-09-23 10:55:39 +00:00
using ASC.Common;
2020-09-18 17:57:51 +00:00
using ASC.Common.Caching;
namespace ASC.Data.Storage.Encryption
{
public class EncryptionServiceNotifier
{
private ICacheNotify<ProgressEncryption> СacheBackupProgress { get; }
private ICache Cache { get; }
public EncryptionServiceNotifier(ICacheNotify<ProgressEncryption> сacheBackupProgress)
{
Cache = AscCache.Memory;
СacheBackupProgress = сacheBackupProgress;
СacheBackupProgress.Subscribe((a) =>
{
Cache.Insert(GetCacheKey(a.TenantId), a, DateTime.UtcNow.AddDays(1));
},
CacheNotifyAction.InsertOrUpdate);
}
public ProgressEncryption GetEncryptionProgress(int tenantId)
{
return Cache.Get<ProgressEncryption>(GetCacheKey(tenantId));
}
2020-09-30 14:47:42 +00:00
private string GetCacheKey(int tenantId)
{
return $"encryption{tenantId}";
}
2020-09-18 17:57:51 +00:00
}
2020-09-23 10:55:39 +00:00
public static class EncryptionServiceNotifierExtension
{
public static DIHelper AddEncryptionServiceNotifierService(this DIHelper services)
{
2020-10-12 19:39:23 +00:00
services.TryAddSingleton<EncryptionServiceNotifier>();
2020-09-23 10:55:39 +00:00
return services;
}
}
2020-09-18 17:57:51 +00:00
}