Home finished
This commit is contained in:
@@ -8,6 +8,7 @@ using System.Text.Json;
|
||||
class OmdbService
|
||||
{
|
||||
private readonly string url;
|
||||
private readonly HttpClient httpClient = new();
|
||||
|
||||
public OmdbService()
|
||||
{
|
||||
@@ -24,13 +25,9 @@ class OmdbService
|
||||
/// </summary>
|
||||
/// <param name="id">ID IMDB del film da cercare.</param>
|
||||
/// <returns>Un oggetto Movie con i dettagli del film.</returns>
|
||||
public async Task<Movie> FetchMovieDetail(string id)
|
||||
public async Task<Movie?> FetchMovieDetail(string id)
|
||||
{
|
||||
var requestUrl = url + "&i=" + WebUtility.UrlEncode(id);
|
||||
using var httpClient = new HttpClient();
|
||||
|
||||
var response = await httpClient.GetStringAsync(requestUrl);
|
||||
return JsonSerializer.Deserialize<Movie>(response)!;
|
||||
return await FetchAsync<Movie>("i", id);
|
||||
}
|
||||
|
||||
|
||||
@@ -39,12 +36,26 @@ class OmdbService
|
||||
/// </summary>
|
||||
/// <param name="searchTitle">Titolo dei film da cercare.</param>
|
||||
/// <returns>>Una lista di oggetti Movie che corrispondono alla ricerca.</returns>
|
||||
public async Task<MovieSearch> FetchMovies(string searchTitle)
|
||||
public async Task<MovieSearch?> FetchMovies(string searchTitle)
|
||||
{
|
||||
var requestUrl = url + "&s=" + WebUtility.UrlEncode(searchTitle);
|
||||
using var httpClient = new HttpClient();
|
||||
return await FetchAsync<MovieSearch>("s", searchTitle);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Esegue una richiesta HTTP GET e deserializza la risposta JSON in un oggetto del tipo specificato.
|
||||
/// </summary>
|
||||
/// <typeparam name="T">Tipo dell'oggetto di ritorno.</typeparam>
|
||||
/// <param name="query">Parametro della query HTTP.</param>
|
||||
/// <param name="value">Valore del parametro della query HTTP.</param>
|
||||
/// <returns>Un oggetto del tipo specificato deserializzato dalla risposta JSON.</returns>
|
||||
private async Task<T?> FetchAsync<T>(string query, string value)
|
||||
{
|
||||
var requestUrl = url + "&" + query + "=" + WebUtility.UrlEncode(value);
|
||||
var response = await httpClient.GetStringAsync(requestUrl);
|
||||
return JsonSerializer.Deserialize<MovieSearch>(response)!;
|
||||
try {
|
||||
return JsonSerializer.Deserialize<T>(response)!;
|
||||
} catch (JsonException) {
|
||||
return default;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user