private void CloneRepo() { try { _provider = _providerFactory.CreateProvider(_vbe.ActiveVBProject); var repo = _provider.Clone(RemotePath, LocalDirectory); Provider = _providerFactory.CreateProvider(_vbe.ActiveVBProject, repo, _wrapperFactory); AddOrUpdateLocalPathConfig(new Repository { Name = _vbe.ActiveVBProject.Name, LocalLocation = repo.LocalLocation, RemoteLocation = repo.RemoteLocation }); } catch (SourceControlException ex) { ViewModel_ErrorThrown(null, new ErrorEventArgs(ex.Message, ex.InnerException.Message)); return; } CloseCloneRepoGrid(); SetChildPresenterSourceControlProviders(_provider); Status = RubberduckUI.Online; }
private void CloneRepo() { OnOpenRepoStarted(); try { _provider = _providerFactory.CreateProvider(_vbe.ActiveVBProject); var repo = _provider.Clone(CloneRemotePath, LocalDirectory); AddOrUpdateLocalPathConfig(new Repository { Id = _vbe.ActiveVBProject.HelpFile, LocalLocation = repo.LocalLocation, RemoteLocation = repo.RemoteLocation }); Provider = _providerFactory.CreateProvider(_vbe.ActiveVBProject, repo, _wrapperFactory); } catch (SourceControlException ex) { ViewModel_ErrorThrown(null, new ErrorEventArgs(ex.Message, ex.InnerException.Message, NotificationType.Error)); return; } OnOpenRepoCompleted(); CloseCloneRepoGrid(); Status = RubberduckUI.Online; }
private void CloneRepo(SecureCredentials credentials = null) { _isCloning = true; _listening = false; Logger.Trace("Cloning repo"); ISourceControlProvider oldProvider; try { oldProvider = _provider; _provider = _providerFactory.CreateProvider(_vbe.ActiveVBProject); _providerFactory.Release(oldProvider); var repo = _provider.Clone(CloneRemotePath, LocalDirectory, credentials); AddOrUpdateLocalPathConfig(new Repository { Id = _vbe.ActiveVBProject.HelpFile, LocalLocation = repo.LocalLocation, RemoteLocation = repo.RemoteLocation }); oldProvider = Provider; Provider = _providerFactory.CreateProvider(_vbe.ActiveVBProject, repo); _providerFactory.Release(oldProvider); } catch (SourceControlException ex) { const string unauthorizedMessage = "Request failed with status code: 401"; if (ex.InnerException != null && ex.InnerException.Message != unauthorizedMessage) { _isCloning = false; } HandleViewModelError(this, new ErrorEventArgs(ex.Message, ex.InnerException, NotificationType.Error)); return; } catch { HandleViewModelError(this, new ErrorEventArgs(RubberduckUI.SourceControl_UnknownErrorTitle, RubberduckUI.SourceControl_UnknownErrorMessage, NotificationType.Error)); throw; } _isCloning = false; _listening = true; CloseCloneRepoGrid(); Status = RubberduckUI.Online; }