Napisałem metodę która ma zwracać id projektu z gitlab api przyjmując na wejściu nazwę projektu :
static async Task<int> find_id(string repository, string AppName)
{
using (var httpClient = new HttpClient()) // GET AppID
{
string issue_path = which_repo(repository)[0]+ "search?scope=projects&search="+AppName;
using (var request = new HttpRequestMessage(new HttpMethod("GET"), issue_path))
{
request.Headers.TryAddWithoutValidation("PRIVATE-TOKEN", which_repo(repository)[1]);
var response = await httpClient.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
List<Project> projects = new List<Project>();
projects = JsonConvert.DeserializeObject<List<Project>>(content);
Project result = projects.FirstOrDefault(item => item.@namespace.full_path != "archiwum" );
Console.WriteLine("PROJECT: " + result.name_with_namespace + " ID: "+result.id);
return result.id;
}
}
}
Mam tylko problem ponieważ gdy wywołuję
Task<int> id = find_id("repo", appName);
Console.WriteLine(id);
Najpierw otrzymuję
System.Threading.Tasks.Task`1[System.Int32]
a potem odpowiedni wynik wykonania linii
Console.WriteLine("PROJECT: " + result.name_with_namespace + " ID: "+result.id);
Wiem że ma to związek z tym że to metoda async ale nadal nie czuje tego do końca i dlatego pytam tutaj.
HttpClient
skoro go nigdzie nie używasz?