public QueueTopicSubscription CreateTopicSubscription(Topic topic, QueueTopicSubscription subscription) { MessagingRequest request = new MessagingRequest("topics/{topicName}/subscriptions", Method.POST); request.AddUrlSegment("topicName", topic.Name); request.HttpStatusSuccessCodes.Add(200); request.HttpStatusExceptionMap.Add(400, typeof(BadRequestException)); request.HttpStatusSuccessCodes.Add(201); object postObj = new { endpoint_type = "queue", endpoint = new { queue_name = subscription.QueueName } }; if (DebugRequests) { Console.WriteLine("-> " + request.JsonSerializer.Serialize(postObj)); } request.AddBody(postObj); SubscriptionResponse response = client.Execute<SubscriptionResponse>(request); subscription.ID = response.id; subscription.QueueName = response.endpoint.queue_name; return subscription; }
public TopicSubscriptionList GetTopicSubscriptionList(string topicName) { TopicSubscriptionList subList = new TopicSubscriptionList(); MessagingRequest request = new MessagingRequest("topics/{topicName}/subscriptions"); request.AddUrlSegment("topicName", topicName); request.HttpStatusSuccessCodes.Add(200); EntityListResponse<SubscriptionResponse> topicSubscriptionResponse = client.Execute<EntityListResponse<SubscriptionResponse>>(request); foreach (SubscriptionResponse tmpSubscription in topicSubscriptionResponse.items) { if (tmpSubscription.endpoint_type.ToLower() == "http") { HttpTopicSubscription sub = new HttpTopicSubscription(); sub.ID = tmpSubscription.id; sub.Body = tmpSubscription.endpoint.body; sub.URL = tmpSubscription.endpoint.url; sub.Headers = tmpSubscription.endpoint.headers; sub.Parameters = tmpSubscription.endpoint.@params; switch (tmpSubscription.endpoint.method.ToUpper()) { case "POST": sub.HttpMethod = HttpTopicSubscriptionMethod.POST; break; case "GET": sub.HttpMethod = HttpTopicSubscriptionMethod.GET; break; case "PUT": sub.HttpMethod = HttpTopicSubscriptionMethod.PUT; break; } subList.Add(sub); } else if (tmpSubscription.endpoint_type.ToLower() == "queue") { QueueTopicSubscription sub = new QueueTopicSubscription(); sub.ID = tmpSubscription.id; sub.QueueName = tmpSubscription.endpoint.queue_name; subList.Add(sub); } } return subList; }