Beispiel #1
0
 public static void UseIntegrationEventSubscriptions(this IServiceBusSubscriber subscriber)
 {
     subscriber.Subscribe <ClanMemberAddedIntegrationEvent, ClanMemberAddedIntegrationEventHandler>();
     subscriber.Subscribe <ClanMemberRemovedIntegrationEvent, ClanMemberRemovedIntegrationEventHandler>();
     subscriber.Subscribe <UserGameCredentialAddedIntegrationEvent, UserGameCredentialAddedIntegrationEventHandler>();
     subscriber.Subscribe <UserGameCredentialRemovedIntegrationEvent, UserGameCredentialRemovedIntegrationEventHandler>();
     subscriber.Subscribe <UserStripeCustomerCreatedIntegrationEvent, UserStripeCustomerCreatedIntegrationEventHandler>();
 }
Beispiel #2
0
 public static void UseIntegrationEventSubscriptions(this IServiceBusSubscriber subscriber)
 {
     subscriber.Subscribe <UserCreatedIntegrationEvent, UserCreatedIntegrationEventHandler>();
     subscriber.Subscribe <UserEmailChangedIntegrationEvent, UserEmailChangedIntegrationEventHandler>();
     subscriber.Subscribe <UserPhoneChangedIntegrationEvent, UserPhoneChangedIntegrationEventHandler>();
     subscriber.Subscribe <UserAddressChangedIntegrationEvent, UserAddressChangedIntegrationEventHandler>();
     subscriber.Subscribe <UserProfileChangedIntegrationEvent, UserProfileChangedIntegrationEventHandler>();
 }
Beispiel #3
0
 public OrderSagaParticipant(IServiceBusSubscriber serviceBusSubscriber,
                             IOrderRepository orderRepository,
                             string queue)
 {
     _serviceBusSubscriber = serviceBusSubscriber;
     _queue           = queue;
     _orderRepository = orderRepository;
 }
 public ApplicationServiceBusClient(
     IServiceBusPublisher serviceBusPublisher,
     IServiceBusSubscriber serviceBusSubscriber,
     IServiceBusSubscriberForDeadLetter serviceBusSubscriberForDeadLetter,
     ILogger <ApplicationServiceBusClient> logger)
 {
     _serviceBusPublisher  = serviceBusPublisher;
     _serviceBusSubscriber = serviceBusSubscriber;
     _serviceBusSubscriberForDeadLetter = serviceBusSubscriberForDeadLetter;
     _logger = logger;
 }
Beispiel #5
0
 public TalentechAdminServiceBusClient(
     IServiceBusPublisher serviceBusPublisher,
     IServiceBusSubscriber serviceBusSubscriber,
     IServiceBusSubscriberForDeadLetter serviceBusSubscriberForDeadLetter,
     ILogger <TalentechAdminServiceBusClient> logger)
 {
     _serviceBusPublisher  = serviceBusPublisher;
     _serviceBusSubscriber = serviceBusSubscriber;
     _serviceBusSubscriberForDeadLetter = serviceBusSubscriberForDeadLetter;
     _logger = logger;
 }
 public static void UseIntegrationEventSubscriptions(this IServiceBusSubscriber subscriber)
 {
     subscriber.Subscribe <UserCreatedIntegrationEvent, UserCreatedIntegrationEventHandler>();
     subscriber.Subscribe <UserStripePaymentIntentSucceededIntegrationEvent, UserStripePaymentIntentSucceededIntegrationEventHandler>();
     subscriber.Subscribe <UserStripePaymentIntentPaymentFailedIntegrationEvent, UserStripePaymentIntentPaymentFailedIntegrationEventHandler>();
     subscriber.Subscribe <UserStripePaymentIntentCanceledIntegrationEvent, UserStripePaymentIntentCanceledIntegrationEventHandler>();
     subscriber.Subscribe <UserWithdrawSucceededIntegrationEvent, UserWithdrawSucceededIntegrationEventHandler>();
     subscriber.Subscribe <UserWithdrawFailedIntegrationEvent, UserWithdrawFailedIntegrationEventHandler>();
     subscriber.Subscribe <ChallengeSynchronizedIntegrationEvent, ChallengeSynchronizedIntegrationEventHandler>();
     subscriber.Subscribe <ChallengeParticipantRegisteredIntegrationEvent, ChallengeParticipantRegisteredIntegrationEventHandler>();
 }
        public CreateOrderSagaOrchestrator(ICustomerServiceProxy customerServiceProxy,
                                           IServiceBusSubscriber serviceBusSubscriber,
                                           IOrderRepository orderRepository)
        {
            _customerServiceProxy = customerServiceProxy;
            _orderRepository      = orderRepository;

            base.AddSagaParticipant(new OrderSagaParticipant(
                                        serviceBusSubscriber,
                                        _orderRepository,
                                        "CustomerServiceReply")
                                    );
        }
