Beispiel #1
0
        public bool SetSubscriberStatus(string token, MpBulkEmailSubscriberOpt subscriberOpt)
        {
            var searchString        = string.Format(",\"{0}\",,,,,,,\"{1}\"", subscriberOpt.PublicationID, subscriberOpt.EmailAddress);
            var contactPublications = _ministryPlatformService.GetPageViewRecords(_segmentationBasePageViewId, token, searchString);

            // do not update if there is no corresponding subscriber -- this may be handled in a future story
            if (contactPublications.Count == 0)
            {
                return(true);
            }

            var contactPublication   = contactPublications.SingleOrDefault();
            var contactPublicationID = contactPublication.ToString("Contact_Publication_ID");

            bool isUnsubscribed = (subscriberOpt.Status == "unsubscribed" ? true : false);

            Dictionary <string, object> subscriberOptDict = new Dictionary <string, object>
            {
                { "Contact_Publication_ID", contactPublicationID },
                { "Unsubscribed", isUnsubscribed }
            };

            _ministryPlatformService.UpdateRecord(_subscribersBasePageViewId, subscriberOptDict, token);

            return(isUnsubscribed);
        }
        public void ShouldHandlePendingSync()
        {
            var token        = "a1b2c3d4e5f6g7h8";
            var unsubscribed = false;

            var contactPublications = GenerateContactPublications(1);

            MpBulkEmailSubscriberOpt bulkEmailSubscriberOpt = new MpBulkEmailSubscriberOpt
            {
                EmailAddress       = "*****@*****.**",
                PublicationID      = 1,
                Status             = "pending",
                ThirdPartySystemID = "a1b2c3d4"
            };

            var segmentationPageId = Convert.ToInt32(ConfigurationManager.AppSettings["SegmentationBasePageViewId"]);

            _ministryPlatformService.Setup(mocked => mocked.GetPageViewRecords(segmentationPageId, It.IsAny <string>(), It.IsAny <string>(), "", 0)).Returns(contactPublications);

            var result = _fixture.SetSubscriberStatus(token, bulkEmailSubscriberOpt);

            Assert.AreEqual(result, unsubscribed);
        }