src/Orchard.Web/Modules/Orchard.Rules/Providers/NotificationActions.cs

(完整代码) 1KB

using System;
using Orchard.Rules.Models;
using Orchard.Rules.Services;
using Orchard.Localization;
using Orchard.Tokens;
using Orchard.UI.Notify;

namespace Orchard.Rules.Providers {
    public class NotificationActions : IActionProvider {
        private readonly INotifier _notifier;
        private readonly ITokenizer _tokenizer;

        public NotificationActions(INotifier notifier, ITokenizer tokenizer) {
            _notifier = notifier;
            _tokenizer = tokenizer;
            T = NullLocalizer.Instance;
        }

        public Localizer T { get; set; }

        public void Describe(DescribeActionContext describe) {
            describe.For("Notification", T("Notification"), T("Notifications"))
                .Element(
                    "Notify",
                    T("Notify"),
                    T("Display a message."),
                    context => {
                        var notification = context.Properties["notification"];
                        var message = context.Properties["message"];

                        message = _tokenizer.Replace(message, context.Tokens);

                        var notificationType = (NotifyType)Enum.Parse(typeof(NotifyType), notification);
                        _notifier.Add(notificationType, T(message));

                        return true;
                    },
                    context => T("Displays \"{1}\" as {0}", T(context.Properties["notification"]).Text, T(context.Properties["message"]).Text),
                    "ActionNotify");
        }
    }
}

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。