private void Ensure() { if (!TopicExists()) { var request = new CreateTopicRequest(); request.Name = TopicName; var response = _snsClient.CreateTopic(request); TopicArn = response.TopicArn; } if (!string.IsNullOrEmpty(SubscriptionName)) { _queueClient = new QueueClient(SubscriptionName); if (!SubscriptionExists()) { var response = _snsClient.Subscribe(new SubscribeRequest { TopicArn = TopicArn, Protocol = "sqs", Endpoint = _queueClient.QueueArn }); _subscriptionArn = response.SubscriptionArn; var attrRequest = new SetSubscriptionAttributesRequest { AttributeName = "RawMessageDelivery", AttributeValue = "true", SubscriptionArn = _subscriptionArn }; _snsClient.SetSubscriptionAttributes(attrRequest); _queueClient.AllowSnsToSendMessages(this); } } }
private void CreateSubscriptionInSnS(string email, int stationId) { Console.WriteLine("Starting creation of SnS Subscription..."); Console.WriteLine(string.Format("Input parameters: email: {0}, stationId: {1}", email, stationId)); SubscribeRequest request = new SubscribeRequest(SnSTopic, "email", email); var response = snsClient.Subscribe(request); string filterPolicyString = string.Format("{\"stationId\":[\"{0}\"]}", stationId); SetSubscriptionAttributesRequest attributeRequest = new SetSubscriptionAttributesRequest(response.SubscriptionArn, "FilterPolicy", filterPolicyString); snsClient.SetSubscriptionAttributes(attributeRequest); }