/// <inheritdoc/> public async Task <WriteResponseApiModel> NodeWriteAsync(EndpointApiModel endpoint, WriteRequestApiModel request, CancellationToken ct) { if (endpoint == null) { throw new ArgumentNullException(nameof(endpoint)); } if (string.IsNullOrEmpty(endpoint.Url)) { throw new ArgumentNullException(nameof(endpoint.Url)); } if (request == null) { throw new ArgumentNullException(nameof(request)); } if (request.Attributes == null || request.Attributes.Count == 0) { throw new ArgumentException(nameof(request.Attributes)); } var response = await _methodClient.CallMethodAsync(_deviceId, _moduleId, "NodeWrite_V2", _serializer.SerializeToString(new { endpoint, request }), null, ct); return(_serializer.Deserialize <WriteResponseApiModel>(response)); }
public async Task <WriteResponseApiModel> WriteAttributesAsync( string endpointId, [FromBody][Required] WriteRequestApiModel request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var writeResult = await _nodes.NodeWriteAsync( endpointId, request.ToServiceModel()); return(writeResult.ToApiModel()); }
/// <summary> /// Write attributes /// </summary> /// <param name="endpoint"></param> /// <param name="request"></param> /// <returns></returns> public async Task <WriteResponseApiModel> NodeWriteAsync( EndpointApiModel endpoint, WriteRequestApiModel request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var result = await _nodes.NodeWriteAsync( endpoint.ToServiceModel(), request.ToServiceModel()); return(result.ToApiModel()); }
/// <summary> /// Convert back to service model /// </summary> /// <returns></returns> public static WriteRequestModel ToServiceModel( this WriteRequestApiModel model) { if (model == null) { return(null); } return(new WriteRequestModel { Attributes = model.Attributes? .Select(a => a.ToServiceModel()) .ToList(), Header = model.Header.ToServiceModel() }); }
/// <inheritdoc/> public async Task <WriteResponseApiModel> NodeWriteAsync(string endpointId, WriteRequestApiModel content, CancellationToken ct) { if (string.IsNullOrEmpty(endpointId)) { throw new ArgumentNullException(nameof(endpointId)); } if (content == null) { throw new ArgumentNullException(nameof(content)); } if (content.Attributes == null || content.Attributes.Count == 0) { throw new ArgumentException(nameof(content.Attributes)); } var request = _httpClient.NewRequest( $"{_serviceUri}/v2/write/{endpointId}/attributes", _resourceId); request.SetContent(content); var response = await _httpClient.PostAsync(request, ct).ConfigureAwait(false); response.Validate(); return(response.GetContent <WriteResponseApiModel>()); }
/// <summary> /// Write node attributes /// </summary> /// <remarks> /// Write any attribute of a node. The endpoint must be activated and connected /// and the module client and server must trust each other. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='endpointId'> /// The identifier of the activated endpoint. /// </param> /// <param name='body'> /// The batch write request /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <WriteResponseApiModel> WriteAttributesAsync(this IAzureOpcTwinClient operations, string endpointId, WriteRequestApiModel body, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.WriteAttributesWithHttpMessagesAsync(endpointId, body, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Write node attributes /// </summary> /// <remarks> /// Write any attribute of a node. The endpoint must be activated and connected /// and the module client and server must trust each other. /// </remarks> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='endpointId'> /// The identifier of the activated endpoint. /// </param> /// <param name='body'> /// The batch write request /// </param> public static WriteResponseApiModel WriteAttributes(this IAzureOpcTwinClient operations, string endpointId, WriteRequestApiModel body) { return(operations.WriteAttributesAsync(endpointId, body).GetAwaiter().GetResult()); }
/// <inheritdoc/> public Task <WriteResponseApiModel> NodeWriteAsync(string endpointId, WriteRequestApiModel content, CancellationToken ct) { return(Task.FromException <WriteResponseApiModel>(new NotImplementedException())); }
/// <summary> /// Write node attributes on endpoint /// </summary> /// <param name="api"></param> /// <param name="endpointUrl"></param> /// <param name="request"></param> /// <param name="ct"></param> /// <returns></returns> public static Task <WriteResponseApiModel> NodeWriteAsync( this ITwinModuleApi api, string endpointUrl, WriteRequestApiModel request, CancellationToken ct = default) { return(api.NodeWriteAsync(NewEndpoint(endpointUrl), request, ct)); }