private void deleteTask(IScheduleInstaller si) { si.deleteTaskAndTriggers(); taskInstalled = false; setLine1("Tasks removed"); buttonRfTS.Text = "Install Task"; }
private void buttonRemoveTasks_Click(object sender, EventArgs e) { Schedule schedule = new Schedule(conf); IScheduleInstaller si = getScheduleInstaller(schedule); deleteTask(si); }
private void buttonRfTS_Click(object sender, EventArgs e) { Schedule schedule = new Schedule(conf); IScheduleInstaller si = getScheduleInstaller(schedule); deleteTask(si); createTask(si); getLatest(schedule); }
private void createTask(IScheduleInstaller si) { string progPath = "\"" + System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName + "\""; string arguments = "once"; if (conf.SettingsPath != conf.DefaultSettingsPath) { arguments = arguments + " \"" + conf.SettingsPath + "\""; } taskInstalled = si.installTask(progPath, arguments); if (taskInstalled) { si.runTask(); } }
private async void OnLoad(object sender, EventArgs e) { Version version = System.Reflection.Assembly.GetEntryAssembly().GetName().Version; Text = Text + " " + version.ToString(); Schedule schedule = new Schedule(conf); fetcher.listenForTerseMessages(new TerseMessageDelegate(setLine1)); fetcher.listenForChattyMessages(new ChattyMessageDelegate(setLine1)); fetcher.listenForEditionStatus(new ShowEditionStatusDelegate(setLine2)); if (conf.RunInForeground) { buttonRfTS.Visible = false; buttonRemoveTasks.Visible = false; buttonExitOrStart.Text = "Start"; buttonExitOrStart.Visible = false; await getLatest(schedule); await fetcher.republish(); while (true) { DateTime bc = await fetcher.fetchAndPublish(DateTime.UtcNow); // wait until after broadcast date before trying for next edition await fetcher.waitUntil(bc); } } else { IScheduleInstaller si = getScheduleInstaller(schedule); taskInstalled = si.IsInstalled; if (taskInstalled) { buttonRfTS.Text = "Update Task Scheduler"; } else { buttonRfTS.Text = "Install Task"; } buttonExitOrStart.Text = "Exit"; } }
private async void buttonExitOrStart_Click(object sender, EventArgs e) { if (conf.RunInForeground) { if (taskInstalled) { Schedule schedule = new Schedule(conf); IScheduleInstaller si = getScheduleInstaller(schedule); deleteTask(si); } if (buttonExitOrStart.Text == "Start") { buttonExitOrStart.Text = "Stop"; await fetcher.republish(); while (true) { DateTime bc = await fetcher.fetchAndPublish(DateTime.UtcNow); // wait until after broadcast date before trying for next edition await fetcher.waitUntil(bc); } } else { buttonExitOrStart.Text = "Start"; // TODO cancel await } } else { if (taskInstalled) { MessageBox.Show("Files will be fetched in the background", "BBC Ingest"); } else { MessageBox.Show("No files will be fetched until you update the task scheduler" + "\n or alternatively set to run in the foreground in settings", "BBC Ingest"); } Application.Exit(); } }