Esempio n. 1
0
        private void NodeDeletedHandler(NodeEventArgs nargs)
        {
            try
            {
                switch (nargs.Type)
                {
                case "Subscription":
                {
                    if (ifdata.ISPOBox(nargs.Collection))
                    {
                        lock (NodeEventQueue)
                        {
                            ifdata.DeliFolder(nargs.ID);
                            NodeEventQueue.Enqueue(new SimiasEvent(
                                                       nargs.Collection, null, null,
                                                       SimiasEventType.DeliFolder));
                            SimiasEventFired.WakeupMain();
                        }
                    }
                    break;
                }

                case "Collection":
                {
                    lock (NodeEventQueue)
                    {
                        iFolderHolder ifHolder =
                            ifdata.GetiFolder(nargs.Collection);
                        if ((ifHolder != null) &&
                            (!ifHolder.iFolder.IsSubscription))
                        {
                            ifdata.DeliFolder(nargs.ID);
                            NodeEventQueue.Enqueue(new SimiasEvent(
                                                       nargs.Collection, null, null,
                                                       SimiasEventType.DeliFolder));
                        }
                        SimiasEventFired.WakeupMain();
                    }
                    break;
                }

                case "Member":
                {
                    if (ifdata.IsiFolder(nargs.Collection))
                    {
                        lock (NodeEventQueue)
                        {
                            NodeEventQueue.Enqueue(new SimiasEvent(
                                                       nargs.Collection, null, nargs.ID,
                                                       SimiasEventType.DelUser));
                            SimiasEventFired.WakeupMain();
                        }
                    }
                    break;
                }

                case "Domain":
                {
                    // The user just successfully created/logged-into a domain
                    lock (NodeEventQueue)
                    {
                        NodeEventQueue.Enqueue(
                            new SimiasEvent(nargs.Collection, SimiasEventType.DelDomain));
                        SimiasEventFired.WakeupMain();
                    }
                    break;
                }
                }
            }
            catch (Exception e)
            {
                if (printErrors)
                {
                    Debug.PrintLine("Exception in NodeDeletedHandler(): " + e.Message);
                    Debug.PrintLine(e.StackTrace);
                }
            }
        }