private void ContextMenu_Delete_Handler(object sender, EventArgs e) { SchedulerItem item = (SchedulerItem)SchedularView.Rows[_contextMenuLocation.RowIndex].Tag; _manager.ScheduleData.SchedulerList.Remove(item); ShowSchedules(); }
private void AddScheduleBtn_Click(object sender, EventArgs e) { SchedulerItem item = new SchedulerItem() { Active = false, Success = false, Error = false, Timestamp = DateTime.Now }; _manager.ScheduleData.SchedulerList.Add(item); ShowSchedules(); }
private void ContextMenu_Copy_Handler(object sender, EventArgs e) { SchedulerItem item = (SchedulerItem)SchedularView.Rows[_contextMenuLocation.RowIndex].Tag; SchedulerItem newItem = new SchedulerItem() { Active = false, Success = false, Error = false, Timestamp = item.Timestamp, Destination = item.Destination, Filename = item.Filename }; _manager.ScheduleData.SchedulerList.Add(newItem); ShowSchedules(); }
private void SchedularView_CellValueChanged(object sender, DataGridViewCellEventArgs e) { int rowIndex = e.RowIndex; if (rowIndex == -1) { return; } SchedulerItem item = _manager.ScheduleData.SchedulerList[rowIndex]; DataGridViewRow row = SchedularView.Rows[rowIndex]; switch (e.ColumnIndex) { case SCHEDULE_COL_ACTIVE: item.Active = (bool)row.Cells[SCHEDULE_COL_ACTIVE].Value; break; case SCHEDULE_COL_SUCCESS: item.Success = (bool)row.Cells[SCHEDULE_COL_SUCCESS].Value; break; case SCHEDULE_COL_ERROR: item.Error = (bool)row.Cells[SCHEDULE_COL_ERROR].Value; break; case SCHEDULE_COL_DATE: case SCHEDULE_COL_TIME: DateTime date = (DateTime)row.Cells[SCHEDULE_COL_DATE].Value; DateTime time = (DateTime)row.Cells[SCHEDULE_COL_TIME].Value; item.Timestamp = new DateTime(date.Year, date.Month, date.Day, time.Hour, time.Minute, time.Second); break; case SCHEDULE_COL_DEST: item.Destination = (string)row.Cells[SCHEDULE_COL_DEST].Value; break; case SCHEDULE_COL_FILE: item.Filename = (string)row.Cells[SCHEDULE_COL_FILE].Tag; break; } ShowSchedules(); }
private void ScheduleTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { if (_schedulerActive || ScheduleData?.SchedulerList == null) { return; } _schedulerActive = true; DateTime now = DateTime.Now; //bool changed = false; for (int i = 0; i < ScheduleData.SchedulerList.Count; i++) { SchedulerItem item = ScheduleData.SchedulerList[i]; if (!item.Active || item.Success || item.Error) { continue; } if (!item.Executable) { item.Error = true; //changed = true; continue; } if (item.Timestamp <= now) { if (item.Retries > 0 && item.LastRetry != null) { // retry after 10 seconds if (Helper.MilliDiff(item.LastRetry.Value) < 10000) { break; } } SchedulerActive = i; Changed?.Invoke(); DoSchedule(item); if (item.Success) { item.Success = true; item.Active = false; SaveScheduler(); Changed?.Invoke(); } else { item.LastRetry = DateTime.Now; item.Retries++; if (item.Retries >= Constants.SCHEDULER_MAX_RETRIES) { item.Error = true; item.Active = false; SaveScheduler(); Changed?.Invoke(); } } SchedulerActive = -1; } } _schedulerActive = false; }
public void DoSchedule(SchedulerItem item) { ScheduleEventArgs args = new ScheduleEventArgs(item); Schedule?.Invoke(args); }