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