using System; using System.Workflow.Runtime.Hosting; namespace System.Workflow.Runtime { /// /// TimerEventSubscription /// Class which represents a timer subscription which a running workflow /// instance creates on timer service for Timer Notification. /// [Serializable] [Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")] public class TimerEventSubscription { #region Data DateTime expiresAt; Guid subscriptionId; Guid workflowInstanceId; IComparable queueName; #endregion /// /// Specifies the absolute timeout value in UTC format, at which /// workflow expects a notification from SchedulerService. /// public virtual DateTime ExpiresAt { get { return this.expiresAt; } } //A Unique id for this subscription. It is needed because //QueueName is not always guaranteed to be Unique. //Needed in case of Multiple Subscription on Same Queue public virtual Guid SubscriptionId { get { return this.subscriptionId; } } public virtual IComparable QueueName { get { return this.queueName; } protected set { this.queueName = value; } } public virtual Guid WorkflowInstanceId { get { return this.workflowInstanceId; } } //Used only when providing specialized implementation. protected TimerEventSubscription() { } /// /// Creates a TimerEventSubscription for workflow Instance identified by /// workflowInstanceID. /// /// WorkflowInstanceId for which this subscription is created. /// Time at which timer event should fire. public TimerEventSubscription(Guid workflowInstanceId, DateTime expiresAt) : this(Guid.NewGuid(), workflowInstanceId, expiresAt) { } /// /// Constructor to create TimerEventSubscription with user provided /// value for timerid which will be SubscriptionId & QueueName of EventSubscription. /// /// SubscriptionId for this subscription, this will be same value as QueueName. /// WorkflowInstanceId for which this subscription is created. /// Time at which timer event should fire. public TimerEventSubscription(Guid timerId, Guid workflowInstanceId, DateTime expiresAt) { this.queueName = timerId; this.workflowInstanceId = workflowInstanceId; this.subscriptionId = timerId; this.expiresAt = expiresAt; } } }