/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override Task <GetRealValueReply> GetRealValueById(GetRealValueByIdRequest request, ServerCallContext context) { if (SecurityManager.Manager.IsLogin(request.Token) && SecurityManager.Manager.CheckReaderPermission(request.Token, request.Group)) { var service = ServiceLocator.Locator.Resolve <IRealTagConsumer>(); GetRealValueReply response = new GetRealValueReply() { Result = true }; 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 ValueQualityTime() { Id = i, Quality = quality, Value = val.ToString(), ValueType = tagtype, Time = time.ToBinary() }); } } return(Task.FromResult(response)); } else { return(Task.FromResult(new GetRealValueReply() { Result = false })); } }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override Task <GetRealValueReply> GetRealValue(GetRealValueRequest request, ServerCallContext context) { if (SecurityManager.Manager.IsLogin(request.Token) && SecurityManager.Manager.CheckReaderPermission(request.Token, request.Group)) { GetRealValueReply response = new GetRealValueReply() { 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 ValueQualityTime() { Id = i, Quality = quality, Value = val.ToString(), ValueType = tagtype, Time = time.ToBinary() }); } } } return(Task.FromResult(response)); } else { return(Task.FromResult(new GetRealValueReply() { Result = false })); } }