Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
        }