SettingController.cs 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. using System.Linq;
  2. using System.Threading.Tasks;
  3. using System.Web.Mvc;
  4. using Abp.Configuration.Startup;
  5. using Abp.Localization.Dictionaries;
  6. using Abp.Runtime.Caching;
  7. using Abp.Web.Models;
  8. using Abp.Web.Mvc.Authorization;
  9. using WeOnlineApp.Authorization;
  10. using WeOnlineApp.Localization;
  11. using IwbZero;
  12. using IwbZero.Auditing;
  13. using IwbZero.ToolCommon.LogHelpers;
  14. namespace WeOnlineApp.Controllers
  15. {
  16. [AbpMvcAuthorize, AuditLog("系统配置")]
  17. public class SettingController : IwbControllerBase
  18. {
  19. private ILocalizationConfiguration Configuration { get; }
  20. //private IAttachFileManager AttachFileManager { get; }
  21. public SettingController(ILocalizationConfiguration configuration, ICacheManager cacheManager) : base(cacheManager)
  22. {
  23. Configuration = configuration;
  24. //AttachFileManager = NullAttachFileManager.Instance;
  25. }
  26. [AbpMvcAuthorize(PermissionNames.PagesUserSysSettingRefreshLang), AuditLog("刷新语言包")]
  27. public ActionResult LangRefresh()
  28. {
  29. foreach (var source in Configuration.Sources)
  30. {
  31. if (source.Name != IwbZeroConsts.LocalizationSourceName)
  32. {
  33. continue;
  34. }
  35. //Extending dictionaries
  36. if (source is IDictionaryBasedLocalizationSource dictionaryBasedSource)
  37. {
  38. var extensions = Configuration.Sources.Extensions.Where(e => e.SourceName == source.Name).ToList();
  39. foreach (var extension in extensions)
  40. {
  41. if (extension.DictionaryProvider is IwbXmlFileLocalizationDictionaryProvider provider)
  42. {
  43. provider.Refresh(dictionaryBasedSource.Name);
  44. foreach (var extensionDictionary in provider.Dictionaries.Values)
  45. {
  46. dictionaryBasedSource.Extend(extensionDictionary);
  47. }
  48. }
  49. }
  50. }
  51. this.LogDebug("Refreshed localization source: " + source.Name);
  52. }
  53. return Json(new AjaxResponse(true), JsonRequestBehavior.AllowGet);
  54. }
  55. [AbpMvcAuthorize(PermissionNames.PagesUserSysSettingRefreshCache), AuditLog("刷新缓存")]
  56. public async Task<ActionResult> CacheRefresh(string id)
  57. {
  58. if (string.IsNullOrEmpty(id))
  59. {
  60. var caches = CacheManager.GetAllCaches();
  61. foreach (var cache in caches)
  62. {
  63. await cache.ClearAsync();
  64. }
  65. }
  66. else
  67. {
  68. var cache = CacheManager.GetCache(id);
  69. if (cache != null)
  70. {
  71. await cache.ClearAsync();
  72. }
  73. }
  74. return Json(new AjaxResponse(true), JsonRequestBehavior.AllowGet);
  75. }
  76. }
  77. }