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();
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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();
        }
Beispiel #4
0
 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();
     }
 }