Example #1
0
        public async Task <SubscriptionDescriptionWithRuleDto> CreateSubscriptionWithRuleAsync(string topicName, string subsName, RuleDescription rule)
        {
            var subs = await _managementClient
                       .CreateSubscriptionAsync(topicName, subsName);

            await _managementClient.DeleteRuleAsync(topicName, subsName, RuleDescription.DefaultRuleName);

            await _managementClient.CreateRuleAsync(topicName, subsName, rule);

            _logger.LogInformation($"Created Subscription {subsName} with a Rule named {rule.Name} for Topic {topicName}");

            var correlationFilter  = ((CorrelationFilter)rule.Filter);
            var ruleDescriptionDto = new RuleDescriptionDto()
            {
                Name   = rule.Name,
                Filter = new CorrelationFilterDto()
                {
                    Label            = correlationFilter.Label,
                    ContentType      = correlationFilter.ContentType,
                    CorrelationId    = correlationFilter.CorrelationId,
                    MessageId        = correlationFilter.MessageId,
                    ReplyTo          = correlationFilter.ReplyTo,
                    ReplyToSessionId = correlationFilter.ReplyToSessionId,
                    SessionId        = correlationFilter.SessionId,
                    To = correlationFilter.To
                }
            };

            return(new SubscriptionDescriptionWithRuleDto(subs, ruleDescriptionDto));
        }
Example #2
0
 public SubscriptionDescriptionWithRuleDto(SubscriptionDescription subscriptionDescription, RuleDescriptionDto rule) : base(subscriptionDescription)
 {
     Rule = rule;
 }