using System; using System.Workflow.Runtime.Hosting; namespace System.Workflow.Runtime { /// <summary> /// TimerEventSubscription /// Class which represents a timer subscription which a running workflow /// instance creates on timer service for Timer Notification. /// </summary> [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 /// <summary> /// Specifies the absolute timeout value in UTC format, at which /// workflow expects a notification from SchedulerService. /// </summary> 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() { } /// <summary> /// Creates a TimerEventSubscription for workflow Instance identified by /// workflowInstanceID. /// </summary> /// <param name="workflowInstanceId">WorkflowInstanceId for which this subscription is created.</param> /// <param name="expiresAt"> Time at which timer event should fire.</param> public TimerEventSubscription(Guid workflowInstanceId, DateTime expiresAt) : this(Guid.NewGuid(), workflowInstanceId, expiresAt) { } /// <summary> /// Constructor to create TimerEventSubscription with user provided /// value for timerid which will be SubscriptionId & QueueName of EventSubscription. /// </summary> /// <param name="timerId">SubscriptionId for this subscription, this will be same value as QueueName.</param> /// <param name="workflowInstanceId">WorkflowInstanceId for which this subscription is created.</param> /// <param name="expiresAt"> Time at which timer event should fire.</param> public TimerEventSubscription(Guid timerId, Guid workflowInstanceId, DateTime expiresAt) { this.queueName = timerId; this.workflowInstanceId = workflowInstanceId; this.subscriptionId = timerId; this.expiresAt = expiresAt; } } }