public override ScheduleElement GetValue(DatePartTemplateElement template, string valueString)
        {
            var parts = valueString.Split(Delimiter)
                        .Select(part => ScheduleElement.GetValue(template, part)).ToArray();

            return(new IntListScheduleElement(template, parts));
        }
        public override ScheduleElement GetValue(DatePartTemplateElement template, string valueString)
        {
            var matches = Pattern.Matches(valueString);
            var step    = matches[0].Groups["step"].Length > 0 ? int.Parse(matches[0].Groups["step"].Value) : 1;

            return(new IntRangeScheduleElement(template, template.MinValue, template.MaxValue, step));
        }
 public IntRangeScheduleElement(DatePartTemplateElement template, int minValue, int maxValue, int step)
     : base(template)
 {
     MinValue = minValue;
     MaxValue = maxValue;
     Step     = step;
 }
        public static ScheduleElement GetValue(DatePartTemplateElement template, string valueString)
        {
            var valueParser = SupportParsers.FirstOrDefault(parser => parser.IsMatch(valueString));

            if (valueParser == null)
            {
                throw new ArgumentException($"Неверный формат параметра \"{template.Name}\"");
            }

            return(valueParser.GetValue(template, valueString));
        }
        public override ScheduleElement GetValue(DatePartTemplateElement template, string valueString)
        {
            var matches = Pattern.Matches(valueString);

            var minValue = template.GetValue(matches[0].Groups["min"].Value);
            var maxValue = template.GetValue(matches[0].Groups["max"].Value);

            if (minValue > maxValue)
            {
                var tmp = minValue; minValue = maxValue; maxValue = tmp;
            }

            var step = matches[0].Groups["step"].Length > 0 ? int.Parse(matches[0].Groups["step"].Value) : 1;

            return(new IntRangeScheduleElement(template, minValue, maxValue, step));
        }
 public override ScheduleElement GetValue(DatePartTemplateElement template, string valueString)
 => new IntScheduleElement(template, template.GetValue(valueString));
 public abstract ScheduleElement GetValue(DatePartTemplateElement template, string valueString);
 public IntScheduleElement(DatePartTemplateElement template, int value)
     : base(template)
 {
     Value = value;
 }
 protected ScheduleElement(DatePartTemplateElement template)
 {
     ParentTemplate = template;
 }
 public static ScheduleElement GetDefaultValue(DatePartTemplateElement template)
 => GetValue(template, template.DefaultValue);
 public IntListScheduleElement(DatePartTemplateElement template, IEnumerable <ScheduleElement> elements)
     : base(template)
 {
     _intListItems = elements.ToList();
 }