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