コード例 #1
0
 /// <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
         }));
     }
 }
コード例 #2
0
 /// <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
         }));
     }
 }