OrganizationUnitSettings.cs 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using Abp.Configuration;
  2. using Abp.Dependency;
  3. using VberZero.Configuration;
  4. using VberZero.Settings;
  5. namespace VberZero.Organizations;
  6. /// <summary>
  7. /// 实现 <see cref="IOrganizationUnitSettings"/> 以从 <see cref="ISettingManager"/> 获取设置。
  8. /// </summary>
  9. public class OrganizationUnitSettings : IOrganizationUnitSettings, ITransientDependency
  10. {
  11. /// <summary>
  12. /// 获取用户的最大允许组织单位成员资格计数。
  13. /// 返回当前租户的值。
  14. /// </summary>
  15. public int MaxUserMembershipCount
  16. {
  17. get
  18. {
  19. return _settingManager.GetSettingValue<int>(VzSettingNames.OrganizationUnits.MaxUserMembershipCount);
  20. }
  21. }
  22. private readonly ISettingManager _settingManager;
  23. public OrganizationUnitSettings(ISettingManager settingManager)
  24. {
  25. _settingManager = settingManager;
  26. }
  27. /// <summary>
  28. /// 获取用户的最大允许组织单位成员资格计数。
  29. /// 返回当前租户的值。
  30. /// </summary>
  31. public async Task<int> GetMaxUserMembershipCountAsync(int? tenantId)
  32. {
  33. if (tenantId.HasValue)
  34. {
  35. return await _settingManager.GetSettingValueForTenantAsync<int>(VzSettingNames.OrganizationUnits.MaxUserMembershipCount, tenantId.Value);
  36. }
  37. else
  38. {
  39. return await _settingManager.GetSettingValueForApplicationAsync<int>(VzSettingNames.OrganizationUnits.MaxUserMembershipCount);
  40. }
  41. }
  42. /// <summary>
  43. /// 获取用户的最大允许组织单位成员资格计数。
  44. /// 返回当前租户的值。
  45. /// </summary>
  46. public int GetMaxUserMembershipCount(int? tenantId)
  47. {
  48. if (tenantId.HasValue)
  49. {
  50. return _settingManager.GetSettingValueForTenant<int>(VzSettingNames.OrganizationUnits.MaxUserMembershipCount, tenantId.Value);
  51. }
  52. else
  53. {
  54. return _settingManager.GetSettingValueForApplication<int>(VzSettingNames.OrganizationUnits.MaxUserMembershipCount);
  55. }
  56. }
  57. public async Task SetMaxUserMembershipCountAsync(int? tenantId, int value)
  58. {
  59. if (tenantId.HasValue)
  60. {
  61. await _settingManager.ChangeSettingForTenantAsync(tenantId.Value, VzSettingNames.OrganizationUnits.MaxUserMembershipCount, value.ToString());
  62. }
  63. else
  64. {
  65. await _settingManager.ChangeSettingForApplicationAsync(VzSettingNames.OrganizationUnits.MaxUserMembershipCount, value.ToString());
  66. }
  67. }
  68. public void SetMaxUserMembershipCount(int? tenantId, int value)
  69. {
  70. if (tenantId.HasValue)
  71. {
  72. _settingManager.ChangeSettingForTenant(tenantId.Value, VzSettingNames.OrganizationUnits.MaxUserMembershipCount, value.ToString());
  73. }
  74. else
  75. {
  76. _settingManager.ChangeSettingForApplication(VzSettingNames.OrganizationUnits.MaxUserMembershipCount, value.ToString());
  77. }
  78. }
  79. }