IwbNotificationName.cs 2.7 KB

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