Esempio n. 1
0
        private void SeedData()
        {
            if (!dbContext.Movies.Any())
            {
                List <Db.Movie> movieList = new List <Db.Movie>();
                int             rowId     = 1;
                HttpClient      client    = new HttpClient();

                client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                HttpResponseMessage response = client.GetAsync("https://data.sfgov.org/resource/yitu-d5am.json").Result;
                if (response.IsSuccessStatusCode)
                {
                    var responseStream = response.Content.ReadAsStringAsync().Result;
                    var movies         = JsonConvert.DeserializeObject <List <Db.Movie> >(responseStream);
                    foreach (var movie in movies)
                    {
                        movie.MovieId = rowId;
                        movieList.Add(movie);
                        rowId++;
                    }
                    dbContext.AddRange(movieList);
                    dbContext.SaveChanges();
                }
            }
        }
Esempio n. 2
0
        private void SetUpClient()
        {
            var builder = new WebHostBuilder()
                          .UseStartup <Startup>()
                          .ConfigureServices(services =>
            {
                var context = new MovieDBContext(new DbContextOptionsBuilder <MovieDBContext>()
                                                 .UseSqlite("DataSource=:memory:")
                                                 .EnableSensitiveDataLogging()
                                                 .Options);

                services.RemoveAll(typeof(MovieDBContext));
                services.AddSingleton(context);

                context.Database.OpenConnection();
                context.Database.EnsureCreated();

                context.AddRange(GetMoviesSeedData());
                context.AddRange(GetUsersSeedData());
                context.AddRange(GetGenresSeedData());
                context.AddRange(GetUserReviewsSeedData());
                context.AddRange(GetMovieGenreAssignmentSeedData());

                context.SaveChanges();

                // Clear local context cache
                foreach (var entity in context.ChangeTracker.Entries().ToList())
                {
                    entity.State = EntityState.Detached;
                }
            });

            _server = new TestServer(builder);

            Client = _server.CreateClient();
        }