Esempio n. 1
0
        void GitLabOpenComboBox_SelectedValueChanged(string operationType)
        {
            var gridSelectedRowProject = dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex]
                                         .Cells[Repository.Name].Value.ToString();

            var selectedRowIndices   = dataGridView1.SelectedCells.OfType <DataGridViewCell>().Select(c => c.RowIndex);
            var selectedProjectNames =
                dataGridView1.Rows.OfType <DataGridViewRow>()
                .Where(r => selectedRowIndices.Any(ri => ri == r.Index))
                .Select(r => r.Cells[Repository.Name].Value.ToString())
                .ToList();

            //var allSelectedRepositoriesInGrid = dataGridView1.Rows[dataGridView1.SelectedCells[0].RowIndex].Cells[Repository.Name].Value.ToString();

            foreach (var projectName in selectedProjectNames)
            {
                GitMultiRepositoryManagerCore.StartProcessWithArgsAndForget("chrome.exe",
                                                                            $"https://gitlab.com/doso/insurance/{projectName}/{operationType}");
            }
        }
Esempio n. 2
0
        public GitMultiRepositoryManager()
        {
            InitializeComponent();

            ticketSetStatusComboBox.SelectedItem = ticketSetStatusComboBox.Items[0];

            //foreach (var gridColumn in dataGridView1.Columns.OfType<DataGridViewColumn>())
            //    gridColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;

            dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCells);

            dataGridView1.CellContentClick += (sender, e) =>
            {
                var senderGrid = (DataGridView)sender;

                if (e.RowIndex < 0)
                {
                    return;
                }
                if (!(senderGrid.Columns[e.ColumnIndex] is DataGridViewButtonColumn clickedColumn))
                {
                    return;
                }

                var repositoryForCurrentRow = senderGrid.Rows[e.RowIndex].Cells[Repository.Name].Value.ToString();

                if (clickedColumn == OpenGitExtensions)
                {
                    GitMultiRepositoryManagerCore.OpenGitExtensions(
                        Path.Combine(GitRepoManager.Config.RootFolderPath, repositoryForCurrentRow));
                }
                else if (clickedColumn == VSCode)
                {
                    GitMultiRepositoryManagerCore.OpenVisualStudioCode(
                        Path.Combine(GitRepoManager.Config.RootFolderPath, repositoryForCurrentRow));
                }
                else if (clickedColumn == Explorer)
                {
                    GitMultiRepositoryManagerCore.OpenWindowsExplorer(
                        Path.Combine(GitRepoManager.Config.RootFolderPath, repositoryForCurrentRow));
                }
                else if (clickedColumn == Devenv)
                {
                    GitMultiRepositoryManagerCore.OpenDevenv(GitRepoManager.Config.DevenvPath,
                                                             Path.Combine(GitRepoManager.Config.RootFolderPath, repositoryForCurrentRow));
                }
            };

            GitRepoManager = new GitMultiRepositoryManagerCore();

            GitRepoManager.CommandLogChanged += (sender, s) =>
                                                commandLogTextBox.Invoke(new Action(() => commandLogTextBox.Text += s));

            GitRepoManager.GitRepositoryStatusRefreshed += (sender, statuses) =>
            {
                dataGridView1.Invoke(new Action(() =>
                {
                    var(rowIndex, columnIndex) = (dataGridView1.CurrentCell?.RowIndex,
                                                  dataGridView1.CurrentCell?.ColumnIndex); // = dataGridView1.Rows[1].Cells[0];

                    dataGridView1.Rows.Clear();

                    statuses
                    .Select(r => dataGridView1.Rows.Add(r.RepositoryItem.RepositoryItemName, r.CurrentBranch,
                                                        r.AllLocalBranches,
                                                        $"+{r.HeadBehindOriginMasterBy}; -{r.HeadAheadOriginMasterBy}", r.PendingChanges)).ToList();

                    dataGridView1.CurrentCell = dataGridView1.Rows[rowIndex ?? 0].Cells[columnIndex ?? 0];

                    createBranchComboBox.Items.Clear();
                    createBranchComboBox
                    .Items
                    .AddRange(statuses.SelectMany(s => s.AllLocalBranches.Split(';'))
                              .Distinct().OrderBy(s => s).ToArray());
                }));
            };
        }