Files
test-alebro/Services/OmdbService.cs
2026-01-19 20:22:55 +01:00

50 lines
1.6 KiB
C#

using System.Net;
using System.Text.Json;
/// <summary>
/// Servizio per interagire con l'API OMDB.
/// Semplifica le richieste per ottenere dettagli sui film.
/// </summary>
class OmdbService
{
private readonly string url;
public OmdbService()
{
var apiKey = File.ReadAllText("APIKey.txt").Trim();
apiKey = WebUtility.UrlEncode(apiKey);
url = "http://www.omdbapi.com/?apikey=" + apiKey
+ "&type=movie"
+ "&r=json";
}
/// <summary>
/// Recupera i dettagli di un film dato il suo ID IMDB.
/// </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)
{
var requestUrl = url + "&i=" + WebUtility.UrlEncode(id);
using var httpClient = new HttpClient();
var response = await httpClient.GetStringAsync(requestUrl);
return JsonSerializer.Deserialize<Movie>(response)!;
}
/// <summary>
/// Recupera una lista di film che corrispondono al titolo di ricerca.
/// </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)
{
var requestUrl = url + "&s=" + WebUtility.UrlEncode(searchTitle);
using var httpClient = new HttpClient();
var response = await httpClient.GetStringAsync(requestUrl);
return JsonSerializer.Deserialize<MovieSearch>(response)!;
}
}