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 };
}