public MessageHandlerResult HandleMessage(Message request)
{
IClient client = clientRepository.GetByID(request.clientId);
ICancellableEvent subscribingEvent = PublishSubscribingEvent(request, client);
if (subscribingEvent.Cancel)
{
Message subscriptionFailedResponse = GetSubscriptionFailedResponse(request, subscribingEvent.CancellationReason);
return new MessageHandlerResult { Message = subscriptionFailedResponse, CanTreatAsLongPoll = false };
}
client.SubscribeTo(request.subscription);
PublishSubscribedEvent(request, client);
return new MessageHandlerResult { Message = GetSubscriptionSucceededResponse(request), CanTreatAsLongPoll = false };
}