public async Task <T> AddAsync(T entity) { await _dbContext.Set <T>().AddAsync(entity); await _dbContext.SaveChangesAsync(); return(entity); }
public static async Task SeedAsync(ParkingDbContext parkingDbContext, int?retry = 0) { int retryForAvailability = retry.Value; try { // TODO: Only run this if using a real database // context.Database.Migrate(); if (!parkingDbContext.Parkings.Any()) { parkingDbContext.Parkings.AddRange(GetDefaultParkings()); await parkingDbContext.SaveChangesAsync(); } if (!parkingDbContext.Cars.Any()) { parkingDbContext.Cars.AddRange( GetDefaultCars()); await parkingDbContext.SaveChangesAsync(); } if (!parkingDbContext.Routes.Any()) { parkingDbContext.Routes.AddRange( GetDefaultRoute()); await parkingDbContext.SaveChangesAsync(); } } catch (Exception ex) { if (retryForAvailability < 10) { retryForAvailability++; await SeedAsync(parkingDbContext, retryForAvailability); } throw; } }