public MessageHandlerResult HandleMessage(Message request) { IClient client = CreateClient(); HandshakingEvent handshakingEvent = new HandshakingEvent(client, request); EventHub.Publish(handshakingEvent); if (handshakingEvent.Cancel) { return new MessageHandlerResult { Message = GetFailedHandshakeResponse(request, handshakingEvent.CancellationReason, handshakingEvent.Retry), CanTreatAsLongPoll = false }; } this.clientWorkflowManager.RegisterClient(client); HandshakenEvent handshakenEvent = new HandshakenEvent(client); EventHub.Publish(handshakenEvent); return new MessageHandlerResult { Message = GetSuccessfulResponse(request, client), CanTreatAsLongPoll = false }; }