/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override Task <GetRealValueOnlyReply> GetRealValueOnlyById(GetRealValueByIdRequest request, ServerCallContext context) { if (SecurityManager.Manager.IsLogin(request.Token) && SecurityManager.Manager.CheckReaderPermission(request.Token, request.Group)) { GetRealValueOnlyReply response = new GetRealValueOnlyReply() { Result = true }; var service = ServiceLocator.Locator.Resolve <IRealTagConsumer>(); for (int i = 0; i < request.Ids.Count; i++) { byte quality; DateTime time; byte tagtype = 0; var val = service.GetTagValue(request.Ids[i], out quality, out time, out tagtype); if (val != null) { response.Values.Add(new ValueOnly() { Id = i, Value = val.ToString(), ValueType = tagtype }); } } return(Task.FromResult(response)); } else { return(Task.FromResult(new GetRealValueOnlyReply() { Result = false })); } }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override Task <GetRealValueOnlyReply> GetRealValueOnly(GetRealValueRequest request, ServerCallContext context) { if (SecurityManager.Manager.IsLogin(request.Token) && SecurityManager.Manager.CheckReaderPermission(request.Token, request.Group)) { GetRealValueOnlyReply response = new GetRealValueOnlyReply() { Result = true }; var service = ServiceLocator.Locator.Resolve <IRealTagConsumer>(); var ids = service.GetTagIdByName(request.TagNames.Select(e => string.IsNullOrEmpty(request.Group) ? e : request.Group + "." + e).ToList()); for (int i = 0; i < request.TagNames.Count; i++) { if (ids.Count > i && ids[i].HasValue) { byte quality; DateTime time; byte tagtype = 0; var val = service.GetTagValue(ids[i].Value, out quality, out time, out tagtype); if (val != null) { response.Values.Add(new ValueOnly() { Id = i, Value = val.ToString(), ValueType = tagtype }); } } } return(Task.FromResult(response)); } else { return(Task.FromResult(new GetRealValueOnlyReply() { Result = false })); } }