Exemplo n.º 1
0
        public async Task <CompanyModel> ConnectMovie(AdminCompanyMovieModel adminCompanyMovieModel)
        {
            var company = await _applicationDbContext.Companies.FirstOrDefaultAsync(c => c.ID == adminCompanyMovieModel.CompanyID);

            var movie = await _applicationDbContext.Movies.FirstOrDefaultAsync(m => m.ID == adminCompanyMovieModel.MovieID);

            if (company != null && movie != null)
            {
                var doesConnectionExist = await _applicationDbContext.CompanyMovies.FirstOrDefaultAsync(c => c.CompanyID == company.ID && c.MovieID == movie.ID);

                if (doesConnectionExist == null)
                {
                    var companyMovie = new Domain.CompanyMovie
                    {
                        CompanyID = company.ID,
                        MovieID   = movie.ID
                    };

                    _applicationDbContext.CompanyMovies.Add(companyMovie);
                    await _applicationDbContext.SaveChangesAsync();

                    return(await Read(company.ID));
                }

                return(GetCompanyModelWithErrorID(company, movie));
            }

            return(GetCompanyModelWithErrorID(company, movie));
        }
Exemplo n.º 2
0
        public async Task DisconnectMovie_ValidInput_ReturnsTrue(int id, int movieID, int expectedID)
        {
            #region Arrange
            var dbContext = new ApplicationDbContext(_dbContextOptions);
            await dbContext.Database.EnsureDeletedAsync();

            var company = new Domain.Company();
            dbContext.Companies.Add(company);

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

            var companyMovie = new Domain.CompanyMovie
            {
                CompanyID = company.ID,
                MovieID   = movie.ID
            };
            dbContext.CompanyMovies.Add(companyMovie);

            await dbContext.SaveChangesAsync();

            var appCompany = new Company(dbContext);
            #endregion

            #region Act
            var actual = await appCompany.DisconnectMovie(new AdminCompanyMovieModel { CompanyID = id, MovieID = movieID });

            #endregion

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