コード例 #1
0
ファイル: ProcessManager.cs プロジェクト: Roballen/WebGrab
        public static bool NeedtoCheck(Config config, IRepository repository)
        {
            if (config.Checkperday < 1)
                return false;

            DateTime? lastupdate = DateTime.MinValue;
            int pullstoday = 0;

            // get count of completed orders
            pullstoday  = repository.GetCompletedCount(config.County, DateTime.Now);
            var updatestoday = repository.GetMultipleByDate(DateTime.Now, config.County);

            foreach (var countyPull in updatestoday)
            {
                if (countyPull.Time > lastupdate)
                    lastupdate = countyPull.Time;
            }

            var interval = config.Interval > 0 ? config.Interval : 8 / config.Checkperday; // will check equally throughout the day

            if (DateTime.Now.TimeOfDay > config.Starttime.TimeOfDay) // if we are past the start time then start check
            {
                if (pullstoday == 0 || lastupdate == null) // if we haven't done it today go for it
                    return true;
                if (pullstoday < config.Checkperday && (DateTime.Now > ((DateTime)lastupdate).AddHours(interval))) // if we have done it today, check how many time and the intervals we are to check
                    return true;
            }
            return false;
        }