/// <summary> /// Writes the metadata properties for an entry which can only occur at the start. /// </summary> /// <param name="entryState">The entry state for which to write the metadata properties.</param> internal void WriteEntryStartMetadataProperties(IODataJsonLightWriterEntryState entryState) { Debug.Assert(entryState != null, "entryState != null"); ODataEntry entry = entryState.Entry; // Write the "@odata.type": "typename" string typeName = this.JsonLightOutputContext.TypeNameOracle.GetEntryTypeNameForWriting(entryState.GetOrCreateTypeContext(this.Model, this.WritingResponse).ExpectedEntityTypeName, entry); if (typeName != null) { this.ODataAnnotationWriter.WriteODataTypeInstanceAnnotation(typeName); } // Write the "@odata.id": "Entity Id" Uri id; if (entry.MetadataBuilder.TryGetIdForSerialization(out id)) { this.ODataAnnotationWriter.WriteInstanceAnnotationName(ODataAnnotationNames.ODataId); if (id != null && !entry.HasNonComputedId) { id = this.MetadataDocumentBaseUri.MakeRelativeUri(id); } this.JsonWriter.WriteValue(id == null ? null : this.UriToString(id)); } // Write the "@odata.etag": "ETag value" string etag = entry.ETag; if (etag != null) { this.ODataAnnotationWriter.WriteInstanceAnnotationName(ODataAnnotationNames.ODataETag); this.JsonWriter.WriteValue(etag); } }
/// <summary> /// Writes the metadata properties for an entry which can only occur at the start. /// </summary> /// <param name="entryState">The entry state for which to write the metadata properties.</param> internal void WriteEntryStartMetadataProperties(IODataJsonLightWriterEntryState entryState) { Debug.Assert(entryState != null, "entryState != null"); ODataEntry entry = entryState.Entry; // Write the "@odata.type": "typename" string typeName = this.JsonLightOutputContext.TypeNameOracle.GetEntryTypeNameForWriting(entryState.GetOrCreateTypeContext(this.Model, this.WritingResponse).ExpectedEntityTypeName, entry); if (typeName != null) { ODataJsonLightWriterUtils.WriteODataTypeInstanceAnnotation(this.JsonWriter, typeName); } // Write the "@odata.id": "Entity Id" Uri id; if (entry.MetadataBuilder.TryGetIdForSerialization(out id)) { this.JsonWriter.WriteInstanceAnnotationName(ODataAnnotationNames.ODataId); if (id != null && !entry.HasNonComputedId) { id = this.MetadataDocumentBaseUri.MakeRelativeUri(id); } this.JsonWriter.WriteValue(id == null ? null : this.UriToString(id)); } // Write the "@odata.etag": "ETag value" string etag = entry.ETag; if (etag != null) { this.JsonWriter.WriteInstanceAnnotationName(ODataAnnotationNames.ODataETag); this.JsonWriter.WriteValue(etag); } }
/// <summary> /// Writes the metadata properties for an entry which can only occur at the start. /// </summary> /// <param name="entryState">The entry state for which to write the metadata properties.</param> internal void WriteEntryStartMetadataProperties(IODataJsonLightWriterEntryState entryState) { DebugUtils.CheckNoExternalCallers(); Debug.Assert(entryState != null, "entryState != null"); ODataEntry entry = entryState.Entry; // Write the "odata.type": "typename" string typeName = this.JsonLightOutputContext.TypeNameOracle.GetEntryTypeNameForWriting(entryState.GetOrCreateTypeContext(this.Model, this.WritingResponse).ExpectedEntityTypeName, entry); if (typeName != null) { this.JsonWriter.WriteName(ODataAnnotationNames.ODataType); this.JsonWriter.WriteValue(typeName); } // Write the "odata.id": "Entity Id" string id = entry.Id; if (id != null) { this.JsonWriter.WriteName(ODataAnnotationNames.ODataId); this.JsonWriter.WriteValue(id); } // Write the "etag": "ETag value" string etag = entry.ETag; if (etag != null) { this.JsonWriter.WriteName(ODataAnnotationNames.ODataETag); this.JsonWriter.WriteValue(etag); } }