Beispiel #1
0
        public bool IsActual()
        {
            var lastHit = lastUpdated.GetLastHitIfHitted();

            if (!lastHit.HasValue)
            {
                return(false);
            }
            return((DateTime.Now - lastHit.Value).TotalMilliseconds <= updateTimeoutMils);
        }
Beispiel #2
0
            public DailySchedule(
                Action <object> actionOnObj,
                int minMilsBetweenCheck,
                object passedObject,
                int hourStart, int hourEnd, int minuteStart, int minuteEnd,
                string logMessageThenExecuted)
            {
                minMilsBetween    = minMilsBetweenCheck;
                this.passedObject = passedObject;

                actionOnPassedObject = o =>
                {
                    if (DateTime.Now.Hour < hourStart || DateTime.Now.Hour > hourEnd ||
                        DateTime.Now.Minute < minuteStart || DateTime.Now.Minute > minuteEnd)
                    {
                        return;
                    }

                    var lastTime = lastTimeDailyRoutineExecuted.GetLastHitIfHitted();
                    if (lastTime.HasValue && lastTime.Value.Date == DateTime.Now.Date)
                    {
                        return;
                    }
                    if (!string.IsNullOrEmpty(logMessageThenExecuted))
                    {
                        Logger.Info(logMessageThenExecuted);
                    }

                    try
                    {
                        actionOnObj(o);
                    }
                    finally
                    {
                        lastTimeDailyRoutineExecuted.Touch();
                    }
                };
            }