IwbNotificationName.cs 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. using System.Collections.Generic;
  2. using System.Web.Mvc;
  3. using Abp.Authorization;
  4. using Abp.Localization;
  5. using Abp.Notifications;
  6. using ContractService.Authorization;
  7. using IwbZero;
  8. namespace ContractService.Configuration
  9. {
  10. public class IwbNotificationName
  11. {
  12. public const string WelcomeMsg = IwbZeroConsts.IwbNotificationWelcomeMsg;
  13. public const string SendMsg = "UserSendMsg";
  14. public const string KeyPointAlarm = "KeyPointAlarm";
  15. public const string KeyPointExpire = "KeyPointExpire";
  16. /// <summary>
  17. /// 可以被订阅的通知
  18. /// </summary>
  19. public static readonly List<string> CanbeSubscriptionName = new List<string>()
  20. {
  21. WelcomeMsg,
  22. SendMsg,
  23. //KeyPointAlarm,
  24. //KeyPointExpire
  25. };
  26. public static readonly List<string> NameList = new List<string>()
  27. {
  28. WelcomeMsg,
  29. SendMsg,
  30. };
  31. public static List<SelectListItem> GetNameList()
  32. {
  33. var sList = new List<SelectListItem>();
  34. foreach (var l in NameList)
  35. {
  36. sList.Add(new SelectListItem() { Value = l, Text = L("Notification_" + l) });
  37. }
  38. return sList;
  39. }
  40. private static string L(string name)
  41. {
  42. var str = LocalizationHelper.GetSource(IwbZeroConsts.LocalizationSourceName).GetString(name);
  43. return str;
  44. }
  45. }
  46. public class IwbNotificationProvider : NotificationProvider
  47. {
  48. public override void SetNotifications(INotificationDefinitionContext context)
  49. {
  50. var ndList = GetCommonDefinitions();
  51. foreach (var nd in ndList)
  52. {
  53. context.Manager.Add(nd);
  54. }
  55. }
  56. public List<NotificationDefinition> GetCommonDefinitions()
  57. {
  58. var list = new List<NotificationDefinition>();
  59. //var t = typeof(IwbNotificationName);
  60. //var fts = t.GetFields();
  61. foreach (var f in IwbNotificationName.CanbeSubscriptionName)
  62. {
  63. //string name = f.GetRawConstantValue().ToString();
  64. var setting = new NotificationDefinition(f, null, L("Notification_" + f),
  65. permissionDependency: new SimplePermissionDependency(PermissionNames.Pages));
  66. if (!list.Contains(setting))
  67. {
  68. list.Add(setting);
  69. }
  70. }
  71. return list;
  72. }
  73. private static ILocalizableString L(string name)
  74. {
  75. return new LocalizableString(name, IwbZeroConsts.LocalizationSourceName);
  76. }
  77. //private static string L(string name)
  78. //{
  79. // var str = LocalizationHelper.GetSource(IwbZeroConsts.LocalizationSourceName).GetString(name);
  80. // return str;
  81. //}
  82. }
  83. }