示例#1
0
 public GenerateDemoData(Configuration configuration,
                         IStorage storage,
                         LicensePlateGenerator licensePlateGenerator,
                         VehicleCategoryGenerator vehicleCategoryGenerator)
 {
     this.configuration            = configuration;
     this.storage                  = storage;
     this.licensePlateGenerator    = licensePlateGenerator;
     this.vehicleCategoryGenerator = vehicleCategoryGenerator;
 }
示例#2
0
        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"
            });
        }
示例#3
0
        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);
            }
        }