public void RunSolution(OutputType outputType) { _runSolutionOutputType = OutputType.NotSet; _runSolutionWebCodeContentUserControl = null; depth = 0; RunSolutionRecursive(outputType, ++depth); }
private void RunSolutionRecursive(OutputType outputType, int level) { if (level == 2100) { MessageBox.Show("The maximum loop has been reached.", UtilityManager.CodeManipulatorName, MessageBoxButton.OK, MessageBoxImage.Asterisk); return; } if (level % 1050 == 0) { var messageBoxResult = MessageBox.Show("The loop takes longer than expected, do you want to continue?", UtilityManager.CodeManipulatorName, MessageBoxButton.YesNo, MessageBoxImage.Asterisk); if (messageBoxResult == MessageBoxResult.No) { return; } } object selectedCodeContent = MainChromeTabControl.SelectedContent; if (selectedCodeContent is WebCodeContentUserControl) { RunWebCodeControlExecuted = true; var control = selectedCodeContent as WebCodeContentUserControl; if (!control.IsControlInitialized) { control.ContentWebBrowser.LoadCompleted += ContentWebBrowser_LoadCompleted; control.IsControlInitialized = true; } control.Run(); _runSolutionWebCodeContentUserControl = control; _runSolutionOutputType = outputType; } else if (selectedCodeContent is ConditionContentUserControl) { var control = selectedCodeContent as ConditionContentUserControl; var result = control.Run(); if (result != null) { var index = Int32.Parse(control.TabComboBox.Text); var success = true; if (-1 == index) { return; } else if (0 == index) { FirstTab(); } else { success = GoToTab(index); } if (success && outputType == OutputType.RunAll && MainChromeTabControl.Items.Count - 1 != MainChromeTabControl.SelectedIndex) { lock (lockOjbect) { RunSolutionRecursive(outputType, ++depth); } } } else { if (outputType == OutputType.RunAll && NextTab()) { lock (lockOjbect) { RunSolutionRecursive(outputType, ++depth); } } } } else if (selectedCodeContent != null) { var result = ((IModuleUserControl) selectedCodeContent).Run(); ProcessOutput(outputType, result); if (outputType == OutputType.RunAll && NextTab()) { lock (lockOjbect) { RunSolutionRecursive(outputType, ++depth); } } } }
public UserControl GetUserControl() { var item = new WebCodeContentUserControl(); return item.GetUserControl(this); }