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)); }
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 }