public UpdateXGGT7762(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT7762_AddDefaultPiBEntities(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT12505(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT12505_AddNewCampaignColumns(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT18424(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT18424_FailuresAreShownWithoutNames(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT12473(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT12473_AddShortNameForFaultTypes(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT4219(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT4219_Add_ABTZRB_Parameter(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT_17122(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT17122_NullPassStartEndTime(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT16422(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT16422_AddMapBreakWithProgrammesByExternalRefFeatureFlag(configuration.MasterConnectionString, _updatesFolder) }; }
public UpdateXGGT13351(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT13351_AddSmoothFeatureFlag(configuration.MasterConnectionString, _updatesFolder) }; }
/// <summary> /// Posts the specified configuraiton. /// </summary> /// <param name="request">The request.</param> public void Post(UpdateConfiguration request) { // Silly, but we need to serialize and deserialize or the XmlSerializer will write the xml with an element name of UpdateConfiguration var json = _jsonSerializer.SerializeToString(request); var config = _jsonSerializer.DeserializeFromString <ServerConfiguration>(json); _configurationManager.ReplaceConfiguration(config); }
public UpdateXGGT13062(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT13062_RenamePassTarpsCollectionToRatingPoints(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT18062(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT18062_TypoInFailureDescription(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT8872(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT8872_AddSpotBasedDeliveryRules(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT10421(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT10421_MigrateProgrammeCategories(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT10357(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT10357_AddKPIPrioritiesAndDefaultBRSConfigurationTemplate(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT11304(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateXGGT11304_AddSponsorshipSmoothFailures(configuration.TenantConnectionStrings, _updatesFolder) }; }
public UpdateXGGT4159(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT4159_DefaultTargetAreaName(configuration.TenantConnectionStrings, _updatesFolder) }; }
private void Save() { var config = new UpdateConfiguration(); config.UpdateCheckInterval = GetMinutesFromMilliseconds(UpdateCheckInterval); config.Enabled = UpdatesEnabled; UpdateConfiguration.Create(config); }
public UpdateXGGT11538(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT11538_FeatureFlag_StrikeWeightDayPartsMerge(configuration.MasterConnectionString, _updatesFolder) }; }
public UpdateXGGT14618(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT14618_AgHfssDemos(configuration.TenantConnectionStrings, _updatesFolder) }; }
public IHttpActionResult UpdateConfiguration(UpdateConfiguration model) { if (!ModelState.IsValid) { return(BadRequest()); } _updateService.UpdateConfiguration(model); return(Ok()); }
public UpdateXGGT15514(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT15514_FixFitToSpotLengthRuleTypo( configuration.TenantConnectionStrings) }; }
/// <summary> /// Send an updated configuration to libCEC /// </summary> /// <param name="config">The new configuration</param> public void UpdateConfigurationAsync(LibCECConfiguration config) { if (SuppressUpdates || _activeProcess != null) { return; } _controller.SetControlsEnabled(false); _activeProcess = new UpdateConfiguration(_controller.Lib, config); _activeProcess.EventHandler += ProcessEventHandler; (new Thread(_activeProcess.Run)).Start(); }
public UpdateXGGT14638(UpdateConfiguration configuration) { _updatesFolder = Path.Combine(configuration.UpdatesFolderRoot, Id.ToString()); _ = Directory.CreateDirectory(_updatesFolder); _updateSteps = new List <IUpdateStep> { new UpdateStepXGGT14638_AddFiveNewWeightingRules( configuration.TenantConnectionStrings) }; }
private UpdateConfiguration CreateConfig(string version, RolloutConditionMode conditionMode, List <RolloutCondition> conditions, bool isnecessary = true) { var config = new UpdateConfiguration() { LiteralVersion = version, RolloutConditionMode = conditionMode, RolloutConditions = conditions, NecessaryUpdate = isnecessary }; return(config); }
public IRestResponse <Upid> UpdateConfig(String vmId, UpdateConfiguration template) { var client = new RestClient(baseUrl); var request = new RestRequest(string.Format("nodes/{0}/qemu/{1}/config", nodeid(vmId).node, nodeid(vmId).id), Method.POST); request.RequestFormat = DataFormat.Json; request.AddHeader("CSRFPreventionToken", apiTicket.CSRFPreventionToken); request.AddCookie("PVEAuthCookie", apiTicket.ticket); request.RootElement = "root"; request.AddParameter("cores", template.cores); request.AddParameter("memory", template.memory); return(client.Execute <Upid>(request)); }
/// <summary> /// Start. /// </summary> /// <param name="serverIP">server ip</param> /// <param name="serverPort">server port</param> /// <param name="callerExe">callerExe</param> public void Start(string serverIP, int serverPort, string callerExe) { try { Random random = new Random(); for (int i = 0; i < 100; i++) { string userID = random.Next(1000000).ToString("00000"); string logonPassword = string.Empty; LogonResponse logonResponse = mRapidPassiveEngine.Initialize(userID, logonPassword, serverIP, serverPort, null); if (logonResponse.LogonResult == LogonResult.Succeed) { break; } } if (!File.Exists(UpdateConfiguration.ConfigurationPath)) { mUpdateConfiguration.Save(); } else { mUpdateConfiguration = (UpdateConfiguration)AgileConfiguration.Load(UpdateConfiguration.ConfigurationPath); } GetUpdateInfo(out mFileRelativePathListNeedDownloaded, out mFileListNeedRemoved); mFileCountNeedUpdated = mFileRelativePathListNeedDownloaded.Count; Event_FileCountNeedUpdated?.Invoke(mFileCountNeedUpdated); if (mFileCountNeedUpdated == 0 && mFileListNeedRemoved.Count == 0) { return; } Event_UpdateStarted?.Invoke(); Process[] processes = Process.GetProcessesByName(callerExe.Substring(0, callerExe.Length - 4)); foreach (Process process in processes) { process.Kill(); } CbGeneric cbGeneric = new CbGeneric(UdpateThread); cbGeneric.BeginInvoke(null, null); } catch (Exception e) { Console.WriteLine(e.ToString()); Event_UpdateDisruptted?.Invoke(Resources.ConnectionFailed); } }
static void Main() { try { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //如果是其它类型的授权用户,请使用下面的语句设定正确的授权用户ID和密码。 GlobalUtil.SetAuthorizedUser("FreeUser", ""); //初始化服务端引擎 CustomizeHandler customizeHandler = new CustomizeHandler(); int port = int.Parse(ConfigurationManager.AppSettings["Port"]); RapidServerEngine.WriteTimeoutInSecs = -1; RapidServerEngine.Initialize(port, customizeHandler); RapidServerEngine.UserManager.RelogonMode = RelogonMode.IgnoreNew; //动态生成或加载配置信息 if (!File.Exists(UpdateConfiguration.ConfigurationPath)) { Program.UpgradeConfiguration = new UpdateConfiguration(); Program.UpgradeConfiguration.Save(); } else { Program.UpgradeConfiguration = (UpdateConfiguration)UpdateConfiguration.Load(UpdateConfiguration.ConfigurationPath); } customizeHandler.Initialize(RapidServerEngine.FileController, Program.UpgradeConfiguration); bool remoting = bool.Parse(ConfigurationManager.AppSettings["RemotingServiceEnabled"]); if (remoting) { ChannelServices.RegisterChannel(new TcpChannel(port + 2), false); OausService service = new OausService(Program.UpgradeConfiguration); RemotingServices.Marshal(service, "OausService"); } //显示默认主窗体 MainForm mainForm = new MainForm(Program.RapidServerEngine); mainForm.Text = ConfigurationManager.AppSettings["Title"]; Application.Run(mainForm); } catch (Exception ee) { MessageBox.Show(ee.Message + " - " + ee.StackTrace); } }
public Configuration(NameValueCollection config) { Update = new UpdateConfiguration(); WorkerName = config.Get("worker_name") ?? "TestLib.Worker"; TestingWorkDirectory = config.Get("workarea") ?? ".\\workarea\\"; FileCacheFolder = config.Get("cache_folder") ?? ".\\cache\\"; CompilersConfigFolder = config.Get("compilers_config_folder") ?? ".\\compilers\\"; ProblemsCacheSize = config.Get("problems_cache_size").ToUInt32OrDefault(1); ResultSendingCacheSize = config.Get("result_sending_cache_size").ToUInt32OrDefault(2048); BaseAddress = new Uri(config.Get("base_address") ?? "http://localhost:8080/"); BaseApiAddress = new Uri(BaseAddress, config.Get("api_path") ?? "/api"); ApiAuthToken = config.Get("api_token"); InputFileName = config.Get("input_file_name") ?? "input.txt"; OutputFileName = config.Get("output_file_name") ?? "output.txt"; AnswerFileName = config.Get("answer_file_name") ?? "answer.txt"; ReportFileName = config.Get("report_file_name") ?? "report.txt"; CompilerLogFileName = config.Get("compiler_log_file_name") ?? "compiler_log.txt"; GetSubmissionDelayMs = config.Get("get_submission_delay").ToInt32OrDefault(500); WorkerSlotCount = config.Get("worker_slot_count").ToUInt32OrDefault(1); Update.LatestVersionUrl = config.Get("update_latest_version_url") ?? "http://localhost:8081/api/version"; Update.LatestProgramUrl = config.Get("update_latest_program_url") ?? "http://localhost:8081/api/update?version=latest"; fid = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Process.GetCurrentProcess().ProcessName); if (!Directory.Exists(fid)) { Directory.CreateDirectory(fid); } fid = Path.Combine(fid, "fid"); if (File.Exists(fid)) { if (!Guid.TryParse(File.ReadAllText(fid), out _workerId)) { File.Delete(fid); _workerId = Guid.Empty; } } }
public void Start() { //配置文件中记录着各个文件的版本信息。 if (!File.Exists(UpdateConfiguration.ConfigurationPath)) { this.updateConfiguration.Save(); } else { this.updateConfiguration = (UpdateConfiguration)UpdateConfiguration.Load(UpdateConfiguration.ConfigurationPath); } //启动升级线程 CbGeneric cb = new CbGeneric(this.UdpateThread); cb.BeginInvoke(null, null); }
static void Main() { try { // ESFramework authorized user. GlobalUtil.SetAuthorizedUser("FreeUser", ""); // Get update configuration. if (File.Exists(UpdateConfiguration.ConfigurationPath)) { mUpdateConfiguration = (UpdateConfiguration)AgileConfiguration.Load(UpdateConfiguration.ConfigurationPath); } else { mUpdateConfiguration = new UpdateConfiguration(); mUpdateConfiguration.Save(); } // Initialize rapid engine of server. int port = int.Parse(ConfigurationManager.AppSettings[Resources.CONFIG_KEY_PORT]); CustomizeHandler customizeHandler = new CustomizeHandler(); mRapidServerEngine.WriteTimeoutInSecs = -1; mRapidServerEngine.Initialize(port, customizeHandler); customizeHandler.Initialize(mRapidServerEngine.FileController, mUpdateConfiguration); // Remote service. if (bool.Parse(ConfigurationManager.AppSettings[Resources.CONFIG_KEY_REMOTE])) { ChannelServices.RegisterChannel(new TcpChannel(port + 2), false); UpgradeService upgradeService = new UpgradeService(mUpdateConfiguration); RemotingServices.Marshal(upgradeService, "UpgradeCenter"); } // Create main form. Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); MainForm mainForm = new MainForm(mRapidServerEngine) { Text = ConfigurationManager.AppSettings[Resources.CONFIG_KEY_FORM_TITLE] }; Application.Run(mainForm); } catch (Exception e) { Console.WriteLine(e.ToString()); } }
private void PackageEditDialog_Load(object sender, EventArgs e) { Text = String.Format(Text, PackageVersion.FullText, Program.VersionString); try { _ftp = new FtpManager(Project.FtpHost, Project.FtpPort, Project.FtpDirectory, Project.FtpUsername, FtpPassword, Project.Proxy, Project.FtpUsePassiveMode, Project.FtpTransferAssemblyFilePath, Project.FtpProtocol); if (!String.IsNullOrWhiteSpace(Project.FtpTransferAssemblyFilePath)) _ftp.TransferAssemblyPath = Project.FtpTransferAssemblyFilePath; else _ftp.Protocol = (FtpSecurityProtocol)Project.FtpProtocol; } catch (Exception ex) { Popup.ShowPopup(this, SystemIcons.Error, "Error while loading the FTP-data.", ex, PopupButtons.Ok); Close(); return; } if (UpdateConfiguration == null) { Popup.ShowPopup(this, SystemIcons.Error, "Error while loading the configuration.", "There are no entries available in the configuration.", PopupButtons.Ok); Close(); return; } try { _packageConfiguration = UpdateConfiguration.First(item => item.LiteralVersion == PackageVersion.ToString()).DeepCopy(); } catch (InvalidOperationException) { Popup.ShowPopup(this, SystemIcons.Error, "Error while loading the configuration.", "There are no entries available for the current package in the configuration.", PopupButtons.Ok); Close(); return; } var packageVersion = new UpdateVersion(_packageConfiguration.LiteralVersion); majorNumericUpDown.Maximum = Decimal.MaxValue; minorNumericUpDown.Maximum = Decimal.MaxValue; buildNumericUpDown.Maximum = Decimal.MaxValue; revisionNumericUpDown.Maximum = Decimal.MaxValue; majorNumericUpDown.Value = packageVersion.Major; minorNumericUpDown.Value = packageVersion.Minor; buildNumericUpDown.Value = packageVersion.Build; revisionNumericUpDown.Value = packageVersion.Revision; _existingVersionString = _packageConfiguration.LiteralVersion; var devStages = Enum.GetValues(typeof (DevelopmentalStage)); Array.Reverse(devStages); developmentalStageComboBox.DataSource = devStages; developmentalStageComboBox.SelectedIndex = developmentalStageComboBox.FindStringExact(packageVersion.DevelopmentalStage.ToString()); developmentBuildNumericUpDown.Value = packageVersion.DevelopmentBuild; developmentBuildNumericUpDown.Enabled = (packageVersion.DevelopmentalStage != DevelopmentalStage.Release); architectureComboBox.SelectedIndex = (int) _packageConfiguration.Architecture; necessaryUpdateCheckBox.Checked = _packageConfiguration.NecessaryUpdate; includeIntoStatisticsCheckBox.Enabled = Project.UseStatistics; includeIntoStatisticsCheckBox.Checked = _packageConfiguration.UseStatistics; foreach (var package in Project.Packages.Where(package => new UpdateVersion(package.Version) == packageVersion)) { descriptionTextBox.Text = package.Description; } unsupportedVersionsListBox.DataSource = _unsupportedVersionLiteralsBindingList; var cultureInfos = CultureInfo.GetCultures(CultureTypes.AllCultures).ToList(); foreach (var info in cultureInfos) { changelogLanguageComboBox.Items.Add(String.Format("{0} - {1}", info.EnglishName, info.Name)); _cultures.Add(info); } changelogContentTabControl.TabPages[0].Tag = _cultures.Where(x => x.Name == "en"); changelogLanguageComboBox.SelectedIndex = changelogLanguageComboBox.FindStringExact("English - en"); foreach (var changelogDictionaryEntry in _packageConfiguration.Changelog) { var culture = changelogDictionaryEntry.Key; if (culture.Name != "en") { var page = new TabPage("Changelog") { BackColor = SystemColors.Window, Tag = culture }; page.Controls.Add(new ChangelogPanel {Changelog = changelogDictionaryEntry.Value}); changelogContentTabControl.TabPages.Add(page); } else { englishChangelogTextBox.Text = changelogDictionaryEntry.Value; } } categoryTreeView.SelectedNode = categoryTreeView.Nodes[0]; if (_packageConfiguration.UnsupportedVersions != null && _packageConfiguration.UnsupportedVersions.Count() != 0) { someVersionsRadioButton.Checked = true; unsupportedVersionsPanel.Enabled = true; foreach (var unsupportedVersionLiteral in _packageConfiguration.UnsupportedVersions) { _unsupportedVersionLiteralsBindingList.Add(unsupportedVersionLiteral); } } else { unsupportedVersionsPanel.Enabled = false; } foreach (var operation in _packageConfiguration.Operations) { switch (Operation.GetOperationTag(operation)) { case "DeleteFile": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _deleteNode.Clone()); var deletePage = new TabPage("Delete file") {BackColor = SystemColors.Window}; deletePage.Controls.Add(new FileDeleteOperationPanel { Path = operation.Value, ItemList = new BindingList<string>(((JArray) operation.Value2).ToObject<BindingList<string>>()) }); categoryTabControl.TabPages.Add(deletePage); break; case "RenameFile": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _renameNode.Clone()); var renamePage = new TabPage("Rename file") {BackColor = SystemColors.Window}; renamePage.Controls.Add(new FileRenameOperationPanel { Path = operation.Value, NewName = operation.Value2.ToString() }); categoryTabControl.TabPages.Add(renamePage); break; case "CreateRegistrySubKey": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _createRegistrySubKeyNode.Clone()); var createRegistrySubKeyPage = new TabPage("Create registry subkey") { BackColor = SystemColors.Window }; createRegistrySubKeyPage.Controls.Add(new RegistrySubKeyCreateOperationPanel { KeyPath = operation.Value, ItemList = new BindingList<string>(((JArray) operation.Value2).ToObject<BindingList<string>>()) }); categoryTabControl.TabPages.Add(createRegistrySubKeyPage); break; case "DeleteRegistrySubKey": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _deleteRegistrySubKeyNode.Clone()); var deleteRegistrySubKeyPage = new TabPage("Delete registry subkey") { BackColor = SystemColors.Window }; deleteRegistrySubKeyPage.Controls.Add(new RegistrySubKeyDeleteOperationPanel { KeyPath = operation.Value, ItemList = new BindingList<string>(((JArray) operation.Value2).ToObject<BindingList<string>>()) }); categoryTabControl.TabPages.Add(deleteRegistrySubKeyPage); break; case "SetRegistryValue": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _setRegistryValueNode.Clone()); var setRegistryValuePage = new TabPage("Set registry value") { BackColor = SystemColors.Window }; setRegistryValuePage.Controls.Add(new RegistrySetValueOperationPanel { KeyPath = operation.Value, NameValuePairs = ((JArray) operation.Value2).ToObject<List<Tuple<string, object, RegistryValueKind>>>() }); categoryTabControl.TabPages.Add(setRegistryValuePage); break; case "DeleteRegistryValue": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _deleteRegistryValueNode.Clone()); var deleteRegistryValuePage = new TabPage("Delete registry value") { BackColor = SystemColors.Window }; deleteRegistryValuePage.Controls.Add(new RegistryDeleteValueOperationPanel { KeyPath = operation.Value, ItemList = ((JObject) operation.Value2).ToObject<BindingList<string>>() }); categoryTabControl.TabPages.Add(deleteRegistryValuePage); break; case "StartProcess": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _startProcessNode.Clone()); var startProcessPage = new TabPage("Start process") {BackColor = SystemColors.Window}; startProcessPage.Controls.Add(new ProcessStartOperationPanel { Path = operation.Value, Arguments = ((JArray) operation.Value2).ToObject<BindingList<string>>() }); categoryTabControl.TabPages.Add(startProcessPage); break; case "TerminateProcess": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _terminateProcessNode.Clone()); var terminateProcessPage = new TabPage("Terminate process") {BackColor = SystemColors.Window}; terminateProcessPage.Controls.Add(new ProcessStopOperationPanel { ProcessName = operation.Value }); categoryTabControl.TabPages.Add(terminateProcessPage); break; case "StartService": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _startServiceNode.Clone()); var startServicePage = new TabPage("Start service") {BackColor = SystemColors.Window}; startServicePage.Controls.Add(new ServiceStartOperationPanel { ServiceName = operation.Value }); categoryTabControl.TabPages.Add(startServicePage); break; case "StopService": categoryTreeView.Nodes[3].Nodes.Add((TreeNode) _stopServiceNode.Clone()); var stopServicePage = new TabPage("Stop service") {BackColor = SystemColors.Window}; stopServicePage.Controls.Add(new ServiceStopOperationPanel { ServiceName = operation.Value }); categoryTabControl.TabPages.Add(stopServicePage); break; case "ExecuteScript": categoryTreeView.Nodes[3].Nodes.Add((TreeNode)_executeScriptNode.Clone()); var executeScriptPage = new TabPage("Execute script") { BackColor = SystemColors.Window }; executeScriptPage.Controls.Add(new ScriptExecuteOperationPanel { Code = operation.Value }); categoryTabControl.TabPages.Add(executeScriptPage); break; } } }