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 ConnectMovie_InvalidInput_ReturnsNull(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); if (expectedID == -4) { dbContext.CompanyMovies.Add(new Domain.CompanyMovie { CompanyID = company.ID, MovieID = movie.ID }); } await dbContext.SaveChangesAsync(); var newCompanyMovie = new AdminCompanyMovieModel { CompanyID = id, MovieID = movieID }; var appCompany = new Company(dbContext); #endregion #region Act var actualCompany = await appCompany.ConnectMovie(newCompanyMovie); #endregion #region Assert Assert.NotNull(actualCompany); Assert.Equal(expectedID, actualCompany.ID); #endregion }
public async Task ConnectMovie_ValidInput_ReturnsCorrectData(int id, int movieID) { #region Arrange var dbContext = new ApplicationDbContext(_dbContextOptions); await dbContext.Database.EnsureDeletedAsync(); dbContext.Companies.Add(new Domain.Company()); dbContext.Movies.Add(new Domain.Movie()); await dbContext.SaveChangesAsync(); var newCompanyMovie = new AdminCompanyMovieModel { CompanyID = id, MovieID = movieID }; var expectedCompany = new CompanyModel { ID = 1, Movies = new List <MovieModel> { new MovieModel { ID = 1, } } }; var appCompany = new Company(dbContext); #endregion #region Act var actualCompany = await appCompany.ConnectMovie(newCompanyMovie); #endregion #region Assert Assert.Equal(expectedCompany.ID, actualCompany.ID); Assert.Equal(expectedCompany.Movies.Count(), actualCompany.Movies.Count()); Assert.Equal(expectedCompany.Movies.ToList()[0].ID, actualCompany.Movies.ToList()[0].ID); #endregion }
public async Task <CompanyModel> DisconnectMovie(AdminCompanyMovieModel adminCompanyMovieModel) { var company = await _applicationDbContext.Companies.FirstOrDefaultAsync(c => c.ID == adminCompanyMovieModel.CompanyID); var movie = await _applicationDbContext.Movies.FirstOrDefaultAsync(c => c.ID == adminCompanyMovieModel.MovieID); if (company != null && movie != null) { var companyMovie = _applicationDbContext .CompanyMovies .FirstOrDefault(c => c.CompanyID == company.ID && c.MovieID == movie.ID); if (companyMovie != null) { _applicationDbContext.CompanyMovies.Remove(companyMovie); await _applicationDbContext.SaveChangesAsync(); return(new CompanyModel()); } } return(GetCompanyModelWithErrorID(company, movie)); }