public static void UpdateTaskSchedules(List <Njit.TaskScheduler.Schedule> scheduleList) { NjitSoftware.Model.Common.ArchiveCommonDataClassesDataContext dc = new NjitSoftware.Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); foreach (var item in dc.TaskSchedules) { item.Flag = true; } dc.SubmitChanges(); foreach (var item in scheduleList) { Njit.TaskScheduler.ScheduleTypes.BackupDatabase backupDatabaseT = (item.ScheduleType as Njit.TaskScheduler.ScheduleTypes.BackupDatabase); Njit.TaskScheduler.ScheduleTypes.ExecuteProgram executeProgramT = (item.ScheduleType as Njit.TaskScheduler.ScheduleTypes.ExecuteProgram); Njit.TaskScheduler.ScheduleTypes.ShowMessage showMessageT = (item.ScheduleType as Njit.TaskScheduler.ScheduleTypes.ShowMessage); string weekdays = null, months = null; int? monthDay = null; Njit.TaskScheduler.ScheduleRepeatTypes.NoRepeat noRepeatR = (item.RepeatType as Njit.TaskScheduler.ScheduleRepeatTypes.NoRepeat); Njit.TaskScheduler.ScheduleRepeatTypes.Daily dailyR = (item.RepeatType as Njit.TaskScheduler.ScheduleRepeatTypes.Daily); Njit.TaskScheduler.ScheduleRepeatTypes.Weekly weeklyR = (item.RepeatType as Njit.TaskScheduler.ScheduleRepeatTypes.Weekly); Njit.TaskScheduler.ScheduleRepeatTypes.Monthly monthlyR = (item.RepeatType as Njit.TaskScheduler.ScheduleRepeatTypes.Monthly); switch (item.RepeatType.TypeOfRepeat) { case Njit.TaskScheduler.ScheduleRepeat.ScheduleRepeats.Weekly: weekdays = Aggregate(weeklyR.WeekDays); break; case Njit.TaskScheduler.ScheduleRepeat.ScheduleRepeats.Monthly: months = Aggregate(monthlyR.Months); monthDay = monthlyR.MonthDay; break; } NjitSoftware.Model.Common.TaskSchedule task = NjitSoftware.Model.Common.TaskSchedule.GetNewInstance(item.ID, item.Name, item.Description, Setting.Archive.ThisProgram.SelectedArchiveTree == null?null:Setting.Archive.ThisProgram.SelectedArchiveTree.Archive.Name, (int)item.RepeatType.TypeOfRepeat, (int)item.ScheduleType.TypeOfSchedule, backupDatabaseT == null ? null : backupDatabaseT.SaveTo, backupDatabaseT == null ? null : backupDatabaseT.FileName, backupDatabaseT == null ? null : (int?)backupDatabaseT.SetNameType, executeProgramT == null ? null : executeProgramT.FilePath, executeProgramT == null ? null : executeProgramT.Parameter, showMessageT == null ? null : showMessageT.MessageTitle, showMessageT == null ? null : showMessageT.MessageBody, item.RepeatType.StartDate, item.RepeatType.StartTime, item.RepeatType.EndDate, item.RepeatType.EndTime, item.RepeatType.ExecuteTime, weekdays, months, monthDay, false); var query = dc.TaskSchedules.Where(t => t.TaskCode == item.ID); if (query.Count() == 0) { dc.TaskSchedules.InsertOnSubmit(task); dc.SubmitChanges(); } else { NjitSoftware.Model.Common.TaskSchedule originalTask = query.Single(); NjitSoftware.Model.Common.TaskSchedule.Copy(originalTask, task); dc.SubmitChanges(); } } dc.TaskSchedules.DeleteAllOnSubmit(dc.TaskSchedules.Where(t => t.Flag == true)); dc.SubmitChanges(); }
public static IEnumerable <NjitSoftware.Model.Common.TaskSchedule> GetTaskSchedules(Expression <Func <NjitSoftware.Model.Common.TaskSchedule, bool> > predicate) { NjitSoftware.Model.Common.ArchiveCommonDataClassesDataContext dc = new NjitSoftware.Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString); return(dc.TaskSchedules.Where(predicate)); }