/// <summary>
            /// Visits a feed item.
            /// </summary>
            /// <param name="feed">The feed to visit.</param>
            protected override ODataPayloadElement VisitFeed(ODataFeed feed)
            {
                ODataPayloadElement payloadElement = base.VisitFeed(feed);
                ODataFeedPayloadOrderObjectModelAnnotation payloadOrderFeedAnnotation = feed.GetAnnotation <ODataFeedPayloadOrderObjectModelAnnotation>();

                if (payloadOrderFeedAnnotation != null)
                {
                    PayloadOrderODataPayloadElementAnnotation payloadOrderElementAnnotation = new PayloadOrderODataPayloadElementAnnotation();
                    payloadOrderElementAnnotation.PayloadItems.AddRange(payloadOrderFeedAnnotation.PayloadItems);
                    payloadElement.Add(payloadOrderElementAnnotation);
                }

                return(payloadElement);
            }
            /// <summary>
            /// Adds all properties found on a feed to the payload order items.
            /// </summary>
            /// <param name="entry">The feed to inspect.</param>
            /// <param name="payloadOrderItems">The payload order items to add to, or null, if nothing should be done.</param>
            private static void AddFeedPayloadOrderItems(ODataFeed feed, ODataFeedPayloadOrderObjectModelAnnotation payloadOrderItems)
            {
                if (payloadOrderItems == null) return;

                if (feed.Id != null) payloadOrderItems.AddFeedProperty("Id");
                if (feed.Count != null) payloadOrderItems.AddFeedProperty("Count");
                if (feed.NextPageLink != null) payloadOrderItems.AddFeedProperty("NextPageLink");
            }