TempFileCacheManager.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. using System;
  2. using Abp.Runtime.Caching;
  3. namespace IwbZero.Storage
  4. {
  5. public class TempFileCacheManager : ITempFileCacheManager
  6. {
  7. public const string TempFileCacheName = "TempFileCacheName";
  8. private readonly ICacheManager _cacheManager;
  9. public TempFileCacheManager(ICacheManager cacheManager)
  10. {
  11. _cacheManager = cacheManager;
  12. }
  13. public void SetFile(string token, byte[] content)
  14. {
  15. _cacheManager.GetCache(TempFileCacheName).Set(token, content, new TimeSpan(0, 0, 1, 0)); // expire time is 1 min by default
  16. }
  17. public void SetFile(string token, byte[] content, int min)
  18. {
  19. int d = 0, h = 0, m = min;
  20. if (min >= 60)
  21. {
  22. m = min % 60;
  23. h = min / 60;
  24. if (h >= 24)
  25. {
  26. h = h % 24;
  27. d = h / 24;
  28. }
  29. }
  30. _cacheManager.GetCache(TempFileCacheName).Set(token, content, new TimeSpan(d, h, m, 0));
  31. }
  32. public byte[] GetFile(string token)
  33. {
  34. return _cacheManager.GetCache(TempFileCacheName).Get(token, ep => ep) as byte[];
  35. }
  36. }
  37. }