public static WatchedMovieModel Map(MovieJMDBApi movie) { var watchedMovie = new WatchedMovie(); foreach (var movieIter in movie.WatchedUsers) { if (movieIter.MovieJMDBApiId == movie.Id) { watchedMovie = movieIter; } } return(new WatchedMovieModel { Id = movie.Id, Name = movie.Name, Actors = movie.MovieDetailsJMDBApi.Actors, Year = movie.MovieDetailsJMDBApi.Year, Director = movie.MovieDetailsJMDBApi.Director, Duration = movie.MovieDetailsJMDBApi.Duration, Genre = movie.MovieDetailsJMDBApi.Genre, Country = movie.MovieDetailsJMDBApi.Country, Poster = movie.Poster, Rate = watchedMovie.Rating, Comment = watchedMovie.Comment, DateTimeWatched = watchedMovie.WatchingDate, DateTimeAdded = watchedMovie.DateTimeAdded, UserId = watchedMovie.UserId, User = AutoMap <User, UserModel>(watchedMovie.User) }); }
public MovieJMDBApi Add(long userId, MovieJMDBApi movie) { // user mora da postoji var user = _uow.Users.FirstOrDefault(a => a.Id == userId, ""); ValidationHelper.ValidateNotNull(user); // film mora postojati u bazi da bi se dodala asocijativna klasa, ako ne postoji dodajemo ga // film postoji ako vec ima taj ID var movieExist = _uow.MoviesJMDBApi.FirstOrDefault(a => a.Id == movie.Id, ""); // ovo je izgenerisan id iz jmdb APIa a ne iz nase baze! if (movieExist != null) { //provera da li je vec unet film za tog usera: var exist = _uow.SavedMovies.FirstOrDefault(f => f.UserId == userId && f.MovieJMDBApiId == movie.Id, ""); ValidationHelper.ValidateEntityExists(exist); SavedMovie savedMovie = new SavedMovie { UserId = userId, MovieJMDBApiId = movie.Id, SavingDate = DateTime.Now }; var savedMovieAdded = _uow.SavedMovies.Add(savedMovie, ""); _uow.Save(); } else { //moramo da ga dodamo a nakon toga i asocijativnu klasu var newMovie = _uow.MoviesJMDBApi.Add(movie, ""); _uow.Save(); //provera da li je vec unet film za tog usera: var exist = _uow.SavedMovies.FirstOrDefault(f => f.UserId == userId && f.MovieJMDBApiId == movie.Id, ""); ValidationHelper.ValidateEntityExists(exist); // ako nije dodajemo ga SavedMovie savedMovie = new SavedMovie { UserId = userId, MovieJMDBApiId = movie.Id, SavingDate = DateTime.Now }; _uow.SavedMovies.Add(savedMovie, ""); _uow.Save(); } return(movie); }
public MovieJMDBApi Add(MovieDetailsJMDBApi movie, long userId, string comment, int rate, string date, string poster, string movieAPIid) { var user = _uow.Users.FirstOrDefault(a => a.Id == userId, ""); ValidationHelper.ValidateNotNull(user); var watchedMovie = _uow.WatchedMovies.FirstOrDefault(f => f.UserId == userId && f.MovieJMDBApiId == movieAPIid, "MovieJMDBApi"); ValidationHelper.ValidateEntityExists(watchedMovie); var movieAPI = _uow.MoviesJMDBApi.FirstOrDefault(a => a.Id == movieAPIid, ""); if (movieAPI == null) { MovieJMDBApi add = new MovieJMDBApi { Id = movieAPIid, Name = movie.Name, Poster = poster, MovieDetailsJMDBApi = movie }; _uow.MoviesJMDBApi.Add(add); _uow.Save(); } WatchedMovie watchedMoive = new WatchedMovie { UserId = userId, MovieJMDBApiId = movieAPIid, Comment = comment, Rating = rate, WatchingDate = date, DateTimeAdded = DateTime.Now }; var watchedMovieAdded = _uow.WatchedMovies.Add(watchedMoive, ""); _uow.Save(); var savedMovie = _uow.SavedMovies.FirstOrDefault(m => m.MovieJMDBApiId == movieAPIid && m.UserId == userId); if (savedMovie != null) { _uow.SavedMovies.Delete(savedMovie); _uow.Save(); } ; return(watchedMovieAdded.MovieJMDBApi); }
public static AddSavedMovieModel MapAdd(MovieJMDBApi movie, long userId) { return(new AddSavedMovieModel { Id = movie.Id, Name = movie.Name, Poster = movie.Poster, UserId = userId, Actors = movie.MovieDetailsJMDBApi.Actors, Genre = movie.MovieDetailsJMDBApi.Genre, Duration = movie.MovieDetailsJMDBApi.Duration, Year = movie.MovieDetailsJMDBApi.Year, Country = movie.MovieDetailsJMDBApi.Country, Director = movie.MovieDetailsJMDBApi.Director // User = AutoMap<User, UserModel>(userMovie) }); }
public static WatchedMovieModel MapFriend(MovieJMDBApi movie, WatchedMovie watchedMovie) { return(new WatchedMovieModel { Id = movie.Id, Name = movie.Name, Actors = movie.MovieDetailsJMDBApi.Actors, Year = movie.MovieDetailsJMDBApi.Year, Director = movie.MovieDetailsJMDBApi.Director, Duration = movie.MovieDetailsJMDBApi.Duration, Genre = movie.MovieDetailsJMDBApi.Genre, Country = movie.MovieDetailsJMDBApi.Country, Poster = movie.Poster, Rate = watchedMovie.Rating, Comment = watchedMovie.Comment, DateTimeWatched = watchedMovie.WatchingDate, DateTimeAdded = watchedMovie.DateTimeAdded, UserId = watchedMovie.UserId, User = AutoMap <User, UserModel>(watchedMovie.User) }); }
public static SavedMovieModel Map(MovieJMDBApi movie, long userId) { var userMovie = new User(); DateTime dateTimeSaved = new DateTime(); foreach (var movie1 in movie.SavedUsers) { if (movie1.UserId == userId) { userMovie = movie1.User; dateTimeSaved = movie1.SavingDate; break; } } return(new SavedMovieModel { Id = movie.Id, Name = movie.Name, Poster = movie.Poster, DateTimeSaved = dateTimeSaved, UserId = userId, User = AutoMap <User, UserModel>(userMovie) }); }
public void UpdateMovie() { WatchedMovie watchedMoiveForUpdate = new WatchedMovie { //user can update comment, rate OR date waching, only one, two, or all of them Comment = "Updated comment", Rating = 2 }; var movieAPI = new MovieJMDBApi { Id = "tt123", MovieDetailsJMDBApi = new MovieDetailsJMDBApi { Actors = "Actors", Country = "USA", Director = "Director", Duration = 111, Genre = "Action", Name = "Movie 99", Year = 2020 }, Name = "Movie 99", Poster = "poster 9", SavedUsers = null, WatchedUsers = null }; WatchedMovie watchedMoive = new WatchedMovie { UserId = 1, MovieJMDBApiId = "tt123", Comment = "comment", Rating = 5, WatchingDate = "22.02.2020.", DateTimeAdded = DateTime.Now, MovieJMDBApi = movieAPI, User = fakeUser }; string movieId = "tt123"; long currentUserId = 1; _uowMock.Setup(uow => uow.Users.GetById(currentUserId)).Returns(fakeUser); _uowMock.Setup(uow => uow.MoviesJMDBApi.GetById(movieId)).Returns(movieAPI); _uowMock.Setup(uow => uow.WatchedMovies.FirstOrDefault(f => f.MovieJMDBApiId == movieId && f.UserId == currentUserId, "")) .Returns(watchedMoive); _uowMock.Setup(uow => uow.WatchedMovies.Update(watchedMoive, currentUserId, watchedMoive.MovieJMDBApiId)) .Returns(watchedMoive); _uowMock.Setup(uow => uow.Save()).Callback(() => { watchedMoive.Comment = "Updated comment"; watchedMoive.Rating = 2; }); var result = _manager.Update(watchedMoive, movieId, currentUserId); _uowMock.Verify(uow => uow.WatchedMovies.Update(watchedMoive, currentUserId, watchedMoive.MovieJMDBApiId), Times.Once()); _uowMock.Verify(uow => uow.Save(), Times.Once()); Assert.IsNotNull(result); }
public void AddMovie() { var movieToAdd = new MovieDetailsJMDBApi() { Actors = "Actors", Country = "USA", Director = "Director", Duration = 111, Genre = "Action", Name = "Movie 99", Year = 2020 }; var movieAPI = new MovieJMDBApi { Id = "tt123", MovieDetailsJMDBApi = new MovieDetailsJMDBApi { Actors = "Actors", Country = "USA", Director = "Director", Duration = 111, Genre = "Action", Name = "Movie 99", Year = 2020 }, Name = "Movie 99", Poster = "poster 9", SavedUsers = null, WatchedUsers = null }; long currentUserId = 1; string comment = "comment"; int rate = 5; string date = "22.02.2020."; string movieId = "tt123"; string poster = "poster"; WatchedMovie watchedMoive = new WatchedMovie { UserId = 1, MovieJMDBApiId = "tt123", Comment = "comment", Rating = 5, WatchingDate = "22.02.2020.", DateTimeAdded = DateTime.Now, MovieJMDBApi = movieAPI, User = fakeUser }; _uowMock.Setup(uow => uow.Users.FirstOrDefault(a => a.Id == currentUserId, "")).Returns(fakeUser); _uowMock.Setup(uow => uow.WatchedMovies.FirstOrDefault(f => f.UserId == currentUserId && f.MovieJMDBApiId == movieId, "MovieJMDBApi")) .Returns((WatchedMovie)null); _uowMock.Setup(uow => uow.MoviesJMDBApi.FirstOrDefault(a => a.Id == movieId, "")).Returns(movieAPI); _uowMock.Setup(uow => uow.SavedMovies.FirstOrDefault(a => a.MovieJMDBApiId == movieId && a.UserId == currentUserId, "")) .Returns((SavedMovie)null); _uowMock.Setup(uow => uow.WatchedMovies.Add(It.Is <WatchedMovie>(m => m.UserId == 1), "")).Returns(watchedMoive); var result = _manager.Add(movieToAdd, currentUserId, comment, rate, date, poster, movieId); _uowMock.Verify(uow => uow.WatchedMovies.Add(It.Is <WatchedMovie>(m => m.UserId == 1), ""), Times.Once()); _uowMock.Verify(uow => uow.Save(), Times.Once()); Assert.NotNull(result); Assert.AreEqual(movieAPI, result); }
public void AddSavedMovieSavedMovieExist() { var movieToAdd = new MovieJMDBApi { Id = "tt999", MovieDetailsJMDBApi = new MovieDetailsJMDBApi { Actors = "Actors", Country = "USA", Director = "Director", Duration = 111, Genre = "Action", Name = "Movie 99", Year = 2020 }, Name = "Movie 99", Poster = "poster 9", SavedUsers = null, WatchedUsers = null }; SavedMovie savedMovie = new SavedMovie { UserId = 1, MovieJMDBApiId = "tt999", SavingDate = DateTime.Now, User = fakeUser, MovieJMDBApi = new MovieJMDBApi { Id = "tt999", MovieDetailsJMDBApi = new MovieDetailsJMDBApi { Actors = "Actors", Country = "USA", Director = "Director", Duration = 111, Genre = "Action", Name = "Movie 99", Year = 2020 }, Name = "Movie 99", Poster = "poster 9", SavedUsers = new List <SavedMovie> { new SavedMovie { MovieJMDBApi = movieToAdd, MovieJMDBApiId = "tt999", SavingDate = DateTime.Now, User = fakeUser, UserId = 1 } }, WatchedUsers = null } }; _uowMock.Setup(uow => uow.Users.FirstOrDefault(x => x.Id == 1, "")) .Returns(fakeUser); _uowMock.Setup(uow => uow.MoviesJMDBApi.FirstOrDefault(m => m.Id == movieToAdd.Id, "")) .Returns(movieToAdd); _uowMock.Setup(uow => uow.SavedMovies.FirstOrDefault(m => m.UserId == 1 && m.MovieJMDBApiId == movieToAdd.Id, "")) .Returns(savedMovie); Exception ex = Assert.Throws <ValidationException>(delegate { _manager.Add(1, movieToAdd); }); Assert.That(ex.Message, Is.EqualTo("SavedMovie currently exists!")); }
public void AddSavedMovieMovieJMDBApiNotExixstInDb() { var movieToAdd = new MovieJMDBApi { Id = "tt999", MovieDetailsJMDBApi = new MovieDetailsJMDBApi { Actors = "Actors", Country = "USA", Director = "Director", Duration = 111, Genre = "Action", Name = "Movie 99", Year = 2020 }, Name = "Movie 99", Poster = "poster 9", SavedUsers = null, WatchedUsers = null }; _uowMock.Setup(uow => uow.Users.FirstOrDefault(x => x.Id == 1, "")) .Returns(fakeUser); _uowMock.Setup(uow => uow.MoviesJMDBApi.FirstOrDefault(m => m.Id == movieToAdd.Id, "")) .Returns((MovieJMDBApi)null); _uowMock.Setup(uow => uow.MoviesJMDBApi.Add(movieToAdd, "")) .Returns(movieToAdd); _uowMock.Setup(uow => uow.SavedMovies.FirstOrDefault(m => m.UserId == 1 && m.MovieJMDBApiId == "tt999", "")) .Returns((SavedMovie)null); SavedMovie savedMovie = new SavedMovie { UserId = 1, MovieJMDBApiId = movieToAdd.Id, SavingDate = DateTime.Now }; SavedMovie addedSavedMovie = new SavedMovie { UserId = 1, MovieJMDBApiId = "tt999", SavingDate = DateTime.Now, User = fakeUser, MovieJMDBApi = new MovieJMDBApi { Id = "tt999", MovieDetailsJMDBApi = new MovieDetailsJMDBApi { Actors = "Actors", Country = "USA", Director = "Director", Duration = 111, Genre = "Action", Name = "Movie 99", Year = 2020 }, Name = "Movie 99", Poster = "poster 9", SavedUsers = new List <SavedMovie> { new SavedMovie { MovieJMDBApi = movieToAdd, MovieJMDBApiId = "tt999", SavingDate = DateTime.Now, User = fakeUser, UserId = 1 } }, WatchedUsers = null } }; _uowMock.Setup(uow => uow.SavedMovies.Add(savedMovie, "")) .Returns(addedSavedMovie); var result = _manager.Add(1, movieToAdd); // _uowMock.Verify(uow => uow.SavedMovies.Add(savedMovie, ""), Times.Once()); _uowMock.Verify(uow => uow.MoviesJMDBApi.Add(movieToAdd, ""), Times.Once()); _uowMock.Verify(uow => uow.Save(), Times.Exactly(2)); Assert.AreEqual(movieToAdd.Id, result.Id); Assert.AreEqual(movieToAdd.MovieDetailsJMDBApi, result.MovieDetailsJMDBApi); }
public void Setup() { _uowMock = new Mock <IUnitOfWork>(); _propertyMappingMock = new Mock <IPropertyMappingService>(); _propertyCheckerMock = new Mock <IPropertyCheckerService>(); _manager = new SavedMoviesManager(_propertyMappingMock.Object, _propertyCheckerMock.Object, _uowMock.Object); fakeUser = new User { Id = 1, Name = "user", Surname = "user", Password = "******", Picture = "picture", Email = "email", NotificationsReceived = null, NotificationsSent = null, FriendsReceived = null, FriendsSent = null, SavedMovies = null, WatchedMovies = null }; fakeMovieJMDBApi = new MovieJMDBApi { Id = "tt123", MovieDetailsJMDBApi = new MovieDetailsJMDBApi { Actors = "actors", Country = "SRB", Director = "Director", Duration = 111, Genre = "comedy", Name = "Movie 1", Year = 2021 }, Name = "Movie 1", Poster = "poster 1", SavedUsers = null, WatchedUsers = null }; fakeSavedMovie = new SavedMovie { UserId = 1, User = fakeUser, MovieJMDBApiId = "tt123", MovieJMDBApi = fakeMovieJMDBApi, SavingDate = new DateTime(2020, 5, 5) }; fakeListResult = new List <SavedMovie> { fakeSavedMovie, new SavedMovie { UserId = 1, MovieJMDBApiId = "tt999", SavingDate = new DateTime(2020, 6, 6), User = fakeUser, MovieJMDBApi = new MovieJMDBApi { Id = "tt999", MovieDetailsJMDBApi = new MovieDetailsJMDBApi { Actors = "Actors", Country = "USA", Director = "Director", Duration = 111, Genre = "Action", Name = "Movie 99", Year = 2020 }, Name = "Movie 99", Poster = "poster 9", SavedUsers = null, WatchedUsers = null } } }; }