using System;
using System.Linq;
using System.Runtime.Serialization;
using System.Threading;
using Telerik.Sitefinity.Abstractions;
using Telerik.Sitefinity.Scheduling;
using Telerik.Sitefinity.Utilities.Json;
using Telerik.Sitefinity.Data;

namespace SF142
{
    public partial class SampleScheduledTask : ScheduledTask
    {
        private bool ShouldStopExecution()
        {
            const string MyScheduledTaskName = "SitefinityWebApp.MyScheduledTask"; // change with your actual task name
            var transactionName = Guid.NewGuid().ToString();
            var schedulingManager = ManagerBase.GetManagerInTransaction(typeof(SchedulingManager), "OASchedulingProvider", transactionName) as SchedulingManager;
	        ScheduledTaskData taskData = schedulingManager.GetTaskData(this.Id);
            return taskData == null || taskData.Status == Telerik.Sitefinity.Scheduling.Model.TaskStatus.Stopped;
        }
    }
}