private static void RetrieveAndDisplayMovies(MovieDataManager movieDataManager) { PrintHeading("All Movies"); var imdbMovies = movieDataManager.GetAllMovies(); PrintImdbMovies(imdbMovies); PrintHeading("Movies By Year - 2013"); imdbMovies = movieDataManager.GetMoviesByYear(2013); PrintImdbMovies(imdbMovies); PrintHeading("Movies By Genre - Sci-Fi"); imdbMovies = movieDataManager.GetMoviesByGenre(Genre.SciFi); PrintImdbMovies(imdbMovies); }
public async Task CreateMovie_WhenAMovieDoesNotHaveRequiredData_Throws() { var movieDataManager = new MovieDataManager(_dbConnectionString); var movie = new Movie(null, "http://www.somedomain.com/movies/img/23", Genre.Action, 2019); // Act try { await movieDataManager.CreateMovie(movie); Assert.Fail("We were expecting a DbException to be thrown, but no exception was thrown"); } catch (DbException e) { StringAssert.Contains(e.Message, "'CreateMovie' expects parameter '@Title', which was not supplied"); } }
static void Main(string[] args) { DeployFreshDatabase(); var movieDataManager = new MovieDataManager(); var allMovies = movieDataManager.GetImdbMoviesFromInMemory(); /* * All Of the CreateMoviesTvpXXX methods (below) use a Table Valued Parameter * However the stored procedures are implemented in 4 different ways. * The method below calls stored procedures with the same name. * Please take a look at the stored procedures for the details. * Each of the storped procedures have different performance characterizrics * For small sets of records (< 50) the CreateMoviesTvpUsingCursor stored proecdure * is fastest */ ////movieDataManager.CreateMoviesTvpUsingCursor(allMovies); ////movieDataManager.CreateMoviesTvpDistinctInsertInto(allMovies); ////movieDataManager.CreateMoviesTvpMergeInsertInto(allMovies); movieDataManager.CreateMoviesTvpMergeMerge(allMovies); RetrieveAndDisplayMovies(movieDataManager); }