Используется - "octokit.net".
Я заинтересован в поиске "репозиториев", "пользователей" и фильтрации результатов по языку.
Сценарий:
1. Пользователь.Введите поисковую фразу;
2. Сайт.Выполняет поиск;
3. Сайт.Отображает результат:
a.хранилища;
б.пользователи;
Фильтр:
- языки;
После нажатия кнопок «хранилища» или «пользователи» результат отображается в таблице.
После нажатия на языки (например, «C #») результаты фильтруются.
Общий результат поиска:
Хранилища
- Хранилища - 108 951 результатов
- C # (хранилище) - 4 315 результатов
Пользователи
- Пользователи - ~ 4K
-C # (пользователи) - ~ 72
Как повторить этот скрипт поисковой системы?
Я написал предварительный код, но не понимаю, как заставить его работать более корректно.
Метод не завершен «searchUser (строка searchQuery_str)».
Я планирую сделать это по аналогии с «SearchReposit (строка searchQuery_str, строка lang_str)» *
Текущая кодовая логика:
- поиск по всем репозиториям:
- отправка запроса;
- получение ответа;
- поиск по репозиториям, использующим C #:
- отправить запрос;
- отфильтровать запрос по языку "C #";
- получить ответ;
Тех.Теперь для каждого случая выполняется отдельный запрос (запрос var), но мне кажется, что вам нужно выполнить один запрос, а затем выполнить над ним следующие действия:
- фильтр;
- сортировка;
- очистить фильтрацию;
- очистить сортировку.
Вопрос: как сделать возможным выполнение одного запроса, а затем выполнить над ним следующие действия:
- фильтр;
- сортировка;
- очистить фильтрацию;
- чистая сортировка
- подсчитать количество результатов поиска?
Правильно ли я понимаю логику и возможно ли это сделать?
Если я правильно понимаю, работа с поиском «пользователи» будет аналогична поиску «хранилища».
Ссылка на поисковую документацию - Ссылка
введите описание изображения здесь
введите описание изображения здесь
private async void button1_Click(object sender, EventArgs e)
{
// Получаем поисковую фразу
string searchQuery_str = Search_txB.Text;
string lang_str;
// Поиск по репозитариям. "Результат"
lang_str = "";
var countRepo = await SearchReposit(searchQuery_str, lang_str);
label5.Text = countRepo;
// Поиск по репозитариям. "Результат"
lang_str = "C#";
var countRepoLang = await SearchReposit(searchQuery_str, lang_str);
label7.Text = countRepoLang;
}
public async Task<string> SearchReposit(string searchQuery_str, string lang_str)
{
// Поиск по "Реозитариям"
var request = new SearchRepositoriesRequest(searchQuery_str); // mvc client side framework - Структура клиентской стороны mvc
switch (lang_str)
{
case "C#":
request.Language = Language.CSharp;
break;
}
var resultRepo = await client.Search.SearchRepo(request);
// Количество репозитариев
decimal countRepo_dec = Convert.ToDecimal(resultRepo.TotalCount);
// Количество репозитариев. Форматирование
string countRepo_str = formatValue(countRepo_dec);
return countRepo_str;
}
// Поиск по "Пользователям" ()
public async void searchUser(string searchQuery_str)
{
var request = new SearchUsersRequest(searchQuery_str); // _____
var resultUser = await client.Search.SearchUsers(request);
label6.Text = resultUser.TotalCount.ToString();
// var resultUsers = await client.Search.SearchUsers(request);
}