public override Task<DatapointResult> GetDatapoint(IdentifierMessage request, ServerCallContext context) { var nodeId = new NodeId(2, request.Identifier); DatapointResult datapointResult = new DatapointResult(); if (!_serverApplication.HasDatapoint(nodeId)) { datapointResult.ApiResult = new ApiResult { ResultCode = ResultCode.Error, Message = "Datapoint does not exist" }; return Task.FromResult(datapointResult); } var value = _serverApplication.GetDatapoint(nodeId); datapointResult.ApiResult = new ApiResult { ResultCode = ResultCode.Success, Message = "Datapoint has been retrieved" }; datapointResult.Datapoints.Add(new DatapointMessage() { Identifier = request.Identifier, Value = value }); return Task.FromResult(datapointResult); }