Пример #1
0
 private void deleteTask(IScheduleInstaller si)
 {
     si.deleteTaskAndTriggers();
     taskInstalled = false;
     setLine1("Tasks removed");
     buttonRfTS.Text = "Install Task";
 }
Пример #2
0
        private void buttonRemoveTasks_Click(object sender, EventArgs e)
        {
            Schedule           schedule = new Schedule(conf);
            IScheduleInstaller si       = getScheduleInstaller(schedule);

            deleteTask(si);
        }
Пример #3
0
        private void buttonRfTS_Click(object sender, EventArgs e)
        {
            Schedule           schedule = new Schedule(conf);
            IScheduleInstaller si       = getScheduleInstaller(schedule);

            deleteTask(si);
            createTask(si);
            getLatest(schedule);
        }
Пример #4
0
        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();
            }
        }
Пример #5
0
        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";
            }
        }
Пример #6
0
        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();
            }
        }