public ActionResult _Fav(string ID) { List <string> errors = new List <string>(); // You might want to return an error if something wrong happened FavouriteMovie favMovieData = new FavouriteMovie(); favMovieData.MovieId = ID; favMovieData.UserId = User.Identity.GetUserId(); try { int movieID = int.Parse(ID); TMDbClient client = new TMDbClient("a331c3f9e48b75412c7c99a04a4aba78"); client = MovieDatabase.FetchConfig(client); Movie movie = client.GetMovieAsync(movieID, MovieMethods.Videos).Result; string xmlMovieInfo = MovieDatabase.GetXMLFromObject(movie); var xmlData = XElement.Parse(xmlMovieInfo); favMovieData.MovieInfo = xmlData; } catch (Exception ex) { errors.Add(ex.ToString()); } db.FavouriteMovies.Add(favMovieData); db.SaveChanges(); return(Json(errors, JsonRequestBehavior.AllowGet)); }
public IActionResult OnPost(MovieVM testMovie, string returnUrl = null, string favUrl = null) { int? favouriteId = HttpContext.Session.GetInt32("favouriteId"); bool isUser = _signInManager.IsSignedIn(User); string userId = null; returnUrl = returnUrl ?? Url.Content("/Identity/Account/Login"); favUrl = favUrl ?? Url.Content("/MovieFavourites/MovieFavourites"); if (isUser) { userId = _userManager.FindByNameAsync(User.Identity.Name).Result.Id; } else { return(LocalRedirect(returnUrl)); } Favourite fav; if (favouriteId == null) { fav = new Favourite(userId, DateTime.Now); _db.Favourites.Add(fav); _db.SaveChanges(); favouriteId = fav.Id; } else { Favourite = _db.Favourites .Include(f => f.FavouriteMovies) .ThenInclude(fm => fm.Movie) .Where(f => f.Id == (int)HttpContext.Session.GetInt32("favouriteId")) .FirstOrDefault(); if (Favourite.UserId != userId) { fav = new Favourite(userId, DateTime.Now); _db.Favourites.Add(fav); _db.SaveChanges(); favouriteId = fav.Id; } } FavouriteMovie fm; fm = _db.FavouriteMovies.Where(fm => fm.FavouriteId == favouriteId && fm.MovieId == testMovie.Id).FirstOrDefault(); if (fm == null) { fm = new FavouriteMovie((int)favouriteId, testMovie.Id); _db.FavouriteMovies.Add(fm); } _db.SaveChanges(); HttpContext.Session.SetInt32("favouriteId", (int)favouriteId); return(LocalRedirect(favUrl)); }
public ActionResult DeleteConfirmed(int id) { FavouriteMovie FavouriteMovie = db.FavouriteMovies.Find(id); db.FavouriteMovies.Remove(FavouriteMovie); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "ID,UserId,MovieId,movieInfo,UserHasWatched")] FavouriteMovie FavouriteMovie) { if (ModelState.IsValid) { db.Entry(FavouriteMovie).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(FavouriteMovie)); }
public ActionResult Create([Bind(Include = "ID,UserId,MovieId,movieInfo,UserHasWatched")] FavouriteMovie FavouriteMovie) { if (ModelState.IsValid) { db.FavouriteMovies.Add(FavouriteMovie); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(FavouriteMovie)); }
private async void DeleteFavourite(int id) { var selectedItem = FavouriteMovie.FirstOrDefault(m => m.Id == id); if (selectedItem != null) { selectedItem.IsFavorited = !selectedItem.IsFavorited; await MovieRepository.UpdateMovie(selectedItem); FavouriteMovie.Remove(selectedItem); } }
public async Task <ResultDto <BaseDto> > AddFavouriteMovie(ClaimsPrincipal user, int movieId) { var result = new ResultDto <BaseDto>() { Error = null }; try { string userId = await _userManager.GetId(user); if (string.IsNullOrEmpty(userId)) { result.Error = "Nie znaleziono u¿ytkownika"; return(result); } var movieExists = await _repo.Exists(x => x.Id == movieId); if (!movieExists) { result.Error = "Nie znaleziono filmu"; return(result); } var favouriteMovieAlreadyExists = await _favouriteMovieRepo.Exists(x => x.UserId == userId && x.MovieId == movieId); if (favouriteMovieAlreadyExists) { result.Error = "Ten film zosta³ ju¿ dodany jako ulubiony"; return(result); } var favouriteMovie = new FavouriteMovie() { MovieId = movieId, UserId = userId }; await _favouriteMovieRepo.Add(favouriteMovie); return(result); } catch (Exception) { result.Error = "Wyst¹pi³ b³¹d"; return(result); } }
// GET: FavouriteMovies/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } FavouriteMovie FavouriteMovie = db.FavouriteMovies.Find(id); if (FavouriteMovie == null) { return(HttpNotFound()); } return(View(FavouriteMovie)); }
public ActionResult _UnFav(string ID) { List <string> errors = new List <string>(); // You might want to return an error if something wrong happened try { string userId = User.Identity.GetUserId(); FavouriteMovie FavouriteMovie = db.FavouriteMovies.Where(x => x.UserId == userId && x.MovieId == ID).FirstOrDefault(); db.FavouriteMovies.Remove(FavouriteMovie); db.SaveChanges(); } catch (Exception ex) { errors.Add(ex.ToString()); } return(Json(errors, JsonRequestBehavior.AllowGet)); }
public async void ShouldDeleteMovieFromFavouritesIfTheresNoErrors() { var movieId = 1; string email = "*****@*****.**"; string username = "******"; string role = "user"; string userId = Guid.NewGuid().ToString(); var userDb = new User() { Id = "id", Email = "" }; var favouriteMovie = new FavouriteMovie() { MovieId = movieId, UserId = "id" }; var user = GetUserMock(email, username, role); var repo = new Mock <IRepository <Movie> >(); var reviewRepo = new Mock <IRepository <Review> >(); var favouriteMovieRepo = new Mock <IRepository <FavouriteMovie> >(); var hostingEnvironment = new Mock <IHostingEnvironment>(); var store = new Mock <IUserStore <User> >(); var userManager = new Mock <UserManager <User> >(store.Object, null, null, null, null, null, null, null, null); List <Review> reviews = new List <Review>(); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).Returns(Task.FromResult(userDb)); repo.Setup(x => x.Exists(It.IsAny <Expression <Func <Movie, bool> > >())).Returns(Task.FromResult(true)); favouriteMovieRepo.Setup(x => x.GetEntity(It.IsAny <Expression <Func <FavouriteMovie, bool> > >())).Returns(Task.FromResult(favouriteMovie)); var movieService = new MovieService(repo.Object, reviewRepo.Object, userManager.Object, hostingEnvironment.Object, favouriteMovieRepo.Object); var result = await movieService.DeleteFavouriteMovie(user, movieId); Assert.Null(result.Error); }
public async void ShouldNotDeleteMovieFromFavouritesIfNotFavourite() { var movieId = 1; string email = "*****@*****.**"; string username = "******"; string role = "user"; var userDb = new User() { Id = "id", Email = "" }; FavouriteMovie favouriteMovie = null; var user = GetUserMock(email, username, role); var repo = new Mock <IRepository <Movie> >(); var reviewRepo = new Mock <IRepository <Review> >(); var favouriteMovieRepo = new Mock <IRepository <FavouriteMovie> >(); var hostingEnvironment = new Mock <IHostingEnvironment>(); var store = new Mock <IUserStore <User> >(); var userManager = new Mock <UserManager <User> >(store.Object, null, null, null, null, null, null, null, null); List <Review> reviews = new List <Review>(); userManager.Setup(x => x.FindByEmailAsync(It.IsAny <string>())).Returns(Task.FromResult(userDb)); repo.Setup(x => x.Exists(It.IsAny <Expression <Func <Movie, bool> > >())).Returns(Task.FromResult(true)); favouriteMovieRepo.Setup(x => x.GetEntity(It.IsAny <Expression <Func <FavouriteMovie, bool> > >())).Returns(Task.FromResult(favouriteMovie)); var movieService = new MovieService(repo.Object, reviewRepo.Object, userManager.Object, hostingEnvironment.Object, favouriteMovieRepo.Object); var result = await movieService.DeleteFavouriteMovie(user, movieId); var error = "Ten film nie jest dodany jako ulubiony"; Assert.Contains(error, result.Error); }