public bool SdnListBeenUpdated(OfacFeedSubscription ofacFeedSubscription)
        {
            var lastPublicationDate = ofacFeedSubscription.Channel.PubDate.ParsePublicationDate();

            if (!lastPublicationDate.HasValue)
            {
                _logger.Log("lastPublicationDate parsing failed", LogLevel.Error);
                return(false);
            }

            return(_sdnRepository.GetLastUpdateDateTime() < lastPublicationDate);
        }
        public void ProcessNewestSdnItems(OfacFeedSubscription ofacFeedSubscription)
        {
            for (var i = ofacFeedSubscription.Channel.Items.Count - 1; i >= 0; i--)
            {
                var item = ofacFeedSubscription.Channel.Items[i];

                var publicationDate = item.PubDate.ParsePublicationDate();
                if (publicationDate == null || !(publicationDate > _sdnRepository.GetLastUpdateDateTime()))
                {
                    continue;
                }

                var updatedSource = _contentDownloader.DownloadContent(item.Link);

                var addedSdnItems = _contentParser.TryExtractSdnItems(updatedSource, SdnChangeType.Add);
                ExtractAndStoreUpdatedSdnItems(addedSdnItems, (DateTime)publicationDate, SdnChangeType.Add);

                var updatedSdnItems = _contentParser.TryExtractSdnItems(updatedSource, SdnChangeType.Update);
                ExtractAndStoreUpdatedSdnItems(updatedSdnItems, (DateTime)publicationDate, SdnChangeType.Update);

                var removedSdnItems = _contentParser.TryExtractSdnItems(updatedSource, SdnChangeType.Remove);
                ExtractAndStoreUpdatedSdnItems(removedSdnItems, (DateTime)publicationDate, SdnChangeType.Remove);
            }
        }