Inheritance: Google.Api.Ads.AdWords.Lib.AdWordsSoapClient, IFeedMappingService
        /// <summary>
        /// Retrieve an existing feed that is mapped to hold sitelinks. The first
        /// active sitelinks feed is retrieved by this method.
        /// </summary>
        /// <param name="feedMappingService">The feed mapping service.</param>
        /// <returns>A SiteLinksFeed if a feed is found, or null otherwise.</returns>
        private static SiteLinksFeed getExistingFeed(FeedMappingService feedMappingService)
        {
            Selector selector = new Selector();
              selector.fields = new string[] {"FeedId", "FeedMappingId", "PlaceholderType", "Status",
            "AttributeFieldMappings"};

              Predicate placeHolderPredicate = new Predicate();
              placeHolderPredicate.field = "PlaceholderType";
              placeHolderPredicate.@operator = PredicateOperator.EQUALS;
              placeHolderPredicate.values = new string[] {PLACEHOLDER_SITELINKS.ToString()};

              Predicate statusPredicate = new Predicate();
              statusPredicate.field = "Status";
              statusPredicate.@operator = PredicateOperator.EQUALS;
              statusPredicate.values = new string[] {"ACTIVE"};

              selector.predicates = new Predicate[] {placeHolderPredicate, statusPredicate};

              FeedMappingPage page = feedMappingService.get(selector);

              if (page != null && page.entries != null && page.entries.Length > 0) {
            foreach (FeedMapping feedMapping in page.entries) {
              long? feedId = feedMapping.feedId;
              long? textAttributeId = null;
              long? urlAttributeId = null;
              foreach (AttributeFieldMapping attributeMapping in feedMapping.attributeFieldMappings) {
            if (attributeMapping.fieldId == PLACEHOLDER_FIELD_SITELINK_LINK_TEXT) {
              textAttributeId = attributeMapping.feedAttributeId;
            } else if (attributeMapping.fieldId == PLACEHOLDER_FIELD_SITELINK_URL) {
              urlAttributeId = attributeMapping.feedAttributeId;
            }
              }

              if (feedId != null && textAttributeId != null && urlAttributeId != null) {
            SiteLinksFeed siteLinksFeed = new SiteLinksFeed();
            siteLinksFeed.SiteLinksFeedId = feedId.Value;
            siteLinksFeed.LinkTextFeedAttributeId = textAttributeId.Value;
            siteLinksFeed.LinkUrlFeedAttributeId = urlAttributeId.Value;
            return siteLinksFeed;
              }
            }
              }
              return null;
        }
        /// <summary>
        /// Map the feed for use with Sitelinks.
        /// </summary>
        /// <param name="feedMappingService">The feed mapping service.</param>
        /// <param name="siteLinksFeed">The feed for holding sitelinks.</param>
        private static void createSiteLinksFeedMapping(FeedMappingService feedMappingService,
        SiteLinksFeed siteLinksFeed)
        {
            // Map the FeedAttributeIds to the fieldId constants.
              AttributeFieldMapping linkTextFieldMapping = new AttributeFieldMapping();
              linkTextFieldMapping.feedAttributeId = siteLinksFeed.LinkTextFeedAttributeId;
              linkTextFieldMapping.fieldId = PLACEHOLDER_FIELD_SITELINK_LINK_TEXT;
              AttributeFieldMapping linkUrlFieldMapping = new AttributeFieldMapping();
              linkUrlFieldMapping.feedAttributeId = siteLinksFeed.LinkUrlFeedAttributeId;
              linkUrlFieldMapping.fieldId = PLACEHOLDER_FIELD_SITELINK_URL;

              // Create the FieldMapping and operation.
              FeedMapping feedMapping = new FeedMapping();
              feedMapping.placeholderType = PLACEHOLDER_SITELINKS;
              feedMapping.feedId = siteLinksFeed.SiteLinksFeedId;
              feedMapping.attributeFieldMappings =
              new AttributeFieldMapping[] {linkTextFieldMapping, linkUrlFieldMapping};
              FeedMappingOperation operation = new FeedMappingOperation();
              operation.operand = feedMapping;
              operation.@operator = Operator.ADD;

              // Save the field mapping.
              feedMappingService.mutate(new FeedMappingOperation[] {operation});
        }