Example #1
0
        private void HandleMessageResult(SubscriberInfo subscriberInfo, ServiceBusMessageStates state, IBrokeredMessage brokeredMessage, string messageBody)
        {
            _logService.Debug("Handling message id '{0}', topic/subscription '{1}', state '{2}', body '{3}' ",
                              brokeredMessage.MessageId, subscriberInfo.SubscriptionPath, state, messageBody);

            switch (state)
            {
            case ServiceBusMessageStates.Complete:
                brokeredMessage.Complete();
                break;

            case ServiceBusMessageStates.Abandon:
                brokeredMessage.Abandon();
                break;

            case ServiceBusMessageStates.DeadLetter:
                brokeredMessage.DeadLetter();
                break;

            case ServiceBusMessageStates.Requeue:
                var scheduledEnqueueTimeUtc = brokeredMessage.ScheduledEnqueueTimeUtc == DateTime.MinValue ? DateTime.UtcNow.AddSeconds(30) : GetDefaultRequeueDateTimeUtc();

                var newBrokeredMessage = new BrokeredMessage(messageBody)
                {
                    ScheduledEnqueueTimeUtc = scheduledEnqueueTimeUtc
                };

                subscriberInfo.TopicClient.Send(newBrokeredMessage);
                brokeredMessage.Complete();
                break;

            default:
                var deadLetterReason = string.Format(
                    "Invalid message state '{0}' for message id '{1}', topic/subscription '{2}': message will be dead-lettered",
                    state, brokeredMessage.MessageId, subscriberInfo.SubscriptionPath);

                _logService.Error(deadLetterReason);

                brokeredMessage.DeadLetter();
                break;
            }

            _logService.Debug("Handled message id '{0}', topic/subscription '{1}', state '{2}', body '{3}' ",
                              brokeredMessage.MessageId, subscriberInfo.SubscriptionPath, state, messageBody);
        }
Example #2
0
 public CandidateUserUpdateSubscriberMock(ServiceBusMessageStates stateToReturn)
 {
     _stateToReturn = stateToReturn;
 }