public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            if (actionExecutedContext == null)
            {
                throw new ArgumentNullException("actionExecutedContext");
            }

            HttpRequestMessage request = actionExecutedContext.Request;
            if (request == null)
            {
                throw new InvalidOperationException(TResources.ParameterNull.FormatForUser("Request"));
            }

            HttpResponseMessage response = actionExecutedContext.Response;
            if (response == null)
            {
                return;
            }

            long? count = request.ODataProperties().TotalCount;
            IQueryable queryableResults = null;
            if (count.HasValue && response.TryGetContentValue(out queryableResults))
            {
                // Client has requested an inline count, so the actual response content will contain
                // the query results as well as the count. Create a new ObjectContent for the query results.
                QueryResult queryResult = new QueryResult(queryableResults, count);
                MediaTypeFormatter formatter = ((ObjectContent)response.Content).Formatter;
                response.Content = new ObjectContent<QueryResult>(queryResult, formatter);
            }

            AddETagResponseHeader(response);

            Uri nextAddr = request.ODataProperties().NextLink;
            if (nextAddr != null)
            {
                LinkHeaderValue nextLink = new LinkHeaderValue(nextAddr) { Rel = "next" };
                response.Headers.Add("Link", nextLink.ToString());
            }
        }
 public QueryResultTests()
 {
     this.count = Int64.MaxValue;
     this.results = new List<int>() { 1, 2, 3 };
     this.queryResult = new QueryResult(this.results, this.count);
 }