Esempio n. 1
0
        /// <summary>
        /// 创建新的计划条件
        /// </summary>
        /// <param name="conditionType">条件类型</param>
        /// <param name="triggerId">计划编号</param>
        /// <returns></returns>
        public static TriggerCondition CreateTriggerCondition(TaskTriggerConditionType conditionType, string triggerId)
        {
            TriggerCondition condition = null;

            switch (conditionType)
            {
            case TaskTriggerConditionType.固定日期:
                condition = new TriggerFullDateCondition(triggerId);
                break;

            case TaskTriggerConditionType.星期配置:
                condition = new TriggerWeeklyCondition(triggerId);
                break;

            case TaskTriggerConditionType.每天时间段:
                condition = new TriggerDailyCondition(triggerId);
                break;

            case TaskTriggerConditionType.每年日期:
                condition = new TriggerAnnualCondition(triggerId);
                break;

            case TaskTriggerConditionType.每月日期:
                condition = new TriggerMonthlyCondition(triggerId);
                break;

            case TaskTriggerConditionType.自定义:
                condition = new TriggerExpressionCondition(triggerId);
                break;
            }
            return(condition);
        }
Esempio n. 2
0
        /// <summary>
        /// 获取指定计划的附加条件
        /// </summary>
        /// <param name="triggerId">计划编号</param>
        /// <param name="conditionType">条件类型</param>
        /// <returns></returns>
        public TriggerCondition GetTriggerConditionByTrigger(string triggerId, TaskTriggerConditionType conditionType)
        {
            if (triggerId.IsNullOrEmpty())
            {
                return(null);
            }
            var trigger = Trigger.CreateTrigger(triggerId);

            trigger.SetCondition(TriggerCondition.CreateTriggerCondition(conditionType, triggerId));
            return(GetTriggerConditionList(trigger)?.FirstOrDefault());
        }
Esempio n. 3
0
 /// <summary>
 /// get repository by condition type
 /// </summary>
 /// <param name="conditionType"></param>
 /// <returns></returns>
 ITriggerConditionBaseRepository GetRepositoryByConditionType(TaskTriggerConditionType conditionType)
 {
     triggerConditionRepositoryDict.TryGetValue(conditionType, out ITriggerConditionBaseRepository repository);
     return(repository);
 }