private DateTime GetNextExecutionDateTime(TimerDefinition timerDefinition) { switch (timerDefinition.Type) { case TimerType.Interval: { int ınt32 = int.Parse(timerDefinition.Value); return this._runtime.RuntimeDateTimeNow.AddMilliseconds((double)ınt32); } case TimerType.Time: { DateTime runtimeDateTimeNow = this._runtime.RuntimeDateTimeNow; DateTime date = DateTime.Parse(timerDefinition.Value, this._runtime.SchemeParsingCulture); date = runtimeDateTimeNow.Date + date.TimeOfDay; if (date.TimeOfDay < runtimeDateTimeNow.TimeOfDay) { date = date.AddDays(1); } return date; } case TimerType.Date: { DateTime dateTime = DateTime.Parse(timerDefinition.Value, this._runtime.SchemeParsingCulture); return dateTime.Date; } case TimerType.DateAndTime: { return DateTime.Parse(timerDefinition.Value, this._runtime.SchemeParsingCulture); } } return this._runtime.RuntimeDateTimeNow; }
public static TimerDefinition Create(string name, string type, string value, string notOverrideIfExists) { TimerType timerType; Enum.TryParse<TimerType>(type, true, out timerType); bool flag = false; bool.TryParse(notOverrideIfExists, out flag); TimerDefinition timerDefinition = new TimerDefinition() { Name = name, Type = timerType, Value = value, NotOverrideIfExists = flag }; return timerDefinition; }
public void UpdateTimer(Guid processId, TimerDefinition timerDefinition) { if (timerDefinition.Type != TimerType.ByProcessInstance) throw new NotSupportedException(); var intervalSeconds = (int)Math.Floor(timerDefinition.IntervalTimeInMilliseconds/(double)1000); var intervalMilliseconds = timerDefinition.IntervalTimeInMilliseconds - intervalSeconds*1000; var interval = new TimeSpan(0, 0, 0, intervalSeconds, intervalMilliseconds); SetTimer(processId, interval, timerDefinition.Name); }
private DateTime GetNextExecutionDateTime(TimerDefinition timerDefinition) { switch (timerDefinition.Type) { case TimerType.Date: var date1 = DateTime.ParseExact(timerDefinition.Value, _runtime.SchemeParsingCulture.DateTimeFormat.ShortDatePattern, CultureInfo.InvariantCulture); return date1.Date; case TimerType.DateAndTime: var date2 = DateTime.ParseExact(timerDefinition.Value, (string.Format("{0} {1}", _runtime.SchemeParsingCulture.DateTimeFormat.ShortDatePattern, _runtime.SchemeParsingCulture.DateTimeFormat.LongTimePattern)), CultureInfo.InvariantCulture); return date2; case TimerType.Interval: var interval = Int32.Parse(timerDefinition.Value); return _runtime.RuntimeDateTimeNow.AddMilliseconds(interval); case TimerType.Time: var now = _runtime.RuntimeDateTimeNow; var date3 = DateTime.ParseExact(timerDefinition.Value, _runtime.SchemeParsingCulture.DateTimeFormat.LongTimePattern, CultureInfo.InvariantCulture); if (date3 < now) date3 = date3.AddDays(1); return date3; } return _runtime.RuntimeDateTimeNow; }