Exemple #1
0
 public void Initialize(PluginConfigurationData configuration, PluginEnvironment environment)
 {
     _activityData = configuration.GetMetadata <NestActivityData>();
     _xmlString    = _activityData.EmulationString;
     InitializeUi();
 }
Exemple #2
0
        public PluginExecutionResult Execute(PluginExecutionData executionData)
        {
            if (!_setupDone)
            {
                Setup(executionData);
                _setupDone = true;
            }

            try
            {
                var action = new Action(() =>
                {
                    ExecutionServices.SystemTrace.LogDebug("Emulating network condition now");
                    NestService.Initialize();
                    NestActivityData data = executionData.GetMetadata <NestActivityData>();;
                    if (!string.IsNullOrEmpty(data.EmulationString))
                    {
                        if (File.Exists(_emulationFileName))
                        {
                            File.Delete(_emulationFileName);
                        }

                        var xDocument = XDocument.Parse(data.EmulationString, LoadOptions.None);
                        xDocument.Save(_emulationFileName, SaveOptions.None);
                        ExecutionServices.SystemTrace.LogDebug("Emulation file created");

                        if (NestService.StartEmulation(_emulationFileName))
                        {
                            networkprofile_textBox.Text = data.EmulationProfileName;
                            UpdateUI(data.EmulationString);
                        }
                    }
                    else
                    {
                        if (NetworkEmulator.NetworkEmulationInstaller.IsNetworkEmulationBoundToAnyNetworkInterfaceCards())
                        {
                            if (NestService.StopEmulation())
                            {
                                nic_textBox.Text = @"Not emulating";
                                ExecutionServices.SystemTrace.LogInfo("Network Emulation Stopped");
                            }
                        }
                        else
                        {
                            ExecutionServices.SystemTrace.LogInfo("Network Emulation is currently not running");
                        }
                    }
                });

                ExecutionServices.CriticalSection.Run(new Framework.Synchronization.LocalLockToken("NetworkEmulation", new TimeSpan(0, 5, 0), new TimeSpan(0, 5, 0)), action);
            }
            catch (NetworkEmulator.NetworkEmulationNotInitializedException eNonInitialized)
            {
                ExecutionServices.SystemTrace.LogDebug("Emulator not Initialized " + eNonInitialized.Message);
                return(new PluginExecutionResult(PluginResult.Failed, "Emulator not Initialized :" + eNonInitialized.Message));
            }
            catch (Exception genericException)
            {
                ExecutionServices.SystemTrace.LogDebug(genericException.Message);
                return(new PluginExecutionResult(PluginResult.Failed, "Activity Failed :" + genericException.Message));
            }

            return(new PluginExecutionResult(PluginResult.Passed));
        }
Exemple #3
0
 public void Initialize(PluginEnvironment environment)
 {
     _activityData = new NestActivityData();
     InitializeUi();
 }