public void ToString_WritesHeaderValue(dynamic input, string expected)
        {
            LinkHeaderValue link = new LinkHeaderValue(input.Address);

            link.Rel       = input.Rel;
            link.Rev       = input.Rev;
            link.Title     = input.Title;
            link.TitleStar = input.TitleStar;

            string actual = link.ToString();

            Assert.Equal(expected, actual);
        }
        protected LinkHeaderValue(LinkHeaderValue source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            this.address = source.address;

            if (source.parameters != null)
            {
                foreach (var parameter in source.parameters)
                {
                    this.Parameters.Add((NameValueHeaderValue)((ICloneable)parameter).Clone());
                }
            }
        }
        protected LinkHeaderValue(LinkHeaderValue source)
        {
            if (source == null)
            {
                throw new ArgumentNullException("source");
            }

            this.address = source.address;

            if (source.parameters != null)
            {
                foreach (var parameter in source.parameters)
                {
                    this.Parameters.Add((NameValueHeaderValue)((ICloneable)parameter).Clone());
                }
            }
        }
        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 void ToString_WritesHeaderValue(dynamic input, string expected)
        {
            LinkHeaderValue link = new LinkHeaderValue(input.Address);
            link.Rel = input.Rel;
            link.Rev = input.Rev;
            link.Title = input.Title;
            link.TitleStar = input.TitleStar;

            string actual = link.ToString();
            Assert.Equal(expected, actual);
        }
 public LinkHeaderTests()
 {
     this.header = new LinkHeaderValue(this.address);
 }
 public LinkHeaderTests()
 {
     this.header = new LinkHeaderValue(this.address);
 }