using System.Collections.Generic; using System.Web.Mvc; using Abp.Authorization; using Abp.Localization; using Abp.Notifications; using WeOnlineApp.Authorization; using IwbZero; namespace WeOnlineApp.Configuration { public class IwbNotificationName { public const string WelcomeMsg = IwbZeroConsts.IwbNotificationWelcomeMsg; public const string SendMsg = "UserSendMsg"; /// /// 可以被订阅的通知 /// public static List CanbeSubscriptionName = new List() { WelcomeMsg, SendMsg, }; public static List NameList = new List() { WelcomeMsg, SendMsg, }; public static List GetNameList() { var sList = new List(); foreach (var l in NameList) { sList.Add(new SelectListItem() { Value = l, Text = L("Notification_" + l) }); } return sList; } private static string L(string name) { var str = LocalizationHelper.GetSource(IwbZeroConsts.LocalizationSourceName).GetString(name); return str; } } public class IwbNotificationProvider : NotificationProvider { public override void SetNotifications(INotificationDefinitionContext context) { var ndList = GetCommonDefinitions(); foreach (var nd in ndList) { context.Manager.Add(nd); } } public List GetCommonDefinitions() { var list = new List(); //var t = typeof(IwbNotificationName); //var fts = t.GetFields(); foreach (var f in IwbNotificationName.CanbeSubscriptionName) { //string name = f.GetRawConstantValue().ToString(); var setting = new NotificationDefinition(f, null, L("Notification_" + f), permissionDependency: new SimplePermissionDependency(PermissionNames.Pages)); if (!list.Contains(setting)) { list.Add(setting); } } return list; } private static ILocalizableString L(string name) { return new LocalizableString(name, IwbZeroConsts.LocalizationSourceName); } //private static string L(string name) //{ // var str = LocalizationHelper.GetSource(IwbZeroConsts.LocalizationSourceName).GetString(name); // return str; //} } }