/// <summary> /// Method to get the list of configured nodes and is only there for backward compatibility. Executes synchronously. /// The format of the returned node description is using NodeId format. The assumption /// is that the caller is able to access the namespace array of the server /// on the endpoint URL(s) themselve and do the correct mapping. /// </summary> private ServiceResult OnGetPublishedNodesLegacyCall(ISystemContext context, MethodState method, IList <object> inputArguments, IList <object> outputArguments) { string logPrefix = "OnGetPublishedNodesLegacyCall:"; Uri endpointUri = null; if (string.IsNullOrEmpty(inputArguments[0] as string)) { Logger.Information($"{logPrefix} returning all nodes of all endpoints'!"); } else { try { endpointUri = new Uri(inputArguments[0] as string); } catch (UriFormatException) { Logger.Error($"{logPrefix} The endpointUrl is invalid '{inputArguments[0] as string}'!"); return(ServiceResult.Create(StatusCodes.BadArgumentsMissing, "Please provide a valid OPC UA endpoint URL as first argument!")); } } // get the list of published nodes in NodeId format List <ConfigurationFileEntryLegacyModel> configFileEntries = NodeConfiguration.GetPublisherConfigurationFileEntriesAsNodeIdsAsync(endpointUri.OriginalString).Result; outputArguments[0] = JsonConvert.SerializeObject(configFileEntries); Logger.Information($"{logPrefix} Success (number of entries: {configFileEntries.Count})"); return(ServiceResult.Good); }