private static void Main(string[] args) { var observableEventListener = new ObservableEventListener(); var configuration = SimulatorConfiguration.GetCurrentConfiguration(); observableEventListener.EnableEvents(ScenarioSimulatorEventSource.Log, configuration.GetLogLevel()); observableEventListener.LogToConsole(); var hostName = ConfigurationHelper.SourceName; _deviceSimulator = new SimulationProfile(hostName, configuration); // check for scenario specified on the command line if (args.Length > 0) { var scenario = args.Contains("/default", StringComparer.OrdinalIgnoreCase) ? SimulationScenarios.DefaultScenario() : args.First(x => !x.StartsWith("/",StringComparison.Ordinal)); var ct = args.Contains("/webjob", StringComparer.OrdinalIgnoreCase) ? GetWebJobCancellationToken() : CancellationToken.None; ProvisionDevicesAsync(ct).Wait(); _deviceSimulator.RunSimulationAsync(scenario, ct).Wait(); return; } var options = new Dictionary<string, Func<CancellationToken, Task>>(); options.Add("Provision Devices", ProvisionDevicesAsync); // no command line arguments, so prompt with a menu. foreach (var scenario in SimulationScenarios.AllScenarios) { options.Add("Run " + scenario, (Func<CancellationToken, Task>)(token => _deviceSimulator.RunSimulationAsync(scenario, token))); } //options.Add("Deprovision Devices", DeprovisionDevicesAsync); Tests.Common.ConsoleHost.RunWithOptionsAsync(options).Wait(); }
private static async Task MainAsync(string[] args) { var observableEventListener = new ObservableEventListener(); var configuration = SimulatorConfiguration.GetCurrentConfiguration(); observableEventListener.EnableEvents(ScenarioSimulatorEventSource.Log, configuration.EventLevel); observableEventListener.LogToConsole(); var deviceSimulator = new SimulationProfile("Console", 1, configuration); // check for scenario specified on the command line if (args.Length > 0) { var scenario = args.Contains("/default", StringComparer.OrdinalIgnoreCase) ? SimulationScenarios.DefaultScenario() : args.First(x => !x.StartsWith("/")); var ct = args.Contains("/webjob", StringComparer.OrdinalIgnoreCase) ? GetWebJobCancellationToken() : CancellationToken.None; await deviceSimulator.RunSimulationAsync(scenario, ct); return; } // no command line arguments, so prompt with a menu var options = SimulationScenarios .AllScenarios .ToDictionary( scenario => "Run " + scenario, scenario => (Func<CancellationToken, Task>)(token => deviceSimulator.RunSimulationAsync(scenario, token))); await Tests.Common.ConsoleHost.RunWithOptionsAsync(options); }
private static void Main(string[] args) { var observableEventListener = new ObservableEventListener(); var configuration = SimulatorConfiguration.GetCurrentConfiguration(); observableEventListener.EnableEvents(ScenarioSimulatorEventSource.Log, configuration.GetLogLevel()); observableEventListener.LogToConsole(); var hostName = ConfigurationHelper.SourceName; _deviceSimulator = new SimulationProfile(hostName, configuration); // check for scenario specified on the command line if (args.Length > 0) { var scenario = args.Contains("/default", StringComparer.OrdinalIgnoreCase) ? SimulationScenarios.DefaultScenario() : args.First(x => !x.StartsWith("/", StringComparison.Ordinal)); var ct = args.Contains("/webjob", StringComparer.OrdinalIgnoreCase) ? GetWebJobCancellationToken() : CancellationToken.None; ProvisionDevicesAsync(ct).Wait(); _deviceSimulator.RunSimulationAsync(scenario, ct).Wait(); return; } var options = new Dictionary <string, Func <CancellationToken, Task> >(); options.Add("Provision Devices", ProvisionDevicesAsync); // no command line arguments, so prompt with a menu. foreach (var scenario in SimulationScenarios.AllScenarios) { options.Add("Run " + scenario, (Func <CancellationToken, Task>)(token => _deviceSimulator.RunSimulationAsync(scenario, token))); } //options.Add("Deprovision Devices", DeprovisionDevicesAsync); Tests.Common.ConsoleHost.RunWithOptionsAsync(options).Wait(); }
public override void Run() { try { Trace.TraceInformation("ScenarioSimulator.WorkerRole is running"); var scenario = SimulationScenarios.DefaultScenario(); _deviceSimulator.RunSimulationAsync(scenario, _cancellationTokenSource.Token).Wait(); Trace.TraceInformation("ScenarioSimulator.WorkerRole is complete"); } catch (Exception ex) { Trace.TraceError(ex.ToString()); } finally { _runCompleteEvent.Set(); } }