public async Task <IActionResult> Favorite(UserFavoriteRequestModel userFavoriteRequestModel) { userFavoriteRequestModel.UserId = Convert.ToInt32(HttpContext.User.Claims.FirstOrDefault(u => u.Type == ClaimTypes.NameIdentifier).Value); var favorite = await _userFavoriteService.AddFavorite(userFavoriteRequestModel); return(LocalRedirect("~/Movies/Details/" + userFavoriteRequestModel.MovieId)); }
public async Task <IActionResult> Unfavorite(UserFavoriteRequestModel requestModel) { // var userId = Convert.ToInt32(HttpContext.User.Claims // .FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value); var userId = _currentUserService.Id ?? 0; await _userService.RemoveFavoriteMovie(requestModel.MovieId, userId); return(Redirect($"~/Movies/Details/{requestModel.MovieId}")); }
public async Task <IActionResult> FavoriteMovie([FromBody] UserFavoriteRequestModel model) { model.UserId = _currentUserService.Id ?? 0; var favorite = await _userService.FavoriteMovie(model.MovieId, model.UserId); if (favorite == null) { return(BadRequest(new { errorMessage = "You have already liked the movie." })); } return(Ok()); }
public async Task <IActionResult> FavoriteMovie([FromBody] UserFavoriteRequestModel model) { model.UserId = (int)_currentUserService.UserId; var favorite = await _userService.FavoriteMovie(model.MovieId, model.UserId); if (favorite == null) { return(NotFound("Failed to favorite the movie")); } return(Ok()); }
//public async Task<IEnumerable<Favorite>> GetFavoritsByUserId(int userId) { // return await _userFavoriteRepository.GetFavoritsByUserId(userId); //} public async Task <Favorite> AddFavorite(UserFavoriteRequestModel userFavoriteRequestModel) { if (await IsMovieFavorited(userFavoriteRequestModel.UserId, userFavoriteRequestModel.MovieId) == true) { throw new Exception("You added this movie as favorite"); } Favorite favorite = new Favorite() { userId = userFavoriteRequestModel.UserId, MovieId = userFavoriteRequestModel.MovieId }; var addFavorite = await _userFavoriteRepository.AddAsync(favorite); return(addFavorite); }