/// <summary>
        /// Метод записывает имя репозитория
        /// и список строк с информацией о обновлении
        /// в объект класса UpdatedRepositorys и добавляет его
        /// в список listUpdatedReposytores.
        /// Под запись идут только те репозитории в которых
        /// были изменения.
        /// </summary>
        public void QueryConstructorForIncoming()
        {
            listOfRepositorys = new List<Repository>();

            QueryConstructor quaryConstructor;

            ResultParser resultParser;

            Config programConfig = Config.ConfigFileReader();

            foreach (Repository repository in programConfig.listOfRepositories)
            {
                quaryConstructor = new QueryConstructor(repository, HgCommands.incoming);
                quaryConstructor.QuerySender();

                resultParser = new ResultParser();

                if ((resultParser.CountsCommit(quaryConstructor.arrayReturnedQueryStrings)) != 0)
                {
                    string[] inputStrings = quaryConstructor.arrayReturnedQueryStrings;

                    listOfRepositorys.Add(new Repository(repository.nameOfRepository, resultParser.ParserIncoming(inputStrings), false));
                }
                else
                {
                    listOfRepositorys.Add(new Repository(repository.nameOfRepository, true));
                }
            }
        }
Exemple #2
0
        private void pullButton_Click(object sender, EventArgs e)
        {
            if (notUpdatedRepositorys != null)
            {
                if (checkedBoxRepositoryList.CheckedItems.Count != 0)
                {
                    List<string> needToUpdateRepositorys = new List<string>();

                    foreach (string repositoryName in checkedBoxRepositoryList.CheckedItems)
                    {
                        needToUpdateRepositorys.Add(repositoryName);
                    }

                    Config config = Config.ConfigFileReader();

                    List<Repository> listNotUpdatedRepositorys = new List<Repository>();

                    List<Repository> listUpdatedRepositorys = new List<Repository>();

                    foreach (Repository repository in notUpdatedRepositorys)
                    {
                        listNotUpdatedRepositorys.Add(repository);
                    }

                    foreach (Repository repository in updatedRepositorys)
                    {
                        listUpdatedRepositorys.Add(repository);
                    }

                    foreach (string reposytoreForUpdate in needToUpdateRepositorys)
                    {
                        foreach (Repository repositoryInConfig in config.listOfRepositories)
                        {
                            if (reposytoreForUpdate == repositoryInConfig.nameOfRepository)
                            {
                                QueryConstructor queryPull = new QueryConstructor(repositoryInConfig, HgCommands.pull);
                                queryPull.QuerySender();

                                Repository repositoryCopy = new Repository();

                                foreach (Repository repos in listNotUpdatedRepositorys)
                                {
                                    if (repos.nameOfRepository == reposytoreForUpdate)
                                    {
                                        repositoryCopy = repos;
                                    }
                                }

                                listNotUpdatedRepositorys.Remove(repositoryCopy);

                                listUpdatedRepositorys.Add(repositoryInConfig);

                                break;
                            }
                        }
                    }

                    notUpdatedRepositorys = listNotUpdatedRepositorys.ToArray();

                    updatedRepositorys = listUpdatedRepositorys.ToArray();

                    Invoke(new Action(ViewUpdatesOnForm));

                    MessageBox.Show("Обновление выполнено успешно!");
                }
                else
                {
                    MessageBox.Show("Репозитории для обновления небыли выбраны");
                }
            }
            else
            {
                MessageBox.Show("Репозитории требующие обновления не обнаружены");
            }
        }