private static ODataMediaTypeFormatter CreateMetadataFormatter() { ODataMediaTypeFormatter formatter = CreateFormatterWithoutMediaTypes( ODataPayloadKind.MetadataDocument); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationXml)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJson)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataMinimalMetadataStreamingTrue)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataMinimalMetadataStreamingFalse)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataMinimalMetadata)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataFullMetadataStreamingTrue)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataFullMetadataStreamingFalse)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataFullMetadata)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataNoMetadataStreamingTrue)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataNoMetadataStreamingFalse)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataNoMetadata)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonStreamingTrue)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonStreamingFalse)); formatter.AddDollarFormatQueryStringMappings(); formatter.AddQueryStringMapping(DollarFormat, XmlFormat, ODataMediaTypes.ApplicationXml); formatter.AddQueryStringMapping(DollarFormat, JsonFormat, ODataMediaTypes.ApplicationJson); return(formatter); }
private static ODataMediaTypeFormatter CreateApplicationJson() { ODataMediaTypeFormatter formatter = CreateFormatterWithoutMediaTypes( ODataPayloadKind.ResourceSet, ODataPayloadKind.Resource, ODataPayloadKind.Property, ODataPayloadKind.EntityReferenceLink, ODataPayloadKind.EntityReferenceLinks, ODataPayloadKind.Collection, ODataPayloadKind.ServiceDocument, ODataPayloadKind.Error, ODataPayloadKind.Parameter, ODataPayloadKind.Delta); // Add minimal metadata as the first media type so it gets used when the request doesn't // ask for a specific content type formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataMinimalMetadataStreamingTrue)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataMinimalMetadataStreamingFalse)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataMinimalMetadata)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataFullMetadataStreamingTrue)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataFullMetadataStreamingFalse)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataFullMetadata)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataNoMetadataStreamingTrue)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataNoMetadataStreamingFalse)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonODataNoMetadata)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonStreamingTrue)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJsonStreamingFalse)); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationJson)); formatter.AddDollarFormatQueryStringMappings(); formatter.AddQueryStringMapping(DollarFormat, JsonFormat, ODataMediaTypes.ApplicationJson); return(formatter); }
private static ODataMediaTypeFormatter CreateFormatterWithoutMediaTypes(params ODataPayloadKind[] payloadKinds) { ODataMediaTypeFormatter formatter = new ODataMediaTypeFormatter(payloadKinds); AddSupportedEncodings(formatter); return(formatter); }
private static void AddDollarFormatQueryStringMappings(this ODataMediaTypeFormatter formatter) { ICollection <MediaTypeHeaderValue> supportedMediaTypes = formatter.SupportedMediaTypes; foreach (MediaTypeHeaderValue supportedMediaType in supportedMediaTypes) { QueryStringMediaTypeMapping mapping = new QueryStringMediaTypeMapping(DollarFormat, supportedMediaType); formatter.MediaTypeMappings.Add(mapping); } }
private static ODataMediaTypeFormatter CreateRawValue() { ODataMediaTypeFormatter formatter = CreateFormatterWithoutMediaTypes(ODataPayloadKind.Value); formatter.MediaTypeMappings.Add(new ODataPrimitiveValueMediaTypeMapping()); formatter.MediaTypeMappings.Add(new ODataEnumValueMediaTypeMapping()); formatter.MediaTypeMappings.Add(new ODataBinaryValueMediaTypeMapping()); formatter.MediaTypeMappings.Add(new ODataCountMediaTypeMapping()); return(formatter); }
// To factor out request, just pass in a function to get base address. We'd get rid of // BaseAddressFactory and request. private Uri GetBaseAddressInternal(HttpRequestMessage request) { if (BaseAddressFactory != null) { return(BaseAddressFactory(request)); } else { return(ODataMediaTypeFormatter.GetDefaultBaseAddress(request)); } }
private static ODataMediaTypeFormatter CreateApplicationXml() { ODataMediaTypeFormatter formatter = CreateFormatterWithoutMediaTypes( ODataPayloadKind.MetadataDocument); formatter.SupportedMediaTypes.Add(MediaTypeHeaderValue.Parse(ODataMediaTypes.ApplicationXml)); formatter.AddDollarFormatQueryStringMappings(); formatter.AddQueryStringMapping(DollarFormat, XmlFormat, ODataMediaTypes.ApplicationXml); return(formatter); }
/// <summary> /// Initializes a new instance of the <see cref="ODataMediaTypeFormatter"/> class. /// </summary> /// <param name="formatter">The <see cref="ODataMediaTypeFormatter"/> to copy settings from.</param> /// <param name="request">The <see cref="HttpRequestMessage"/> for the per-request formatter instance.</param> /// <remarks>This is a copy constructor to be used in <see cref="GetPerRequestFormatterInstance"/>.</remarks> internal ODataMediaTypeFormatter(ODataMediaTypeFormatter formatter, HttpRequestMessage request) : base(formatter) { if (request == null) { throw Error.ArgumentNull("request"); } Contract.Assert(formatter._payloadKinds != null); // Parameter 1: formatter // Except for the other two parameters, this constructor is a copy constructor, and we need to copy // everything on the other instance. _payloadKinds = formatter._payloadKinds; // Parameter 2: request Request = request; BaseAddressFactory = formatter.BaseAddressFactory; }