Example #1
0
        /// <summary>
        /// 取得 Monthly Job 工作
        /// </summary>
        /// <param name="UsePeriod"></param>
        /// <returns></returns>
        public static IEnumerable <JobData> GetMonthlyJobs(PeriodJob UsePeriod)
        {
            var result = from job in GetAllJobs()
                         where job.UsePeriodType == PeriodType.BY_MONTHLY &&
                         job.Enabled
                         //&& job.IsPeriodJob == UsePeriod
                         select job;

            var result2 = result.Select(c => c);

            if (UsePeriod == PeriodJob.IS_PERIOD)
            {
                result2 = result2.Where(c => c.IsPeriodJob == UsePeriod &&
                                        (c.LastExecuteDateTime.HasValue ? ((DateTime.Now - c.LastExecuteDateTime.Value).TotalDays >= (c.LastExecuteDateTime.Value.AddMonths(1) - c.LastExecuteDateTime.Value).TotalDays) : true) &&
                                        c.ExecuteDay == DateTime.Now.Day &&
                                        c.StartTime == DateTime.Now.ToString("HH:mm"));
            }
            else if (UsePeriod == PeriodJob.NONE)
            {
                result2 = result2.Where(c => !c.LastExecuteDateTime.HasValue &&
                                        c.ExecuteDay == DateTime.Now.Day &&
                                        c.StartTime == DateTime.Now.ToString("HH:mm"));
            }
            return(result2);
        }
Example #2
0
        /// <summary>
        /// 取得 Weekly Job 工作
        /// </summary>
        /// <param name="UsePeriod">是否為週期性工作</param>
        /// <returns></returns>
        public static IEnumerable <JobData> GetWeeklyJobs(PeriodJob UsePeriod)
        {
            var result = from job in GetAllJobs()
                         where //Math.Round(((DateTime.Now - job.LastExecuteDateTime.Value).TotalDays % 7)) >= 7
                         job.UsePeriodType == PeriodType.BY_WEEKLY &&
                         job.Enabled
                         select job;

            var result2 = result.Select(c => c);

            if (UsePeriod == PeriodJob.IS_PERIOD)
            {
                result2 = result2.Where(c => c.IsPeriodJob == UsePeriod &&
                                        (c.LastExecuteDateTime.HasValue?(((DateTime.Now - c.LastExecuteDateTime.Value).TotalDays) >= 7):true) &&
                                        c.ExceuteWeek == (DateTime.Now.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)DateTime.Now.DayOfWeek) &&
                                        c.StartTime == DateTime.Now.ToString("HH:mm"));
            }
            else if (UsePeriod == PeriodJob.NONE)
            {
                result2 = result2.Where(c => !c.LastExecuteDateTime.HasValue &&
                                        c.ExceuteWeek == (DateTime.Now.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)DateTime.Now.DayOfWeek) &&
                                        c.StartTime == DateTime.Now.ToString("HH:mm"));
            }
            return(result2);
        }
Example #3
0
        //取得 Monthly Job
        public static IEnumerable <JobData> GetMonthlyJobsByNonExec(PeriodJob UsePeriod)
        {
            var result = from job in GetAllJobs()
                         where
                         job.UsePeriodType == PeriodType.BY_MONTHLY
                         select job;

            var result2 = result.Select(c => c);

            if (UsePeriod == PeriodJob.IS_PERIOD)
            {
                result2 = result2.Where(c => c.IsPeriodJob == UsePeriod &&
                                        (c.LastExecuteDateTime.HasValue ? ((DateTime.Now - c.LastExecuteDateTime.Value).TotalDays >= (c.LastExecuteDateTime.Value.AddMonths(1) - c.LastExecuteDateTime.Value).TotalDays) : true)
                                        );
            }
            else if (UsePeriod == PeriodJob.NONE)
            {
                result2 = result2.Where(c => (c.LastExecuteDateTime.HasValue ? ((DateTime.Now - c.LastExecuteDateTime.Value).TotalDays >= (c.LastExecuteDateTime.Value.AddMonths(1) - c.LastExecuteDateTime.Value).TotalDays) : true));
            }
            return(result2);
        }
Example #4
0
        //是否有上一次未執行的週期性排程
        public static IEnumerable <JobData> GetWeeklyJobsByNonExec(PeriodJob UsePeriod)
        {
            var result = from job in GetAllJobs()
                         where job.UsePeriodType == PeriodType.BY_WEEKLY
                         select job;

            var result2 = result.Select(c => c);

            if (UsePeriod == PeriodJob.IS_PERIOD)
            {
                result2 = result2.Where(c => c.IsPeriodJob == UsePeriod &&
                                        (c.LastExecuteDateTime.HasValue ? (((DateTime.Now - c.LastExecuteDateTime.Value).TotalDays) >= 7) : true)
                                        );
            }
            else if (UsePeriod == PeriodJob.NONE)
            {
                result2 = result2.Where(c => !c.LastExecuteDateTime.HasValue &&
                                        c.ExceuteWeek == (DateTime.Now.DayOfWeek == DayOfWeek.Sunday ? 7 : (int)DateTime.Now.DayOfWeek)
                                        );
            }
            return(result2);
        }