static void StartSimulator() { // Dependencies to inject into the Bulk Device Tester var logger = new TraceLogger(); var configProvider = new ConfigurationProvider(); var telemetryFactory = new EngineTelemetryFactory(logger, configProvider); var serializer = new JsonSerialize(); var transportFactory = new IotHubTransportFactory(serializer, logger, configProvider); IVirtualDeviceStorage deviceStorage = null; var useConfigforDeviceList = Convert.ToBoolean(configProvider.GetConfigurationSettingValueOrDefault("UseConfigForDeviceList", "False"), CultureInfo.InvariantCulture); if (useConfigforDeviceList) { deviceStorage = new AppConfigRepository(configProvider, logger); } else { deviceStorage = new VirtualDeviceTableStorage(configProvider); } IDeviceFactory deviceFactory = new EngineDeviceFactory(); // Start Simulator Trace.TraceInformation("Starting Simulator"); var tester = new BulkDeviceTester(transportFactory, logger, configProvider, telemetryFactory, deviceFactory, deviceStorage); Task.Run(() => tester.ProcessDevicesAsync(cancellationTokenSource.Token), cancellationTokenSource.Token); }