private void NodeChangedHandler(NodeEventArgs nargs) { try { switch (nargs.Type) { case "Collection": { iFolderHolder ifHolder = ifdata.ReadiFolder(nargs.Collection); if ((ifHolder != null) && (ifHolder.iFolder.HasConflicts)) { lock (NodeEventQueue) { NodeEventQueue.Enqueue(new SimiasEvent( ifHolder.iFolder.ID, null, null, SimiasEventType.ChangediFolder)); SimiasEventFired.WakeupMain(); } } break; } case "Member": { if (ifdata.IsiFolder(nargs.Collection)) { iFolderUser newuser = ifdata.GetiFolderUserFromNodeID( nargs.Collection, nargs.ID); if ((newuser != null) && !ifdata.IsCurrentUser(newuser.UserID)) { lock (NodeEventQueue) { NodeEventQueue.Enqueue(new SimiasEvent( nargs.Collection, newuser, newuser.UserID, SimiasEventType.ChangedUser)); SimiasEventFired.WakeupMain(); } } } break; } case "Subscription": { if (ifdata.ISPOBox(nargs.Collection)) { // The Collection is the PO Box so the node // is most likely an invitation iFolderHolder ifHolder = ifdata.ReadAvailableiFolder(nargs.ID, nargs.Collection); if (ifHolder != null) { lock (NodeEventQueue) { NodeEventQueue.Enqueue(new SimiasEvent( ifHolder.iFolder.CollectionID, null, null, SimiasEventType.ChangediFolder)); SimiasEventFired.WakeupMain(); } } } break; } } } catch (Exception e) { if (printErrors) { Debug.PrintLine("Exception in NodeChangedHandler(): " + e.Message); Debug.PrintLine(e.StackTrace); } } }