/// <summary>
        /// Searches for the movies in the database by the given search text, type, and category.
        /// </summary>
        /// <param name="searchText"></param>
        /// <param name="type"></param>
        /// <param name="category"></param>
        /// <returns>Initializes a new instance of the <see cref="MoviesByCategoryModel"/> in a Json format.</returns>
        public async Task <IActionResult> SearchMoviesInDatabase(string searchText, string type, string category)
        {
            var movies = new MoviesByCategoryModel();

            switch (type)
            {
            case "Title":
                movies = await _repository.GetMoviesByTitle(_userRepository.GetUserId(this.User), searchText, category);

                break;

            case "Director":
                movies = await _repository.GetMoviesByDirector(_userRepository.GetUserId(this.User), searchText, category);

                break;

            case "Genre":
                movies = await _repository.GetMoviesByGenre(_userRepository.GetUserId(this.User), searchText, category);

                break;

            default:
                break;
            }

            return(Json(movies));
        }
        /// <summary>
        /// Gets all the movies in the current category.
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="category"></param>
        /// <param name="pageNumber"></param>
        /// <param name="moviesOnPage"></param>
        /// <returns>Instance of class <see cref="MoviesByCategoryModel"/> with all the movies in the category.</returns>
        public async Task <MoviesByCategoryModel> GetMoviesByCategory(Guid userId, string category, int pageNumber = 1, int moviesOnPage = 1)
        {
            var userMovies = GetMoviesIdByUserId(userId, pageNumber, category, moviesOnPage);

            var moviesByCategory = new MoviesByCategoryModel
            {
                Movies     = new List <Movie>(),
                TotalCount = _dataContext.Users_Movies
                             .Count(mG => mG.UserId == userId && mG.Category.Equals(category)),
                PageNumber = pageNumber
            };

            foreach (var userMovie in userMovies)
            {
                var movie = await GetMovieById(userMovie.MovieId);

                moviesByCategory.Movies.Add(movie);
            }

            return(moviesByCategory);
        }