/// <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); }
/// <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()); }
/// <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); }