public SubscriptionService(IResourceCounter resourceCounter, IAmazonSnsFacade amazonSnsFacade, IAmazonSqsFacade amazonSqsFacade, ISubscriberRepository subscriberRespoitroy, QueuePoller queuePoller)
        {
            Validate.That(resourceCounter).IsNotNull();
            Validate.That(amazonSnsFacade).IsNotNull();
            Validate.That(amazonSqsFacade).IsNotNull();
            Validate.That(queuePoller).IsNotNull();
            Validate.That(subscriberRespoitroy).IsNotNull();

            this.resourceCounter      = resourceCounter;
            this.amazonSnsFacade      = amazonSnsFacade;
            this.amazonSqsFacade      = amazonSqsFacade;
            this.subscriberRespoitroy = subscriberRespoitroy;
            this.queuePoller          = queuePoller;
        }
        public SubscriptionService(IResourceCounter resourceCounter, IAmazonSnsFacade amazonSnsFacade, IAmazonSqsFacade amazonSqsFacade, ISubscriberRepository subscriberRespoitroy, QueuePoller queuePoller)
        {
            Validate.That(resourceCounter).IsNotNull();
            Validate.That(amazonSnsFacade).IsNotNull();
            Validate.That(amazonSqsFacade).IsNotNull();
            Validate.That(queuePoller).IsNotNull();
            Validate.That(subscriberRespoitroy).IsNotNull();

            this.resourceCounter = resourceCounter;
            this.amazonSnsFacade = amazonSnsFacade;
            this.amazonSqsFacade = amazonSqsFacade;
            this.subscriberRespoitroy = subscriberRespoitroy;
            this.queuePoller = queuePoller;
        }
        public SubscriptionService(IResourceCounter resourceCounter, IAmazonSnsFacade amazonSnsFacade,
                                   IAmazonSqsFacade amazonSqsFacade, ISubscriberRepository subscriberRespoitroy, QueuePoller queuePoller)
        {
            resourceCounter.Requires("resourceCounter").IsNotNull();
            amazonSnsFacade.Requires("amazonSnsFacade").IsNotNull();
            amazonSqsFacade.Requires("amazonSqsFacade").IsNotNull();
            queuePoller.Requires("queuePoller").IsNotNull();
            subscriberRespoitroy.Requires("subscriberRespoitroy").IsNotNull();

            this.resourceCounter      = resourceCounter;
            this.amazonSnsFacade      = amazonSnsFacade;
            this.amazonSqsFacade      = amazonSqsFacade;
            this.subscriberRespoitroy = subscriberRespoitroy;
            this.queuePoller          = queuePoller;
        }
        public SubscriptionService(IResourceCounter resourceCounter, IAmazonSnsFacade amazonSnsFacade,
            IAmazonSqsFacade amazonSqsFacade, ISubscriberRepository subscriberRespoitroy, QueuePoller queuePoller)
        {
            resourceCounter.Requires("resourceCounter").IsNotNull();
            amazonSnsFacade.Requires("amazonSnsFacade").IsNotNull();
            amazonSqsFacade.Requires("amazonSqsFacade").IsNotNull();
            queuePoller.Requires("queuePoller").IsNotNull();
            subscriberRespoitroy.Requires("subscriberRespoitroy").IsNotNull();

            this.resourceCounter = resourceCounter;
            this.amazonSnsFacade = amazonSnsFacade;
            this.amazonSqsFacade = amazonSqsFacade;
            this.subscriberRespoitroy = subscriberRespoitroy;
            this.queuePoller = queuePoller;
        }