using System; using Abp.Runtime.Caching; namespace IwbZero.Storage { public class TempFileCacheManager : ITempFileCacheManager { public const string TempFileCacheName = "TempFileCacheName"; private readonly ICacheManager _cacheManager; public TempFileCacheManager(ICacheManager cacheManager) { _cacheManager = cacheManager; } public void SetFile(string token, byte[] content) { _cacheManager.GetCache(TempFileCacheName).Set(token, content, new TimeSpan(0, 0, 1, 0)); // expire time is 1 min by default } public void SetFile(string token, byte[] content, int min) { int d = 0, h = 0, m = min; if (min >= 60) { m = min % 60; h = min / 60; if (h >= 24) { h = h % 24; d = h / 24; } } _cacheManager.GetCache(TempFileCacheName).Set(token, content, new TimeSpan(d, h, m, 0)); } public byte[] GetFile(string token) { return _cacheManager.GetCache(TempFileCacheName).Get(token, ep => ep) as byte[]; } } }