Ejemplo n.º 1
0
        public async Task <bool> AddRoleToMovieAsync(AddMovieRoleInputModel input)
        {
            if (!await dbContext.Movies.AnyAsync(movie => movie.Name == input.Movie))
            {
                return(false);
            }
            if (!await dbContext.Artists.AnyAsync(artist => artist.FullName == input.Artist))
            {
                return(false);
            }

            var movieFromDb = await dbContext.Movies.SingleOrDefaultAsync(movie => movie.Name == input.Movie);

            var artistFromDb = await dbContext.Artists.SingleOrDefaultAsync(artist => artist.FullName == input.Artist);

            if (await dbContext.MovieRoles.AnyAsync(movieRole => movieRole.ArtistId == artistFromDb.Id && movieRole.MovieId == movieFromDb.Id))
            {
                return(false);
            }

            var movieRoleForDb = mapper.Map <AddMovieRoleInputModel, MovieRole>(input);

            movieRoleForDb.Movie  = movieFromDb;
            movieRoleForDb.Artist = artistFromDb;

            await dbContext.MovieRoles.AddAsync(movieRoleForDb);

            await dbContext.SaveChangesAsync();

            return(true);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> AddRole(AddMovieRoleInputModel input)
        {
            if (!ModelState.IsValid)
            {
                return(View(input));
            }

            if (!await movieService.AddRoleToMovieAsync(input))
            {
                return(View(input));
            }

            return(Redirect(redirectMoviesAllAndOrder));
        }
Ejemplo n.º 3
0
        public async Task AddRoleToMovieShouldAddRoleProperly()
        {
            var genre1 = new Genre
            {
                Name = "genre1"
            };
            var artist1 = new Artist
            {
                FullName  = "name1",
                Biography = "biography1",
                BirthDate = DateTime.Parse("25 July 2019"),
                PhotoLink = "photo1",
            };
            var movie1 = new Movie
            {
                Name           = "movie1",
                ReleaseDate    = DateTime.Parse("24 July 2019"),
                Description    = "description1",
                Length         = 160,
                Genre          = genre1,
                Director       = artist1,
                CoverImageLink = "cover1",
                TrailerLink    = "trailer1",
            };
            await dbContext.Genres.AddAsync(genre1);

            await dbContext.Artists.AddAsync(artist1);

            await dbContext.Movies.AddAsync(movie1);

            await dbContext.SaveChangesAsync();

            var movieService = new MovieService(dbContext, reviewService.Object, watchlistService.Object, mapper);

            var input = new AddMovieRoleInputModel
            {
                Artist          = "name1",
                Movie           = "movie1",
                CharacterPlayed = "character1",
            };

            var actualResult = await movieService.AddRoleToMovieAsync(input);

            Assert.True(actualResult);
            Assert.True(dbContext.MovieRoles.Count() == 1);
            Assert.Equal(movie1, dbContext.MovieRoles.First().Movie);
            Assert.Equal(artist1, dbContext.MovieRoles.First().Artist);
            Assert.Equal("character1", dbContext.MovieRoles.First().CharacterPlayed);
        }
Ejemplo n.º 4
0
        public async Task AddRoleToMovieShouldReturnFalseIfProvidedArtistOrMovieNameIsInvalid(string movieName, string artistName, bool expectedResult)
        {
            var genre1 = new Genre
            {
                Name = "genre1"
            };
            var artist1 = new Artist
            {
                FullName  = "name1",
                Biography = "biography1",
                BirthDate = DateTime.Parse("25 July 2019"),
                PhotoLink = "photo1",
            };
            var artist2 = new Artist
            {
                FullName  = "name2",
                Biography = "biography2",
                BirthDate = DateTime.Parse("24 July 2019"),
                PhotoLink = "photo2",
            };
            var movie1 = new Movie
            {
                Name           = "movie1",
                ReleaseDate    = DateTime.Parse("24 July 2019"),
                Description    = "description1",
                Length         = 160,
                Genre          = genre1,
                Director       = artist1,
                CoverImageLink = "cover1",
                TrailerLink    = "trailer1",
            };
            var movieRole = new MovieRole
            {
                Movie           = movie1,
                Artist          = artist2,
                CharacterPlayed = "something",
            };
            await dbContext.Genres.AddAsync(genre1);

            await dbContext.Artists.AddAsync(artist1);

            await dbContext.Artists.AddAsync(artist2);

            await dbContext.Movies.AddAsync(movie1);

            await dbContext.MovieRoles.AddAsync(movieRole);

            await dbContext.SaveChangesAsync();

            var movieService = new MovieService(dbContext, reviewService.Object, watchlistService.Object, mapper);

            var input = new AddMovieRoleInputModel
            {
                Artist          = artistName,
                Movie           = movieName,
                CharacterPlayed = "character1",
            };

            var actualResult = await movieService.AddRoleToMovieAsync(input);

            Assert.True(actualResult == expectedResult);
        }