public MessageHandlerResult HandleMessage(Message request)
{
PublishingEvent e = PublishPublishingEvent(request);
Message messageToSendToSender = null;
if (e.Cancel)
{
messageToSendToSender = GetForwardingFailedResponse(request, e.CancellationReason);
}
else
{
Message forwardMessage = GetForwardMessage(request);
bool shouldFowardToSender = SendMessageToRecipients(request, forwardMessage);
if (shouldFowardToSender)
{
messageToSendToSender = forwardMessage;
}
}
return new MessageHandlerResult { Message = messageToSendToSender, CanTreatAsLongPoll = false };
}