public override async Task WriteObjectAsync(object graph, Type type, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw new ArgumentNullException("messageWriter"); } if (graph != null) { Uri[] uris = GetUris(graph); await messageWriter.WriteEntityReferenceLinksAsync(new ODataEntityReferenceLinks { Links = uris.Select(uri => new ODataEntityReferenceLink { Url = uri }) }); } }
/// <inheridoc /> public override Task WriteObjectAsync(object graph, Type type, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull("messageWriter"); } if (writeContext == null) { throw Error.ArgumentNull("writeContext"); } if (graph != null) { ODataEntityReferenceLinks entityReferenceLinks = GetEntityReferenceLinks(graph, writeContext); return(messageWriter.WriteEntityReferenceLinksAsync(entityReferenceLinks)); } return(TaskHelpers.Completed()); }
/// <inheridoc /> public override async Task WriteObjectAsync(object graph, Type type, ODataMessageWriter messageWriter, ODataSerializerContext writeContext) { if (messageWriter == null) { throw Error.ArgumentNull(nameof(messageWriter)); } if (writeContext == null) { throw Error.ArgumentNull(nameof(writeContext)); } if (graph != null) { ODataEntityReferenceLinks entityReferenceLinks = graph as ODataEntityReferenceLinks; if (entityReferenceLinks == null) { IEnumerable <Uri> uris = graph as IEnumerable <Uri>; if (uris == null) { throw new SerializationException(Error.Format(SRResources.CannotWriteType, GetType().Name, graph.GetType().FullName)); } entityReferenceLinks = new ODataEntityReferenceLinks { Links = uris.Select(uri => new ODataEntityReferenceLink { Url = uri }) }; if (writeContext.Request != null) { entityReferenceLinks.Count = writeContext.Request.ODataFeature().TotalCount; } } await messageWriter.WriteEntityReferenceLinksAsync(entityReferenceLinks).ConfigureAwait(false); } }