/// <summary>
 /// Processes an event for this workflow
 /// </summary>
 /// <param name="userId">The locutus userId</param>
 /// <param name="workflowEvent"> workflow event to process</param>
 public virtual void OnEvent(string userId, WorkflowEvent workflowEvent)
 {
     if (workflowEvent == null)
     {
         return;
     }
     lock (_eventLock)
     {
         if (workflowEvent.EventType != EventType.Timer && workflowEvent.EventType != EventType.Cancel)
         {
             AddEvent(userId, workflowEvent);
         }
     }
 }
        /// <summary>
        /// Add an event to the event store
        /// </summary>
        /// <param name="userId">The locutus user Id</param>
        /// <param name="workflowEvent">event to add</param>
        private void AddEvent(string userId, WorkflowEvent workflowEvent)
        {

        }
 /// <summary>
 /// Remove the specified event from the event store
 /// </summary>
 /// <param name="locutusUserId">The locutus user Id</param>
 /// <param name="workflowEvent">event to remove</param>
 internal virtual void RemoveEvent(string locutusUserId, WorkflowEvent workflowEvent)
 {
 }
 /// <summary>
 /// Processes an event for this workflow
 /// </summary>
 /// <param name="userId">The locutus userId</param>
 /// <param name="workflowEvent"> workflow event to process</param>
 public virtual void OnEvent(string userId, WorkflowEvent workflowEvent)
 {
     if (workflowEvent == null)
     {
         return;
     }
     lock (_eventLock)
     {
         if (workflowEvent.EventType != EventType.Timer && workflowEvent.EventType != EventType.Cancel)
         {
             AddEvent(userId, workflowEvent);
         }
     }
 }
 /// <summary>
 /// Add an event to the event store
 /// </summary>
 /// <param name="userId">The locutus user Id</param>
 /// <param name="workflowEvent">event to add</param>
 private void AddEvent(string userId, WorkflowEvent workflowEvent)
 {
 }
 /// <summary>
 /// Remove the specified event from the event store
 /// </summary>
 /// <param name="locutusUserId">The locutus user Id</param>
 /// <param name="workflowEvent">event to remove</param>
 internal virtual void RemoveEvent(string locutusUserId, WorkflowEvent workflowEvent)
 {
 }