Ejemplo n.º 1
0
 public iFolderWeb AcceptiFolderInvitation1( string DomainID,
                                                                                            string iFolderID,
                                                                                         string LocalPath)
 {
     Store store = Store.GetStore();
                 POBox poBox = Simias.POBox.POBox.FindPOBox(store,
                                         DomainID,
                                         store.GetUserIDFromDomainID(DomainID));
                 Node node = poBox.GetNodeByID(iFolderID);
                 if(node == null)
                         throw new Exception("Invalid iFolderID : id : "+ iFolderID);
                 Subscription sub = new Subscription(node);
                 string path = Path.Combine(LocalPath, sub.DirNodeName);
                 if (Directory.Exists(path))
                         throw new Exception("PathExists");
                 CollectionPathStatus pStatus;
        pStatus = SharedCollection.CheckCollectionPath(path);
                 switch(pStatus)
                 {
                         case CollectionPathStatus.ValidPath:
                                 break;
                         case CollectionPathStatus.RootOfDrivePath:
                                 throw new Exception("RootOfDrivePath");
                         case CollectionPathStatus.InvalidCharactersPath:
                                 throw new Exception("InvalidCharactersPath");
                         case CollectionPathStatus.AtOrInsideStorePath:
                                 throw new Exception("AtOrInsideStorePath");
                         case CollectionPathStatus.ContainsStorePath:
                                 throw new Exception("ContainsStorePath");
                         case CollectionPathStatus.NotFixedDrivePath:
                                 throw new Exception("NotFixedDrivePath");
                         case CollectionPathStatus.SystemDirectoryPath:
                                 throw new Exception("SystemDirectoryPath");
                         case CollectionPathStatus.SystemDrivePath:
                                 throw new Exception("SystemDrivePath");
                         case CollectionPathStatus.IncludesWinDirPath:
                                 throw new Exception("IncludesWinDirPath");
                         case CollectionPathStatus.IncludesProgFilesPath:
                                 throw new Exception("IncludesProgFilesPath");
                         case CollectionPathStatus.DoesNotExistPath:
                                 throw new Exception("DoesNotExistPath");
                         case CollectionPathStatus.NoReadRightsPath:
                                 throw new Exception("NoReadRightsPath");
                         case CollectionPathStatus.NoWriteRightsPath:
                                 throw new Exception("NoWriteRightsPath");
                         case CollectionPathStatus.ContainsCollectionPath:
                                 throw new Exception("ContainsCollectionPath");
                         case CollectionPathStatus.AtOrInsideCollectionPath:
                                 throw new Exception("AtOrInsideCollectionPath");
                 }
                 sub.CollectionRoot = Path.GetFullPath(LocalPath);
                 if(sub.SubscriptionState == SubscriptionStates.Ready)
                 {
                         poBox.Commit(sub);
     sub.CreateSlave(store);
                 }
                 else
                 {
                         sub.Accept(store, SubscriptionDispositions.Accepted);
                         poBox.Commit(sub);
                 }
                 iFolderWeb ifolder = new iFolderWeb(sub);
                 return ifolder;
 }