Esempio n. 1
0
        private void NodeCreatedHandler(NodeEventArgs nargs)
        {
            try
            {
                switch (nargs.Type)
                {
                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 the iFolder already exists, ifdata will
//                          // return null to check it here
//                          if(ifHolder != null)
//                          {
//                              lock(NodeEventQueue)
//                              {
//                                  NodeEventQueue.Enqueue(new SimiasEvent(
//                                      ifHolder.iFolder.CollectionID, null, null,
//                                      SimiasEventType.NewiFolder));
//                                  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.NewUser));
                                SimiasEventFired.WakeupMain();
                            }
                        }
                    }
                    break;
                }

                case "Collection":
                {
                    iFolderHolder ifHolder =
                        ifdata.ReadiFolder(nargs.Collection);

                    if (ifHolder != null)
                    {
                        lock (NodeEventQueue)
                        {
                            NodeEventQueue.Enqueue(new SimiasEvent(
                                                       ifHolder.iFolder.ID, null, null,
                                                       SimiasEventType.NewiFolder));
                            SimiasEventFired.WakeupMain();
                        }
                    }
                    break;
                }

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