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

42 lines
1.2 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));
}
private string GetCacheKey(int tenantId) => $"encryption{tenantId}";
}
2020-09-23 10:55:39 +00:00
public static class EncryptionServiceNotifierExtension
{
public static DIHelper AddEncryptionServiceNotifierService(this DIHelper services)
{
services.TryAddSingleton<EncryptionServiceNotifier>();
return services;
}
}
2020-09-18 17:57:51 +00:00
}