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); }
public DurationBusinessCalendar(IClockReader clockReader) : base(clockReader) { }
public Worker(ILogger <Worker> logger, IClockReader clockReader, IValueSender valueSender, TimeSpan refreshFrequency, string deviceId) { this.logger = logger; this.refreshFrequency = refreshFrequency; helper = new WorkerHelper(clockReader, valueSender); }
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; } }
public WorkerHelper(IClockReader clockReader, IValueSender valueSender) { this.clockReader = clockReader; this.valueSender = valueSender; }
public CycleBusinessCalendar(IClockReader clockReader) : base(clockReader) { }
public DurationHelper(string expressionS, IClockReader clockReader) : this(expressionS, -1, clockReader) { }
public AdvancedCycleBusinessCalendar(IClockReader clockReader, int?defaultScheduleVersion) : this(clockReader) { this.defaultScheduleVersion = defaultScheduleVersion; }
public BusinessCalendarImpl(IClockReader clockReader) { this.clockReader = clockReader; }
public virtual DateTime?Resolve(string duedateDescription, IClockReader clockReader, TimeZoneInfo timeZone) { return((new CycleBusinessCalendar(clockReader)).ResolveDuedate(duedateDescription)); }
public TimeChecker(IClockReader clockReader) { _clockReader = clockReader; }
public DueDateBusinessCalendar(IClockReader clockReader) : base(clockReader) { }