Beispiel #8
0
 public static void UseIntegrationEventSubscriptions(this IServiceBusSubscriber subscriber)
 {
     subscriber.Subscribe <ChallengeClosedIntegrationEvent, ChallengeClosedIntegrationEventHandler>();
     subscriber.Subscribe <ClanCandidatureSentIntegrationEvent, ClanCandidatureSentIntegrationEventHandler>();
     subscriber.Subscribe <ClanInvitationSentIntegrationEvent, ClanInvitationSentIntegrationEventHandler>();
     subscriber.Subscribe <ClanMemberAddedIntegrationEvent, ClanMemberAddedIntegrationEventHandler>();
     subscriber.Subscribe <ClanMemberRemovedIntegrationEvent, ClanMemberRemovedIntegrationEventHandler>();
     subscriber.Subscribe <UserCreatedIntegrationEvent, UserCreatedIntegrationEventHandler>();
     subscriber.Subscribe <UserDepositFailedIntegrationEvent, UserDepositFailedIntegrationEventHandler>();
     subscriber.Subscribe <UserDepositSucceededIntegrationEvent, UserDepositSucceededIntegrationEventHandler>();
     subscriber.Subscribe <UserGameCredentialAddedIntegrationEvent, UserGameCredentialAddedIntegrationEventHandler>();
     subscriber.Subscribe <UserGameCredentialRemovedIntegrationEvent, UserGameCredentialRemovedIntegrationEventHandler>();
     subscriber.Subscribe <UserWithdrawFailedIntegrationEvent, UserWithdrawFailedIntegrationEventHandler>();
     subscriber.Subscribe <UserWithdrawSucceededIntegrationEvent, UserWithdrawSucceededIntegrationEventHandler>();
     subscriber.Subscribe <UserEmailConfirmationTokenGeneratedIntegrationEvent, UserEmailConfirmationTokenGeneratedIntegrationEventHandler>();
     subscriber.Subscribe <UserPasswordResetTokenGeneratedIntegrationEvent, UserPasswordResetTokenGeneratedIntegrationEventHandler>();
     subscriber.Subscribe <ChallengeParticipantRegisteredIntegrationEvent, ChallengeParticipantRegisteredIntegrationEventHandler>();
     subscriber.Subscribe <ChallengeStartedIntegrationEvent, ChallengeStartedntegrationEventHandler>();
 }
Beispiel #9
0
        private static bool TryGetSubscriberTopicSubscriptionNames(IServiceBusSubscriber <TMessage> subscriber, out string topicName, out string subscriptionName)
        {
            var consumeMethod = subscriber.GetType().GetMethod(ConsumeMethodName);

            var subscriptionAttribute = consumeMethod
                                        .GetCustomAttributes(typeof(ServiceBusTopicSubscriptionAttribute), false)
                                        .SingleOrDefault() as ServiceBusTopicSubscriptionAttribute;

            if (subscriptionAttribute == null)
            {
                topicName        = null;
                subscriptionName = null;

                return(false);
            }

            topicName        = subscriptionAttribute.TopicName;
            subscriptionName = subscriptionAttribute.SubscriptionName;

            return(true);
        }
