Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
 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));
 }