public async Task CreateMovieShouldAddMovieToRepository() { AutoMapperConfig.RegisterMappings(typeof(MovieTestModel).Assembly); var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(Guid.NewGuid().ToString()); var repository = new EfDeletableEntityRepository <Movie>(new ApplicationDbContext(options.Options)); await repository.AddAsync(new Movie { Id = 1, Name = "Movie1" }); await repository.AddAsync(new Movie { Id = 2, Name = "Movie2" }); await repository.SaveChangesAsync(); var service = new MoviesService(repository, null, null, null); var movie = new CreateMovieServiceInputModel { Name = "TestMovie", Length = 50, Directors = new[] { "Test" }, Genres = new[] { "1" }, Actors = new[] { "Test" }, }; await service.CreaterMovieAsync(movie); var genresCount = service.GetAll <MovieTestModel>().Count; Assert.Equal(3, genresCount); }
public async Task <int> CreaterMovieAsync(CreateMovieServiceInputModel input) { var movie = new Movie { IMDBLink = input.IMDBLink, TrailerLink = input.IMDBLink, Language = input.Language, Length = input.Length, Name = input.Name, PosterUrl = input.PosterUrl, Rating = input.Rating, ReleaseDate = input.ReleaseDate, Summary = input.Summary, }; // Add actors var actors = input.Actors; foreach (var actor in actors) { movie.Actors.Add(new MovieActors { ActorId = actor, MovieId = movie.Id, }); } // Add genres var genres = input.Genres; foreach (var genre in genres) { var intGenre = int.Parse(genre); movie.Genres.Add(new MovieGenre { GenreId = intGenre, MovieId = movie.Id, }); } // Add directors var directors = input.Directors; foreach (var director in directors) { movie.Directors.Add(new MovieDirector { DirectorId = director, MovieId = movie.Id, }); } if (this.moviesRepository.All().Any(x => x.Name == input.Name)) { return(0); } await this.moviesRepository.AddAsync(movie); await this.moviesRepository.SaveChangesAsync(); return(movie.Id); }