Beispiel #10
0
 public static IServiceBusSubscriber EnsureTopicSubscriptionEx(this IServiceBusSubscriber serviceBusSubscriber, string topicName, string subscriptionName, CancellationToken cancellationToken)
 {
     serviceBusSubscriber.EnsureTopicSubscription(topicName, subscriptionName, cancellationToken).GetAwaiter().GetResult();
     return(serviceBusSubscriber);
 }
Beispiel #11
0
        private SubscriberInfo SubscribeOne(IServiceBusSubscriber <TMessage> subscriber)
        {
            string topicName;
            string subscriptionName;

            if (!TryGetSubscriberTopicSubscriptionNames(subscriber, out topicName, out subscriptionName))
            {
                throw new InvalidOperationException(string.Format(
                                                        "No subscriber topic/subscription attribute specified for type '{0}'", typeof(TMessage).FullName));
            }

            var serviceBusConfiguration = _configurationService.Get <AzureServiceBusConfiguration>();

            var subscriptionConfiguration = serviceBusConfiguration.Topics
                                            .Where(each => each.TopicName == topicName)
                                            .SelectMany(each => each.Subscriptions)
                                            .FirstOrDefault(each => each.SubscriptionName == subscriptionName);

            if (subscriptionConfiguration == null)
            {
                _logService.Info(
                    "No subscriber configuration found for topic/subscription \"{0}/{1}\", will use default configuration",
                    topicName, subscriptionName);

                subscriptionConfiguration = new AzureServiceBusSubscriptionConfiguration();
            }

            //Ensure topic name is correctly formatted after its configuration has been retrieved
            topicName = _topicNameFormatter.GetTopicName(topicName);

            var subscriptionPath = string.Format("{0}/{1}", topicName, subscriptionConfiguration.SubscriptionName);

            _logService.Info("Subscribing to topic/subscription '{0}'", subscriptionPath);

            var topicClient = _clientFactory.CreateFromConnectionString(
                serviceBusConfiguration.ConnectionString, topicName);

            var options = new OnMessageOptions
            {
                MaxConcurrentCalls =
                    subscriptionConfiguration.MaxConcurrentMessagesPerNode ??
                    serviceBusConfiguration.DefaultMaxConcurrentMessagesPerNode,
                AutoComplete = false
            };

            options.ExceptionReceived += LogSubscriptionClientException;

            var subscriptionClient = _clientFactory.CreateFromConnectionString(
                serviceBusConfiguration.ConnectionString,
                topicName,
                subscriptionConfiguration.SubscriptionName,
                ReceiveMode.PeekLock);

            var subscriberInfo = new SubscriberInfo
            {
                SubscriptionPath   = subscriptionPath,
                TopicClient        = topicClient,
                SubscriptionClient = subscriptionClient,
                Subscriber         = subscriber
            };

            subscriptionClient.OnMessage(brokeredMessage => ConsumeMessage(subscriberInfo, brokeredMessage), options);

            _logService.Info("Subscribed to topic/subscription '{0}' with max of {1} concurrent call(s) per node",
                             subscriptionPath, options.MaxConcurrentCalls);

            return(subscriberInfo);
        }
Beispiel #12
0
 public ReserveCreditEventHandler(IServiceBusPublisher serviceBusPublisher,
                                  IServiceBusSubscriber serviceBusSubscriber)
 {
     _serviceBusPublisher  = serviceBusPublisher;
     _serviceBusSubscriber = serviceBusSubscriber;
 }
 public static void UseIntegrationEventSubscriptions(this IServiceBusSubscriber subscriber)
 {
     subscriber.Subscribe <ChallengeClosedIntegrationEvent, ChallengeClosedIntegrationEventHandler>();
 }