コード例 #1
0
        public virtual DateTime?Resolve(string duedateDescription, IClockReader clockReader, TimeZoneInfo timeZone)
        {
            DateTime?nextRun = null;

            try
            {
                if (duedateDescription.StartsWith("R", StringComparison.Ordinal))
                {
                    nextRun = (new DurationHelper(duedateDescription, clockReader)).GetCalendarAfter(clockReader.GetCurrentCalendar(timeZone));
                }
                else
                {
                    nextRun = (new CronExpression(duedateDescription, clockReader, timeZone)).GetTimeAfter(clockReader.GetCurrentCalendar(timeZone));
                }
            }
            catch (Exception e)
            {
                throw new ActivitiException("Failed to parse scheduler expression: " + duedateDescription, e);
            }

            return(nextRun == null ? null : nextRun);
        }
コード例 #2
0
 public DurationBusinessCalendar(IClockReader clockReader) : base(clockReader)
 {
 }
コード例 #3
0
 public Worker(ILogger <Worker> logger, IClockReader clockReader, IValueSender valueSender, TimeSpan refreshFrequency, string deviceId)
 {
     this.logger           = logger;
     this.refreshFrequency = refreshFrequency;
     helper = new WorkerHelper(clockReader, valueSender);
 }
コード例 #4
0
        public DurationHelper(string expressionS, int maxIterations, IClockReader clockReader)
        {
            this.clockReader   = clockReader;
            this.maxIterations = maxIterations;
            IList <string> expression = new List <string>(expressionS.Split(new char[] { '/' }, StringSplitOptions.RemoveEmptyEntries));

            //datatypeFactory = DatatypeFactory.newInstance();

            if (expression.Count > 3 || expression.Count == 0)
            {
                throw new ActivitiIllegalArgumentException("Cannot parse duration");
            }
            if (expression[0].StartsWith("R", StringComparison.Ordinal))
            {
                isRepeat = true;
                times    = expression[0].Length == 1 ? int.MaxValue - 1 : int.Parse(expression[0].Substring(1));

                if (expression[0].Equals("R"))
                { // R without params
                    repeatWithNoBounds = true;
                }

                expression = expression.Skip(1).Take(expression.Count).ToList();
            }

            if (IsDuration(expression[0]))
            {
                period = ParsePeriod(expression[0]);
                end    = expression.Count == 1 ? null : (DateTime?)ParseDate(expression[1]);
            }
            else
            {
                start = ParseDate(expression[0]);
                if (IsDuration(expression[1]))
                {
                    period = ParsePeriod(expression[1]);
                }
                else
                {
                    end    = ParseDate(expression[1]);
                    period = end.Value.Subtract(start.Value);// datatypeFactory.newDuration(end.getTimeInMillis() - start.getTimeInMillis());
                }
            }

            //if (isDuration(expression[0]))
            //{
            //    period = XmlConvert.ToTimeSpan(expression[0]);
            //    end = expression.Count == 1 ? null : (DateTime?)parseDate(expression[1]);
            //}
            //else
            //{
            //    start = expression.Count == 0 ? DateTime.Now : parseDate(expression[0]);
            //    if (isDuration(expression[0]))
            //    {
            //        period = XmlConvert.ToTimeSpan(expression[0]);
            //    }
            //    else if (expression.Count > 1)
            //    {
            //        end = parseDate(expression[1]);
            //        period = end.Value.Subtract(start.Value);
            //    }
            //    else
            //    {
            //        end = parseDate(expression[0]);
            //        period = end.Value.Subtract(start.Value);
            //    }
            //}
            if (start == null)
            {
                start = clockReader.CurrentCalendar;
            }
        }
コード例 #5
0
 public WorkerHelper(IClockReader clockReader, IValueSender valueSender)
 {
     this.clockReader = clockReader;
     this.valueSender = valueSender;
 }
コード例 #6
0
 public CycleBusinessCalendar(IClockReader clockReader) : base(clockReader)
 {
 }
コード例 #7
0
 public DurationHelper(string expressionS, IClockReader clockReader) : this(expressionS, -1, clockReader)
 {
 }
コード例 #8
0
 public AdvancedCycleBusinessCalendar(IClockReader clockReader, int?defaultScheduleVersion) : this(clockReader)
 {
     this.defaultScheduleVersion = defaultScheduleVersion;
 }
コード例 #9
0
 public BusinessCalendarImpl(IClockReader clockReader)
 {
     this.clockReader = clockReader;
 }
コード例 #10
0
 public virtual DateTime?Resolve(string duedateDescription, IClockReader clockReader, TimeZoneInfo timeZone)
 {
     return((new CycleBusinessCalendar(clockReader)).ResolveDuedate(duedateDescription));
 }
コード例 #11
0
 public TimeChecker(IClockReader clockReader)
 {
     _clockReader = clockReader;
 }
コード例 #12
0
 public DueDateBusinessCalendar(IClockReader clockReader) : base(clockReader)
 {
 }