示例#1
0
        public void RunService()
        {
            try
            {
                _refreshTokenTimer.Start();

                var publications            = _bulkEmailRepository.GetPublications(_token);
                var publicationOperationIds = new Dictionary <MpBulkEmailPublication, List <string> >();

                foreach (var publication in publications)
                {
                    PullSubscriptionStatusChangesFromThirdParty(publication);

                    var pageViewIds = _bulkEmailRepository.GetPageViewIds(_token, publication.PublicationId);
                    var subscribers = _bulkEmailRepository.GetSubscribers(_token, publication.PublicationId, pageViewIds);

                    var operationIds = CreateAndSendBatches(publication, subscribers);
                    publicationOperationIds.Add(publication, operationIds);
                }

                ProcessSynchronizationResultsWithRetries(publicationOperationIds);
            }
            finally
            {
                _refreshTokenTimer.Stop();
            }
        }