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)); } }
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); } }
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); }