使用-“ octokit.net”。
我对搜索“存储库”,“用户”并按语言过滤结果感兴趣。
场景:
1.用户。输入搜索词组;
2.网站。执行搜索;
3.网站。显示结果:
一种。储存库;
b。用户;
筛选条件:
-语言;
单击“存储库”或“用户”按钮后,结果将显示在表中。
单击语言(例如,``C#'')后,将对结果进行过滤。
常规搜索结果:
储存库
-存储库-108,951个结果
-C#(存储库)-4,315个结果
用户
-用户-〜4K
-C#(用户)-〜72
如何重复此脚本搜索引擎?
我编写了初步代码,但我不知道如何使其更正确地工作。
方法未完成“ searchUser(字符串searchQuery_str)”。
我打算通过类似于“ SearchReposit(字符串searchQuery_str,字符串lang_str)”
当前代码逻辑:
-搜索所有存储库:
-发送请求;
-我们收到答案了
-搜索使用C#的存储库:
-发送请求;
-我们通过语言“ C#”过滤请求;
-我们收到答案了
那些。现在,针对每种情况都将执行一个单独的请求(var请求),但是在我看来,您需要执行一个请求,然后对它执行以下操作:
-过滤器;
-排序;
-清除过滤;
-明确排序。
问题是:如何使执行一个请求成为可能,然后对该请求执行以下操作:
-过滤器;
-排序;
-清除过滤;
-清除排序
-计算搜索结果的数量?
我是否正确理解逻辑,是否可以这样做?
如果我正确理解,搜索“用户”的工作将类似于搜索“存储库”。
链接到搜索文档-Link
enter image description here
enter image description here
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);
}
答案 0 :(得分:0)
更改了变量request
:
-是var
-变成了SearchRepositoriesRequest
;
-是local - became
全球性的;
更改了方法“ SearchReposit(字符串searchQuery_str,字符串lang_str)”
-添加了参数“ bool null_flg”-变成了“ SearchReposit(字符串searchQuery_str,字符串lang_str和bool null_flg)”;
-添加了检查“ bool null_flg”;
if (null_flg == false)
{
request = new SearchRepositoriesRequest (searchQuery_str);
}
代码看起来像这样
SearchRepositoriesRequest request;
public async Task<string> SearchReposit(string searchQuery_str, string lang_str, bool null_flg)
{
//SearchRepositoriesRequest request = new SearchRepositoriesRequest();
// Поиск по "Реозитариям"
// if (request == null) // ошб
if (null_flg == false)
{
request = new SearchRepositoriesRequest(searchQuery_str); // mvc client side framework - Структура клиентской стороны mvc
// return request;
}
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;
}
private async void button1_Click(object sender, EventArgs e)
{
// Получаем поисковую фразу
string searchQuery_str = Search_txB.Text;
string lang_str;
bool null_flg;
// Поиск по репозитариям. "Результат"
lang_str = "";
null_flg = false;
var countRepo = await SearchReposit(searchQuery_str, lang_str, null_flg);
null_flg = true;
label5.Text = countRepo;
// Поиск по репозитариям. "Результат"
lang_str = "C#";
var countRepoLang = await SearchReposit(searchQuery_str, lang_str, null_flg);
label7.Text = countRepoLang;
}
这将是正常的决定还是可以使其胜任?