using System.Collections.Generic;
using System.Web.Mvc;
using Abp.Authorization;
using Abp.Localization;
using Abp.Notifications;
using WeApp.Authorization;
using IwbZero;
namespace WeApp.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;
//}
}
}