internal async Task <Response <Stream> > AddRelationshipAsync( string id, string relationshipId, Stream relationship, CreateRelationshipOptions digitalTwinsAddRelationshipOptions = null, CancellationToken cancellationToken = default) { if (id == null) { throw new ArgumentNullException(nameof(id)); } if (relationshipId == null) { throw new ArgumentNullException(nameof(relationshipId)); } if (relationship == null) { throw new ArgumentNullException(nameof(relationship)); } using HttpMessage message = CreateAddRelationshipRequest(id, relationshipId, relationship, digitalTwinsAddRelationshipOptions); await _pipeline.SendAsync(message, cancellationToken).ConfigureAwait(false); switch (message.Response.Status) { case 200: { Stream value = message.ExtractResponseContent(); return(Response.FromValue(value, message.Response)); } default: throw await _clientDiagnostics.CreateRequestFailedExceptionAsync(message.Response).ConfigureAwait(false); } }
public Response <Stream> AddRelationship( string id, string relationshipId, Stream relationship, CreateRelationshipOptions digitalTwinsAddRelationshipOptions = null, CancellationToken cancellationToken = default) { if (id == null) { throw new ArgumentNullException(nameof(id)); } if (relationshipId == null) { throw new ArgumentNullException(nameof(relationshipId)); } if (relationship == null) { throw new ArgumentNullException(nameof(relationship)); } using var message = CreateAddRelationshipRequest(id, relationshipId, relationship, digitalTwinsAddRelationshipOptions); _pipeline.Send(message, cancellationToken); switch (message.Response.Status) { case 200: { Stream value = message.ExtractResponseContent(); return(Response.FromValue(value, message.Response)); } default: throw _clientDiagnostics.CreateRequestFailedException(message.Response); } }
internal HttpMessage CreateAddRelationshipRequest(string id, string relationshipId, object relationship, CreateRelationshipOptions digitalTwinsAddRelationshipOptions) { var message = _pipeline.CreateMessage(); var request = message.Request; request.Method = RequestMethod.Put; var uri = new RawRequestUriBuilder(); uri.Reset(endpoint); uri.AppendPath("/digitaltwins/", false); uri.AppendPath(id, true); uri.AppendPath("/relationships/", false); uri.AppendPath(relationshipId, true); uri.AppendQuery("api-version", apiVersion, true); request.Uri = uri; if (digitalTwinsAddRelationshipOptions?.Traceparent != null) { request.Headers.Add("traceparent", digitalTwinsAddRelationshipOptions.Traceparent); } if (digitalTwinsAddRelationshipOptions?.Tracestate != null) { request.Headers.Add("tracestate", digitalTwinsAddRelationshipOptions.Tracestate); } request.Headers.Add("If-None-Match", "*"); request.Headers.Add("Content-Type", "application/json"); request.Headers.Add("Accept", "application/json"); var content = new Utf8JsonRequestContent(); content.JsonWriter.WriteObjectValue(relationship); request.Content = content; return(message); }