Example #1
0
        private bool OnRequestEntangle(IRequestWrapper request)
        {
            var  req = (EntangleRequest)request.Request;
            Guid?eid = null;

            if (Interfaces.TryGetValue(req.InterfaceId, out var ie))
            {
                if (req.Eid.HasValue)
                {
                    if (ie.Access == EntanglementAccess.Manual || ie.Access == EntanglementAccess.Global)
                    {
                        AddClient(request.Connection, req.Eid.Value);
                        eid = req.Eid;
                    }
                }
                else
                {
                    eid = GetInstance(ie, request.Connection);
                    if (eid.HasValue)
                    {
                        AddClient(request.Connection, eid.Value);
                    }
                }
            }

            request.TrySendResponse(new EntangleResult {
                Eid = eid
            }, out _);

            return(true);
        }
Example #2
0
 public void SendState(IRequestWrapper request)
 {
     request.TrySendResponse(_Context.All.ContainsClient(request.Connection)
         ? GetAllProperties(request.Connection)
         : new UpdateProperties()
     {
         Eid = _Eid, Updates = null
     }, out _);
 }