public GenerateDemoData(Configuration configuration, IStorage storage, LicensePlateGenerator licensePlateGenerator, VehicleCategoryGenerator vehicleCategoryGenerator) { this.configuration = configuration; this.storage = storage; this.licensePlateGenerator = licensePlateGenerator; this.vehicleCategoryGenerator = vehicleCategoryGenerator; }
private static IEnumerable <Car> GetCarsToImport( int numberOfAustrianCars, int numberOfGermanCars, LicensePlateGenerator licensePlateGenerator, VehicleCategoryGenerator vehicleCategoryGenerator) { // Generate some Austrian cars var i = 0; for (; i < numberOfAustrianCars; i++) { yield return(new Car { ID = i.ToString(), Nationality = "eu-at", VehicleCategory = vehicleCategoryGenerator.GetRandomVehicleClass(), LicensePlate = licensePlateGenerator.GetRandomAustrianLicensePlate(), Vignettes = (i % 10 != 0) ? DemoVignettes : null }); } // Generate some German cars for (; i < numberOfAustrianCars + numberOfGermanCars; i++) { yield return(new Car { ID = i.ToString(), Nationality = "eu-de", VehicleCategory = vehicleCategoryGenerator.GetRandomVehicleClass(), LicensePlate = licensePlateGenerator.GetRandomGermanLicensePlate(), Vignettes = (i % 10 != 0) ? DemoVignettes : null }); } // Generate a special car for which we have a demo image yield return(new Car { ID = i.ToString(), Nationality = "eu-de", VehicleCategory = "M", LicensePlate = "BIES770" }); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Admin, "post", Route = "generate-demo-data")] HttpRequest req, ILogger log, [Inject(typeof(Configuration))] Configuration configuration, [Inject(typeof(IStorage))] IStorage storage, [Inject(typeof(LicensePlateGenerator))] LicensePlateGenerator licensePlateGenerator, [Inject(typeof(VehicleCategoryGenerator))] VehicleCategoryGenerator vehicleCategoryGenerator) { log.LogInformation("Starting to re-generate demo data"); try { log.LogInformation("Deleting existing database if exists"); await storage.DeleteDatabaseIfExists(); log.LogInformation("Creating demo database"); await storage.CreateDatabaseIfNotExistsAsync(); log.LogInformation("Filling demo database"); foreach (var car in GetCarsToImport(configuration.NumberOfAustrianCars, configuration.NumberOfGermanCars, licensePlateGenerator, vehicleCategoryGenerator)) { await storage.CreateCarAsync(car); } foreach (var camera in GetCamerasToImport(configuration.NumberOfAustrianSectionControls, configuration.NumberOfGermanSectionControls)) { await storage.CreateCameraAsync(camera); } log.LogInformation("Generating demo data finished"); return(CreatedResult); } catch (Exception ex) { log.LogError(ex.ToString()); return(ErrorResult); } }