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

32 lines
956 B
C#
Raw Normal View History

2020-09-18 17:57:51 +00:00
using System;
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));
}
private string GetCacheKey(int tenantId) => $"encryption{tenantId}";
}
}