Example #1
0
        public static IList <IScheduledRule> LoadRules(string strRules)
        {
            IList <IScheduledRule> list = new List <IScheduledRule>();

            foreach (Match match in ScheduledUtils.regex.Matches(strRules))
            {
                ScheduledRule scheduledRule = new ScheduledRule();
                scheduledRule.Rule = new TaskRule
                {
                    Type   = match.Groups["Type"].Value,
                    Offest = match.Groups["Offset"].Value
                };
                string value = match.Groups["Count"].Value;
                scheduledRule.Count = (string.IsNullOrEmpty(value) ? 0 : TypeParsers.ConvertTo <int>(value));
                string value2 = match.Groups["EndDate"].Value;
                scheduledRule.End = (string.IsNullOrEmpty(value2) ? DateTime.MinValue : TypeParsers.ConvertTo <DateTime>(value2));
                if (Enum.IsDefined(ScheduledUtils.type, scheduledRule.Rule.Type))
                {
                    list.Add(scheduledRule);
                }
            }
            foreach (Match match2 in ScheduledUtils.regexBlockInterval.Matches(strRules))
            {
                ScheduledBlockIntervalRule scheduledBlockIntervalRule = new ScheduledBlockIntervalRule();
                scheduledBlockIntervalRule.Begin    = match2.Groups["Begin"].Value;
                scheduledBlockIntervalRule.Interval = match2.Groups["Interval"].Value;
                scheduledBlockIntervalRule.Region   = new TaskRegion
                {
                    Type        = match2.Groups["RegionType"].Value,
                    StartOffest = match2.Groups["StartOffset"].Value,
                    StopOffest  = match2.Groups["StopOffset"].Value
                };
                if (Enum.IsDefined(ScheduledUtils.type, scheduledBlockIntervalRule.Region.Type))
                {
                    list.Add(scheduledBlockIntervalRule);
                }
            }
            foreach (Match match3 in ScheduledUtils.regexBlockTimer.Matches(strRules))
            {
                ScheduledBlockTimerRule scheduledBlockTimerRule = new ScheduledBlockTimerRule();
                scheduledBlockTimerRule.Begin = match3.Groups["Begin"].Value;
                scheduledBlockTimerRule.Rule  = new TaskRule
                {
                    Type   = match3.Groups["RuleType"].Value,
                    Offest = match3.Groups["RuleOffset"].Value
                };
                scheduledBlockTimerRule.Region = new TaskRegion
                {
                    Type        = match3.Groups["RegionType"].Value,
                    StartOffest = match3.Groups["StartOffset"].Value,
                    StopOffest  = match3.Groups["StopOffset"].Value
                };
                if (Enum.IsDefined(ScheduledUtils.type, scheduledBlockTimerRule.Rule.Type) && Enum.IsDefined(ScheduledUtils.type, scheduledBlockTimerRule.Region.Type))
                {
                    list.Add(scheduledBlockTimerRule);
                }
            }
            return(list);
        }
Example #2
0
        private static IScheduledItem BlockIntervalRule(ScheduledBlockIntervalRule rule)
        {
            if (rule == null)
            {
                return(null);
            }
            IScheduledItem result;

            try
            {
                IScheduledItem scheduledItem = new BlockWrapper(new SimpleInterval(DateTime.Parse(rule.Begin), TimeSpan.Parse(rule.Interval)), rule.Region.Type, rule.Region.StartOffest, rule.Region.StopOffest);
                result = scheduledItem;
            }
            catch
            {
                result = null;
            }
            return(result);
        }
Example #3
0
        public static IScheduledItem Provider(IScheduledRule rule)
        {
            IScheduledItem result;

            if (rule is ScheduledBlockIntervalRule)
            {
                ScheduledBlockIntervalRule rule2 = rule as ScheduledBlockIntervalRule;
                result = SchedulerFactory.BlockIntervalRule(rule2);
            }
            else
            {
                if (rule is ScheduledBlockTimerRule)
                {
                    ScheduledBlockTimerRule rule3 = rule as ScheduledBlockTimerRule;
                    result = SchedulerFactory.BlockTimerRule(rule3);
                }
                else
                {
                    ScheduledRule rule4 = rule as ScheduledRule;
                    result = SchedulerFactory.BaseRule(rule4);
                }
            }
            return(result);
        }