Esempio n. 1
0
        public MessageHandlerResult HandleMessage(Message request)
        {
            Client client = clientRepository.GetByID(request.clientId);

            client.UnsubscribeFrom(request.subscription);

            var e = new UnsubscribedEvent(client, request.subscription);

            EventHub.Publish(e);

            Message[] message =
            {
                new Message
                {
                    id           = request.id,
                    channel      = request.channel,
                    successful   = true,
                    clientId     = client.ID,
                    subscription = request.subscription
                }
            };
            return(new MessageHandlerResult
            {
                Message = message,
                ShouldWait = false
            });
        }
        private bool UnsubscribeClientAndPublishEvent(string clientId, string subscription)
        {
            IClient client = clientRepository.GetByID(clientId);

            if (client == null || !client.IsSubscribedTo(subscription))
            {
                return(false);
            }

            client.UnsubscribeFrom(subscription);

            UnsubscribedEvent e = new UnsubscribedEvent(client, subscription);

            EventHub.Publish(e);

            return(true);
        }