}
@@ -71,6 +53,6 @@
private async Task ToggleFavoriteMovie()
{
- await ManageFavorite.ToggleFavoriteMovie(id);
+ await ManageFavorite.ToggleFavoriteMovie(movie!);
}
}
diff --git a/Models/Movie.cs b/Models/Movie.cs
index e59d11b..6eb8346 100644
--- a/Models/Movie.cs
+++ b/Models/Movie.cs
@@ -1,13 +1,10 @@
-
-
using System.Text.Json.Serialization;
-
///
/// Rappresenta un film con le sue proprietà principali.
/// Non ho preso tutte le proprietà disponibili dall'API OMDB, solo quelle richieste.
///
-class Movie
+public class Movie
{
public required string Title { get; set; }
public required string Year { get; set; }
diff --git a/Models/MovieSearch.cs b/Models/MovieSearch.cs
index d1a7f83..cbfe5c8 100644
--- a/Models/MovieSearch.cs
+++ b/Models/MovieSearch.cs
@@ -1,13 +1,10 @@
-
-
using System.Text.Json.Serialization;
-
///
/// Modello per rappresentare i risultati di una ricerca di film.
/// Ha solo scopo di deserializzazione della risposta JSON dell'API OMDB.
///
-class MovieSearch
+public class MovieSearch
{
public required Movie[] Search { get; set; }
[JsonPropertyName("totalResults")]
diff --git a/Services/ManageFavorite.cs b/Services/ManageFavorite.cs
index e3a7e4a..ad48753 100644
--- a/Services/ManageFavorite.cs
+++ b/Services/ManageFavorite.cs
@@ -8,7 +8,7 @@ class ManageFavorite(Blazored.LocalStorage.ILocalStorageService localStorage)
{
// Inject the local storage service
private readonly Blazored.LocalStorage.ILocalStorageService LocalStorage = localStorage;
- private readonly List MoviesIDs = [];
+ private readonly List Movies = [];
///
/// Load favorite movies from local storage
@@ -17,9 +17,9 @@ class ManageFavorite(Blazored.LocalStorage.ILocalStorageService localStorage)
///
public async Task LoadFavorites()
{
- var favorites = await LocalStorage.GetItemAsync>("favorite") ?? [];
- MoviesIDs.Clear();
- MoviesIDs.AddRange(favorites);
+ var favorites = await LocalStorage.GetItemAsync>("favorite") ?? [];
+ Movies.Clear();
+ Movies.AddRange(favorites);
}
///
@@ -29,35 +29,35 @@ class ManageFavorite(Blazored.LocalStorage.ILocalStorageService localStorage)
/// True if the movie is favorite, otherwise false
public bool IsFavorite(string movieID)
{
- return MoviesIDs.Contains(movieID);
+ return Movies.Any(m => m.IdIMDB == movieID);
}
///
/// Toggle favorite status of a movie (by ID)
///
- /// The movie ID to toggle
+ /// The movie ID to toggle
/// The new favorite status
- public async Task ToggleFavoriteMovie(string movieID)
+ public async Task ToggleFavoriteMovie(Movie movie)
{
- if (!IsFavorite(movieID))
+ if (!IsFavorite(movie.IdIMDB))
{
- MoviesIDs.Add(movieID);
+ Movies.Add(movie);
}
else
{
- MoviesIDs.RemoveAll(id => id == movieID);
+ Movies.RemoveAll(m => m.IdIMDB == movie.IdIMDB);
}
- await LocalStorage.SetItemAsync("favorite", MoviesIDs);
- return IsFavorite(movieID);
+ await LocalStorage.SetItemAsync("favorite", Movies);
+ return IsFavorite(movie.IdIMDB);
}
///
/// Get the list of favorite movie IDs
///
/// The list of favorite movie IDs
- public List GetFavoriteMovies()
+ public List GetFavoriteMovies()
{
- return MoviesIDs;
+ return Movies;
}
}
\ No newline at end of file