/// <summary> /// Constructor for Repo (at every launch of CmisSync) /// </summary> public SynchronizedFolder(RepoInfo repoInfo, RepoBase repoCmis) { if (null == repoInfo || null == repoCmis) { throw new ArgumentNullException("repoInfo"); } this.repo = repoCmis; this.repoinfo = repoInfo; // Database is the user's AppData/Roaming database = new Database(repoinfo.CmisDatabase); // Get path on remote repository. remoteFolderPath = repoInfo.RemotePath; cmisParameters = new Dictionary <string, string>(); cmisParameters[SessionParameter.BindingType] = BindingType.AtomPub; cmisParameters[SessionParameter.AtomPubUrl] = repoInfo.Address.ToString(); cmisParameters[SessionParameter.User] = repoInfo.User; cmisParameters[SessionParameter.Password] = repoInfo.Password.ToString(); cmisParameters[SessionParameter.RepositoryId] = repoInfo.RepoID; cmisParameters[SessionParameter.ConnectTimeout] = "-1"; foreach (string ignoredFolder in repoInfo.getIgnoredPaths()) { Logger.Info("The folder \"" + ignoredFolder + "\" will be ignored"); } syncWorker = new BackgroundWorker(); syncWorker.WorkerSupportsCancellation = true; syncWorker.DoWork += new DoWorkEventHandler( delegate(Object o, DoWorkEventArgs args) { bool syncFull = (bool)args.Argument; try { Sync(syncFull); } catch (OperationCanceledException e) { Logger.Info(e.Message); } catch (CmisPermissionDeniedException e) { repo.OnSyncError(new PermissionDeniedException("Authentication failed.", e)); } catch (Exception e) { repo.OnSyncError(new BaseException(e)); } finally { SyncComplete(syncFull); } } ); }
/// <summary> /// Constructor for Repo (at every launch of CmisSync) /// </summary> public SynchronizedFolder(RepoInfo repoInfo, RepoBase repoCmis, IActivityListener activityListener) { this.activityListener = activityListener; if (null == repoInfo || null == repoCmis) { throw new ArgumentNullException("repoInfo"); } this.repo = repoCmis; this.repoinfo = repoInfo; suspended = this.repoinfo.IsSuspended; // Database is the user's AppData/Roaming database = new Database.Database(repoinfo.CmisDatabase); // Get path on remote repository. remoteFolderPath = repoInfo.RemotePath; if (Logger.IsInfoEnabled) { foreach (string ignoredFolder in repoInfo.getIgnoredPaths()) { Logger.Info("The folder \"" + ignoredFolder + "\" will be ignored"); } } syncWorker = new BackgroundWorker(); syncWorker.WorkerSupportsCancellation = true; syncWorker.DoWork += new DoWorkEventHandler( delegate(Object o, DoWorkEventArgs args) { bool syncFull = (bool)args.Argument; try { Sync(syncFull); } catch (OperationCanceledException e) { Logger.Info(e.Message); } catch (CmisPermissionDeniedException e) { repo.OnSyncError(new PermissionDeniedException("Authentication failed.", e)); } catch (CmisMissingSyncFolderException e) { repo.OnSyncError(new MissingSyncFolderException("Missing sync folder.", e)); } catch (Exception e) { repo.OnSyncError(new BaseException(e)); } finally { SyncComplete(syncFull); } } ); }
/// <summary> /// Constructor for Repo (at every launch of CmisSync) /// </summary> public SynchronizedFolder(RepoInfo repoInfo, RepoBase repoCmis) { if (null == repoInfo || null == repoCmis) { throw new ArgumentNullException("repoInfo"); } this.repo = repoCmis; this.repoinfo = repoInfo; // Database is the user's AppData/Roaming database = new Database(repoinfo.CmisDatabase); // Get path on remote repository. remoteFolderPath = repoInfo.RemotePath; cmisParameters = new Dictionary<string, string>(); cmisParameters[SessionParameter.BindingType] = BindingType.AtomPub; cmisParameters[SessionParameter.AtomPubUrl] = repoInfo.Address.ToString(); cmisParameters[SessionParameter.User] = repoInfo.User; cmisParameters[SessionParameter.Password] = repoInfo.Password.ToString(); cmisParameters[SessionParameter.RepositoryId] = repoInfo.RepoID; cmisParameters[SessionParameter.ConnectTimeout] = "-1"; foreach (string ignoredFolder in repoInfo.getIgnoredPaths()) { Logger.Info("The folder \"" + ignoredFolder + "\" will be ignored"); } syncWorker = new BackgroundWorker(); syncWorker.WorkerSupportsCancellation = true; syncWorker.DoWork += new DoWorkEventHandler( delegate(Object o, DoWorkEventArgs args) { bool syncFull = (bool)args.Argument; try { Sync(syncFull); } catch (OperationCanceledException e) { Logger.Info(e.Message); } catch (CmisPermissionDeniedException e) { repo.OnSyncError(new PermissionDeniedException("Authentication failed.", e)); } catch (Exception e) { repo.OnSyncError(new BaseException(e)); } finally { SyncComplete(syncFull); } } ); }