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

(开头部分) 4KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using Orchard.ContentManagement;
using Orchard.Data;
using Orchard.Rules.Models;
using Orchard.Rules.Services;
using Orchard.Localization;
using Orchard.Services;
using Orchard.Mvc.Html;
using Orchard.Tasks.Scheduling;
using Orchard.Tokens;

namespace Orchard.Rules.Providers {
    public class ScheduleActions : IActionProvider {
        private readonly IContentManager _contentManager;
        private readonly IScheduledTaskManager _scheduledTaskManager;
        private readonly IRepository<RuleRecord> _repository;
        private readonly IRepository<ActionRecord> _actionRecordRepository;
        private readonly IRepository<ScheduledActionRecord> _scheduledActionRecordRepository;
        private readonly IClock _clock;
        private readonly ITokenizer _tokenizer;

        public ScheduleActions(
            IContentManager contentManager,
            IScheduledTaskManager scheduledTaskManager,
            IRepository<RuleRecord> repository,
            IRepository<ActionRecord> actionRecordRepository,
            IRepository<ScheduledActionRecord> scheduledActionRecordRepository,
            IClock clock,
            ITokenizer tokenizer) {
            _contentManager = contentManager;
            _scheduledTaskManager = scheduledTaskManager;
            _repository = repository;
            _actionRecordRepository = actionRecordRepository;
            _scheduledActionRecordRepository = scheduledActionRecordRepository;
            _clock = clock;
            _tokenizer = tokenizer;
            T = NullLocalizer.Instance;
        }

        public Localizer T { get; set; }

        public void Describe(DescribeActionContext context) {
            context.For("System", T("System"), T("System"))
                .Element("Delayed", T("Delayed Action"), T("Triggers some actions after a specific amount of time."), CreateDelayedAction, DisplayDelayedAction, "ActionDelay");
        }

        private LocalizedString DisplayDelayedAction(ActionContext context) {
            var amount = Convert.ToInt32(context.Properties["Amount"]);
            var type = context.Properties["Unity"];
            var ruleId = Convert.ToInt32(context.Properties["RuleId"]);

            var rule = _repository.Get(ruleId);

            return T.Plural("Triggers \"{1}\" in {0} {2}", "Triggers \"{1}\" in {0} {2}s", amount, rule.Name, type);
        }

        private bool CreateDelayedAction(ActionContext context) {
            var amount = Convert.ToInt32(context.Properties["Amount"]);
            var type = context.Properties["Unity"];
            var ruleId = Convert.ToInt32(context.Properties["RuleId"]);
后面还有 53 行代码,解锁后查看完整代码

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

AI 解读

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

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