コード例 #1
0
        public async Task <ActionResult> CreateSubscriptionWithLabelRuleAsync(string topicKeyName, string subscriptionKeyName, string ruleName, string labelValueForFilter)
        {
            if (ruleName == null || labelValueForFilter == null)
            {
                return(BadRequest("ruleName or labelValueForFilter are mandatory parameters. Check that the request contains these params."));
            }

            if (await _serviceBusService.SubscriptionExistAsync(topicKeyName, subscriptionKeyName))
            {
                var subscription = await _serviceBusService.GetSubscriptionAsync(topicKeyName, subscriptionKeyName);

                return(Ok(subscription));
            }

            var result = await _serviceBusService.CreateSubscriptionWithLabelRuleAsync(topicKeyName, subscriptionKeyName, ruleName, labelValueForFilter);

            await _topicRepository.AddTopicLogAsync(new TopicLog()
            {
                TopicName = topicKeyName, SubscriptionName = subscriptionKeyName, Action = TopicAction.CreateSubscriptionWithRuleBasedOnLabel, Rule = result.Rule
            });

            return(Ok(result));
        }