Favorites (#4)
* Added favorites page * Refactor table to a reusable component Reviewed-on: #4 Co-authored-by: Berack96 <giacomobertolazzi7@gmail.com> Co-committed-by: Berack96 <giacomobertolazzi7@gmail.com>
This commit was merged in pull request #4.
This commit is contained in:
@@ -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<string> MoviesIDs = [];
|
||||
private readonly List<Movie> Movies = [];
|
||||
|
||||
/// <summary>
|
||||
/// Load favorite movies from local storage
|
||||
@@ -17,9 +17,9 @@ class ManageFavorite(Blazored.LocalStorage.ILocalStorageService localStorage)
|
||||
/// <returns></returns>
|
||||
public async Task LoadFavorites()
|
||||
{
|
||||
var favorites = await LocalStorage.GetItemAsync<List<string>>("favorite") ?? [];
|
||||
MoviesIDs.Clear();
|
||||
MoviesIDs.AddRange(favorites);
|
||||
var favorites = await LocalStorage.GetItemAsync<List<Movie>>("favorite") ?? [];
|
||||
Movies.Clear();
|
||||
Movies.AddRange(favorites);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -29,35 +29,35 @@ class ManageFavorite(Blazored.LocalStorage.ILocalStorageService localStorage)
|
||||
/// <returns>True if the movie is favorite, otherwise false</returns>
|
||||
public bool IsFavorite(string movieID)
|
||||
{
|
||||
return MoviesIDs.Contains(movieID);
|
||||
return Movies.Any(m => m.IdIMDB == movieID);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Toggle favorite status of a movie (by ID)
|
||||
/// </summary>
|
||||
/// <param name="movieID">The movie ID to toggle</param>
|
||||
/// <param name="movie">The movie ID to toggle</param>
|
||||
/// <returns>The new favorite status</returns>
|
||||
public async Task<bool> ToggleFavoriteMovie(string movieID)
|
||||
public async Task<bool> 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);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Get the list of favorite movie IDs
|
||||
/// </summary>
|
||||
/// <returns>The list of favorite movie IDs</returns>
|
||||
public List<string> GetFavoriteMovies()
|
||||
public List<Movie> GetFavoriteMovies()
|
||||
{
|
||||
return MoviesIDs;
|
||||
return Movies;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user