public async void Feed(Message message) { if (message.LeadScoreConditionType == (int)LeadScoreConditionType.WorkflowActivated) { IEnumerable <Message> messages = await loadWorkflow((short)message.EntityId, message.AccountId); client.Complete(message.LockToken); foreach (var feedMessage in messages) { blockingCollection.Add(feedMessage); } } else if (message.LeadScoreConditionType == (int)LeadScoreConditionType.WorkflowInactive || message.LeadScoreConditionType == (int)LeadScoreConditionType.WorkflowPaused) { AutomationWorkflow workflow = null; bool result = automationWorkflows.TryRemove(message.EntityId, out workflow); if (message.ConditionValue != null && message.ConditionValue.Equals("delayed") && message.ConditionValue.Equals("delayed")) { workflowService.DeactivateWorkflow(new DeactivateWorkflowRequest() { WorkflowId = message.EntityId }); } if (result && workflow != null) { client.Complete(message.LockToken); } } else { blockingCollection.Add(message); } }