/// <summary> /// Publish a node /// </summary> /// <param name="endpointId"></param> /// <param name="node"></param> private async Task PublishNodeAsync(string endpointId, ListNode node) { node.Publishing = true; var item = node.PublishedItem; var publishingInterval = IsTimeIntervalSet(item?.PublishingInterval) ? item.PublishingInterval : TimeSpan.FromMilliseconds(1000); var samplingInterval = IsTimeIntervalSet(item?.SamplingInterval) ? item.SamplingInterval : TimeSpan.FromMilliseconds(1000); var heartbeatInterval = IsTimeIntervalSet(item?.HeartbeatInterval) ? item.HeartbeatInterval : null; var result = await Publisher.StartPublishingAsync(endpointId, node.Id, node.NodeName, samplingInterval, publishingInterval, heartbeatInterval, Credential); if (result) { node.PublishedItem = new PublishedItemApiModel() { NodeId = node.Id, PublishingInterval = publishingInterval, SamplingInterval = samplingInterval, HeartbeatInterval = heartbeatInterval }; if (PublishEvent == null) { PublishEvent = Task.Run(async() => await PublisherServiceEvents.NodePublishSubscribeByEndpointAsync(EndpointId, samples => InvokeAsync(() => GetPublishedNodeData(samples)))).Result; } } else { node.Publishing = false; } }
/// <summary> /// OnAfterRenderAsync /// </summary> /// <param name="firstRender"></param> protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { NodeList = await PublisherHelper.PublishedAsync(EndpointId, true); Page = "1"; PagedNodeList = NodeList.GetPaged(int.Parse(Page), CommonHelper.PageLength, NodeList.Error); CommonHelper.Spinner = string.Empty; CommonHelper.CheckErrorOrEmpty(PagedNodeList, ref _tableView, ref _tableEmpty); StateHasChanged(); PublishEvent = await PublisherServiceEvents.NodePublishSubscribeByEndpointAsync(EndpointId, samples => InvokeAsync(() => GetPublishedNodeData(samples))); } }
/// <summary> /// OnAfterRenderAsync /// </summary> /// <param name="firstRender"></param> protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { EndpointModel = await registryService.GetEndpointAsync(EndpointId); Credential = await GetSecureItemAsync <CredentialModel>(CommonHelper.CredentialKey); await BrowseTreeAsync(BrowseDirection.Forward, 0, true, FirstPage, string.Empty, new List <string>()); CommonHelper.Spinner = string.Empty; CommonHelper.CheckErrorOrEmpty(PagedNodeList, ref _tableView, ref _tableEmpty); StateHasChanged(); if (PublishedNodes.Results.Count > 0) { PublishEvent = await PublisherServiceEvents.NodePublishSubscribeByEndpointAsync(EndpointId, samples => InvokeAsync(() => GetPublishedNodeData(samples))); } } }
protected override async Task SubscribeEvents() { _events = await PublisherServiceEvents.NodePublishSubscribeByEndpointAsync(EndpointId, samples => InvokeAsync(() => GetPublishedNodeData(samples))); }