Ejemplo n.º 1
0
        public async Task <MovieModel> ConnectGenre(AdminGenreMovieModel adminGenreMovieModel)
        {
            var genre = await _applicationDbContext.Genres.FirstOrDefaultAsync(x => x.ID == adminGenreMovieModel.GenreID);

            var movie = await _applicationDbContext.Movies.FirstOrDefaultAsync(x => x.ID == adminGenreMovieModel.MovieID);

            if (genre != null && movie != null)
            {
                var doesConnectionExist = await _applicationDbContext.GenreMovies.FirstOrDefaultAsync(x => x.GenreID == genre.ID && x.MovieID == movie.ID);

                if (doesConnectionExist == null)
                {
                    var genreMovie = new Domain.GenreMovie
                    {
                        GenreID = adminGenreMovieModel.GenreID,
                        MovieID = adminGenreMovieModel.MovieID
                    };

                    _applicationDbContext.GenreMovies.Add(genreMovie);
                    await _applicationDbContext.SaveChangesAsync();

                    return(await Read(adminGenreMovieModel.MovieID));
                }

                return(GetMovieModelWithErrorID(genre, movie));
            }

            return(GetMovieModelWithErrorID(genre, movie));
        }
Ejemplo n.º 2
0
        public async Task DisconnectGenre_ValidInput_ReturnsTrue(int id, int genreID, int expectedID)
        {
            #region Arrange
            var dbContext = new ApplicationDbContext(_dbContextOptions);
            await dbContext.Database.EnsureDeletedAsync();

            var genre = new Domain.Genre();
            dbContext.Genres.Add(genre);

            var movie = new Domain.Movie();
            dbContext.Movies.Add(movie);

            var genreMovie = new Domain.GenreMovie
            {
                GenreID = genre.ID,
                MovieID = movie.ID
            };
            dbContext.GenreMovies.Add(genreMovie);

            await dbContext.SaveChangesAsync();

            var appMovie = new Movie(dbContext);
            #endregion

            #region Act
            var actual = await appMovie.DisconnectGenre(new AdminGenreMovieModel { GenreID = genreID, MovieID = id });

            #endregion

            #region Assert
            Assert.NotNull(actual);
            Assert.Equal(expectedID, actual.ID);
            #endregion
        }