/// <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); }