AppSettingProvider.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Abp.Configuration;
  7. using Abp.Dependency;
  8. using Abp.Domain.Repositories;
  9. using ShwasherSys.BaseSysInfo;
  10. namespace ShwasherSys.Authorization
  11. {
  12. public class AppSettingProvider: SettingProvider
  13. {
  14. protected readonly IIocManager IocManager;
  15. public AppSettingProvider(IIocManager iocManager)
  16. {
  17. IocManager = iocManager;
  18. }
  19. public override IEnumerable<SettingDefinition> GetSettingDefinitions(SettingDefinitionProviderContext context)
  20. {
  21. var list = new List<SettingDefinition>();
  22. using (var settingRepository = IocManager.ResolveAsDisposable<IRepository<SysSetting, int>>())
  23. {
  24. var settings = settingRepository.Object.GetAllList(a => a.SettingType == 1);
  25. foreach (var s in settings)
  26. {
  27. var setting = new SettingDefinition(s.Code, s.Value, scopes: SettingScopes.Application | SettingScopes.Tenant | SettingScopes.User, isVisibleToClients: true);
  28. if (!list.Contains(setting))
  29. {
  30. list.Add(setting);
  31. }
  32. }
  33. }
  34. return list;
  35. }
  36. }
  37. }