public async Task Load()
        {
            IsLoading = true;

            try
            {
                if (Movies.Any())
                {
                    _logManager.LogDebug("Movies already loaded, skipping to reload.");
                    return;
                }

                IList <Movie> movies = (await _movieService.GetMovies()).ToList();
                foreach (Movie movie in movies.OrderBy(q => q.Name))
                {
                    Movies.Add(movie);
                }


                ContinueWatchingMovies = new ObservableCollectionEx <Movie>(
                    Movies.Where(q => q.PlaybackPosition.Ticks > 0));
                RaisePropertyChanged(nameof(ContinueWatchingMovies));

                RecentlyReleasedMovies = new ObservableCollectionEx <Movie>(Movies
                                                                            .Where(q => q.PremiereDate > DateTime.Now.AddMonths(-18))
                                                                            .OrderByDescending(q => q.PremiereDate)
                                                                            .Take(20).ToList());

                RaisePropertyChanged(nameof(RecentlyReleasedMovies));

                MovieGenres = _movies.SelectMany(q => q.Genres).GroupBy(q => q).Select(group => group.Key)
                              .OrderBy(x => x).ToList();
                FirstFavoriteGenre  = MovieGenres[0];
                SecondFavoriteGenre = MovieGenres[1];

                MoviesFirstFavoriteGenre = new ObservableCollectionEx <Movie>(Movies
                                                                              .Where(q => q.Genres.Any(w => w == FirstFavoriteGenre))
                                                                              .OrderByDescending(q => q.OfficialRating)
                                                                              .Take(20).ToList());
                RaisePropertyChanged(nameof(MoviesFirstFavoriteGenre));

                MoviesSecondFavoriteGenre = new ObservableCollectionEx <Movie>(Movies
                                                                               .Where(q => q.Genres.Any(w => w == SecondFavoriteGenre))
                                                                               .OrderByDescending(q => q.OfficialRating)
                                                                               .Take(20).ToList());
                RaisePropertyChanged(nameof(MoviesSecondFavoriteGenre));

                OrderByName();
            }
            catch (Exception xc)
            {
                _logManager.LogError(xc, "An error occurred while loading movies.");
            }
            finally
            {
                IsLoading = false;
            }
        }