/// <summary> /// StartPublishing /// </summary> /// <param name="endpointId"></param> /// <param name="nodeId"></param> /// <param name="displayName"></param> /// <param name="samplingInterval"></param> /// <param name="publishingInterval"></param> /// <returns>ErrorStatus</returns> public async Task <bool> StartPublishingAsync(string endpointId, string nodeId, string displayName, TimeSpan?samplingInterval, TimeSpan?publishingInterval, TimeSpan?heartBeatInterval, CredentialModel credential = null) { try { var requestApiModel = new PublishStartRequestApiModel() { Item = new PublishedItemApiModel() { NodeId = nodeId, SamplingInterval = samplingInterval, PublishingInterval = publishingInterval, HeartbeatInterval = heartBeatInterval } }; requestApiModel.Header = Elevate(new RequestHeaderApiModel(), credential); var resultApiModel = await _publisherService.NodePublishStartAsync(endpointId, requestApiModel); return(resultApiModel.ErrorInfo == null); } catch (Exception e) { _logger.Error(e, "Cannot publish node {nodeId} on endpointId '{endpointId}'", nodeId, endpointId); } return(false); }
/// <summary> /// StartPublishing /// </summary> /// <param name="endpointId"></param> /// <param name="nodeId"></param> /// <param name="displayName"></param> /// <param name="samplingInterval"></param> /// <param name="publishingInterval"></param> /// <returns>ErrorStatus</returns> public async Task <bool> StartPublishingAsync(string endpointId, string nodeId, string displayName, int samplingInterval, int publishingInterval, CredentialModel credential = null) { try { var requestApiModel = new PublishStartRequestApiModel() { Item = new PublishedItemApiModel() { NodeId = nodeId, DisplayName = displayName, SamplingInterval = TimeSpan.FromMilliseconds(samplingInterval), PublishingInterval = TimeSpan.FromMilliseconds(publishingInterval) } }; requestApiModel.Header = Elevate(new RequestHeaderApiModel(), credential); var resultApiModel = await _publisherService.NodePublishStartAsync(endpointId, requestApiModel); return(resultApiModel.ErrorInfo == null); } catch (Exception e) { var errorMessage = string.Concat(e.Message, e.InnerException?.Message ?? "--", e?.StackTrace ?? "--"); _logger.Error(errorMessage); } return(false); }
/// <summary> /// Create service model from api model /// </summary> public static PublishStartRequestModel ToServiceModel(this PublishStartRequestApiModel model) { if (model == null) { return(null); } return(new PublishStartRequestModel { Item = model.Item?.ToServiceModel(), Header = model.Header?.ToServiceModel() }); }
public async Task <PublishStartResponseApiModel> StartPublishingValuesAsync( string endpointId, [FromBody][Required] PublishStartRequestApiModel request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var result = await _publisher.NodePublishStartAsync( endpointId, request.ToServiceModel()); return(result.ToApiModel()); }
/// <summary> /// Publish /// </summary> /// <param name="request"></param> /// <returns></returns> public async Task <PublishStartResponseApiModel> PublishStartAsync( PublishStartRequestApiModel request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } var result = await _publisher.NodePublishStartAsync( _twin.Endpoint, request.ToServiceModel()); return(new PublishStartResponseApiModel(result)); }
/// <inheritdoc/> public async Task <PublishStartResponseApiModel> NodePublishStartAsync(string endpointId, PublishStartRequestApiModel content, CancellationToken ct) { if (string.IsNullOrEmpty(endpointId)) { throw new ArgumentNullException(nameof(endpointId)); } if (content == null) { throw new ArgumentNullException(nameof(content)); } if (content.Item == null) { throw new ArgumentNullException(nameof(content.Item)); } var request = _httpClient.NewRequest($"{_serviceUri}/v2/publish/{endpointId}/start", _resourceId); request.SetContent(content); var response = await _httpClient.PostAsync(request, ct).ConfigureAwait(false); response.Validate(); return(response.GetContent <PublishStartResponseApiModel>()); }
/// <summary> /// StartPublishing /// </summary> /// <param name="endpointId"></param> /// <param name="nodeId"></param> /// <param name="samplingInterval"></param> /// <param name="publishingInterval"></param> /// <returns>ErrorStatus</returns> public async Task <bool> StartPublishing(string endpointId, string nodeId, int samplingInterval, int publishingInterval) { try { var requestApiModel = new PublishStartRequestApiModel() { Item = new PublishedItemApiModel() { NodeId = nodeId, SamplingInterval = TimeSpan.FromMilliseconds(samplingInterval), PublishingInterval = TimeSpan.FromMilliseconds(publishingInterval) } }; var resultApiModel = await _publisherService.NodePublishStartAsync(endpointId, requestApiModel); return(resultApiModel.ErrorInfo == null); } catch (Exception e) { var errorMessage = string.Concat(e.Message, e.InnerException?.Message ?? "--", e?.StackTrace ?? "--"); Trace.TraceError(errorMessage); } return(false); }
/// <summary> /// Start publishing node values /// </summary> /// <remarks> /// Start publishing variable node values to IoT Hub. 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 publish request /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <PublishStartResponseApiModel> StartPublishingValuesAsync(this IAzureOpcPublisherClient operations, string endpointId, PublishStartRequestApiModel body, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.StartPublishingValuesWithHttpMessagesAsync(endpointId, body, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Start publishing node values /// </summary> /// <remarks> /// Start publishing variable node values to IoT Hub. 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 publish request /// </param> public static PublishStartResponseApiModel StartPublishingValues(this IAzureOpcPublisherClient operations, string endpointId, PublishStartRequestApiModel body) { return(operations.StartPublishingValuesAsync(endpointId, body).GetAwaiter().GetResult()); }
public async Task <ActionResult> VariablePublishUnpublish(string jstreeNode, string method) { string[] delimiter = { "__$__" }; string[] jstreeNodeSplit = jstreeNode.Split(delimiter, 3, StringSplitOptions.None); string node; string actionResult = ""; string endpointId = Session["EndpointId"].ToString(); if (jstreeNodeSplit.Length == 1) { node = jstreeNodeSplit[0]; } else { node = jstreeNodeSplit[1]; } try { if (method == "unpublish") { PublishStopRequestApiModel publishModel = new PublishStopRequestApiModel(); publishModel.NodeId = node; var data = await TwinService.UnPublishNodeValuesAsync(endpointId, publishModel); if (data.ErrorInfo != null) { actionResult = Strings.BrowserOpcUnPublishFailed + @"<br/><br/>" + Strings.BrowserOpcMethodStatusCode + ": " + data.ErrorInfo.StatusCode; if (data.ErrorInfo.Diagnostics != null) { actionResult += @"<br/><br/>" + Strings.BrowserOpcDataDiagnosticInfoLabel + ": " + data.ErrorInfo.Diagnostics; } } else { actionResult = Strings.BrowserOpcUnPublishSucceeded; } } else { PublishStartRequestApiModel publishModel = new PublishStartRequestApiModel(); PublishedItemApiModel item = new PublishedItemApiModel(); item.NodeId = node; publishModel.Item = item; var data = await TwinService.PublishNodeValuesAsync(endpointId, publishModel); if (data.ErrorInfo != null) { actionResult = Strings.BrowserOpcPublishFailed + @"<br/><br/>" + Strings.BrowserOpcMethodStatusCode + ": " + data.ErrorInfo.StatusCode; if (data.ErrorInfo.Diagnostics != null) { actionResult += @"<br/><br/>" + Strings.BrowserOpcDataDiagnosticInfoLabel + ": " + data.ErrorInfo.Diagnostics; } } else { actionResult = Strings.BrowserOpcPublishSucceeded; } } return(Content(actionResult)); } catch (Exception exception) { return(Content(CreateOpcExceptionActionString(exception))); } }
/// <inheritdoc/> public Task <PublishStartResponseApiModel> NodePublishStartAsync(string endpointId, PublishStartRequestApiModel content, CancellationToken ct) { return(Task.FromException <PublishStartResponseApiModel>(new NotImplementedException())); }
public PublishStartResponseApiModel PublishNodeValues(string endpoint, PublishStartRequestApiModel content) { Task <PublishStartResponseApiModel> t = Task.Run(() => _twinServiceHandler.NodePublishStartAsync(endpoint, content)); return(t.Result); }
public async Task <PublishStartResponseApiModel> PublishNodeValuesAsync(string endpoint, PublishStartRequestApiModel content) { var applications = await _twinServiceHandler.NodePublishStartAsync(endpoint, content).ConfigureAwait(false); return(applications); }