/// <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)); } } }
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("Репозитории требующие обновления не обнаружены"); } }