Ejemplo n.º 1
0
        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");
            }
        }
Ejemplo n.º 3
0
        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);
        }