Esempio n. 1
0
        /// <summary>
        /// Fetch repository in repository TextBox
        /// </summary>
        /// <returns></returns>
        private async Task FetchSelectedRepository()
        {
            if (string.IsNullOrWhiteSpace(RepositoryTextBox.Text))
            {
                MessageBox.Show(@"Requires a repository");
                return;
            }

            WorkingPictureBox.Image = spinner;

            if (RepositoryListBox.DataSource != null)
            {
                _lastSelectedRepositoryName = RepositoryListBox.Text;
            }

            RepositoryListBox.DataSource = null;

            try
            {
                _repositoriesBindingList = new BindingList <Repository>(await GitOperations.DownLoadPublicRepositoriesAsync(RepositoryTextBox.Text));
            }
            catch (Exception ex)
            {
                WorkingPictureBox.Image = null;
                // a consideration is rate limit
                MessageBox.Show($@"Failed to get repositories {ex.Message}");
                return;
            }

            _repositoriesBindingSource.DataSource = _repositoriesBindingList;
            RepositoryListBox.DataSource          = _repositoriesBindingSource;

            if (_repositoriesBindingSource.Count > 0)
            {
                RepositoryListBox.SelectedIndex = 0;
            }

            BindControls();

            ControlHelpers.SetWaterMarkers(this);

            if (!string.IsNullOrWhiteSpace(_lastSelectedRepositoryName))
            {
                var index = RepositoryListBox.FindString(_lastSelectedRepositoryName);
                if (index >= 0)
                {
                    RepositoryListBox.SelectedIndex = index;
                }
            }

            ActiveControl           = RepositoryListBox;
            WorkingPictureBox.Image = null;
        }
        private void PopulateRepositoryList()
        {
            RepositoryListBox.BeginUpdate();

            RepositoryListBox.Items.Clear();

            foreach (string path in RepositoryClass.Instance.RepositoryDirectoryList)
            {
                RepositoryListBox.Items.Add(path);
            }

            RepositoryListBox.EndUpdate();
        }
Esempio n. 3
0
        /// <summary>
        /// Incremental search on loaded repositories
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SearchTextBox_TextChanged(object sender, EventArgs e)
        {
            if (_repositoriesBindingList == null)
            {
                return;
            }

            var index = RepositoryListBox.FindString(SearchTextBox.Text);

            if (index >= 0)
            {
                _repositoriesBindingSource.Position = index;
            }
        }