/// <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); }
/// <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); }
//取得 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); }
//是否有上一次未執行的週期性排程 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); }