示例#1
0
        private void OnObjectDeleted(ObjectDeletedPayload payload)
        {
            ObjectEntry entry;

            if (this.TryGetValue(payload.Id, out entry))
            {
                OnObjectDeleted(entry, Source.Server);
                this.client.RaiseObjectDeleted(new ObjectDeletedEventArgs(entry.Object, entry.Name));
            }
            else
            {
                // Object is not in client. Should only receive this event if we called for the object to be deleted ourselves
                this.client.RaiseObjectDeleted(new ObjectDeletedEventArgs(null, payload.Name));
            }
        }
示例#2
0
        public void Delete(string name)
        {
            client.VerifyAccess();

            ObjectEntry entry = null;

            if (this.TryGetValue(name, out entry))
            {
                Payload eventData = new ObjectDeletedPayload(entry.Id, this.client.ClientId);
                client.SendPublishEvent(eventData);

                OnObjectDeleted(entry, Source.Client);
            }
            else
            {
                // If we have no local record of an object it may still exist. Send Delete payload
                Payload eventData = new ObjectDeletedPayload(name, this.client.ClientId);
                client.SendPublishEvent(eventData);
            }
        }
示例#3
0
        public void Delete(INotifyPropertyChanged value)
        {
            client.VerifyAccess();

            if (!this.client.IsConnected)
            {
                throw new InvalidOperationException("Cannot delete object before the Client is connected");
            }

            ObjectEntry entry = null;

            if (!this.TryGetValue(value, out entry))
            {
                throw new InvalidOperationException("Unable to delete object. Object not found.");
            }

            Payload eventData = new ObjectDeletedPayload(entry.Id, this.client.ClientId);

            client.SendPublishEvent(eventData);

            this.OnObjectDeleted(entry, Source.Client);
        }