public async Task <IActionResult> TrackMovie(string movieId) { try { var movieExists = await _trackService.MovieExist(movieId); if (!movieExists) { return(NotFound()); } var userIdFromToken = this.User.GetUserId(); var trackedMovie = new TrackedMovie { MovieId = movieId, UserId = userIdFromToken, Watched = false }; trackedMovie.CreatedTime = DateTime.Now; // CreatedTime is used to sort the trackedMovies in the DTO. await _trackService.TrackMovie(trackedMovie); return(NoContent()); } catch (Exception err) { Log.Error(err.Message); return(BadRequest(new { message = err.Message })); } }
public async Task <IActionResult> UntrackMovie(string movieId) { try { var movieExists = await _trackService.MovieExist(movieId); if (!movieExists) { return(NotFound()); } var userIdFromToken = this.User.GetUserId(); var trackedMovie = new TrackedMovie { MovieId = movieId, UserId = userIdFromToken }; await _trackService.UntrackMovie(trackedMovie); return(Ok()); } catch (Exception err) { Log.Error(err.Message); return(BadRequest(new { message = err.Message })); } }
public async Task <IActionResult> Update([FromRoute] int id, TrackedMovie trackedMovie) { var userMovie = _context.MovieUser.Single(m => m.MovieUserId == id); userMovie.Favorited = trackedMovie.Favorited; userMovie.Genre = trackedMovie.Genre; userMovie.Watched = trackedMovie.Watched; _context.Update(userMovie); await _context.SaveChangesAsync(); return(View()); }
public async Task <TrackedMovie> ToggleMovieWatchedStatus(string movieId, string userId) { TrackedMovie track = await _trackRepository.Find(t => t.MovieId == movieId && t.UserId == userId); if (track == null) { return(null); } track.Watched = !track.Watched; var result = await _trackRepository.Update(track); return(result); }
public async Task <bool> UntrackMovie(TrackedMovie model) { var result = await _trackRepository.Delete(model); return(result > 0); }
public async Task <bool> TrackMovie(TrackedMovie model) { var result = await _trackRepository.Add(model); return(result); }