public static TestStep CreateTestStep(string stepDisplayName) { var stepInfo = TestStepInfoMgr.Instance.TestStepInfoList.Where(x => x.DisplayName == stepDisplayName).FirstOrDefault(); TestStep step = null; if (stepDisplayName == TestStepType.Loop) { step = new LoopTestStep(); } else if (stepDisplayName == TestStepType.Manual) { step = new ManualLoopTestStep(); } else if (stepDisplayName == TestStepType.Cal) { step = new FormulaCalcTestStep(); } else { Type stepType = stepInfo.Assembly.GetType(stepInfo.StepType.ToString()); step = Activator.CreateInstance(stepType) as TestStep; } return(step); }
public static List <LoopTestStep> GetAllLoopTestStep(LoopTestStep loopTestStep) { List <LoopTestStep> stepList = new List <LoopTestStep>(); foreach (var step in loopTestStep.ChildTestStepList) { if (step is LoopTestStep) { stepList.Add(step as LoopTestStep); foreach (var subStep in (step as LoopTestStep).ChildTestStepList) { if (subStep is LoopTestStep) { var subSteps = GetAllLoopTestStep(subStep as LoopTestStep); stepList.AddRange(subSteps); } } } } return(stepList); }
private void MenuItem_Click(object sender, RoutedEventArgs e) { if ((sender as MenuItem).Header.ToString() == "导出") { if (loopgridControl.ItemsSource == null) { return; } System.Windows.Forms.SaveFileDialog saveFileDialog = new System.Windows.Forms.SaveFileDialog(); saveFileDialog.Filter = "CSV 文件|*.csv"; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { // (loopgridControl.View as TableView).ExportToCsv(saveFileDialog.FileName); DataTable dt = (DataTable)loopgridControl.ItemsSource; Interface.ExportDataTableToCSV(saveFileDialog.FileName, dt); } } else if ((sender as MenuItem).Header.ToString() == "导入") { System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog(); openFileDialog.RestoreDirectory = true; openFileDialog.Filter = "CSV 文件|*.csv"; if (openFileDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { if (!string.IsNullOrWhiteSpace(openFileDialog.FileName)) { LoopTestStep loopStep = vm.LoopTestStep; DataTable dt = Interface.GetDataTableFromCSV(openFileDialog.FileName, loopStep.ParamInfolist); if (dt == null) { return; } bool Flag = true; foreach (DataColumn column in dt.Columns) { column.ColumnName = column.ColumnName.Replace(" ", ""); if (loopStep.ParamInfolist.Where(x => x.DisplayName == column.ColumnName && x.IsChecked == true).Count() == 0) { Flag = false; break; } } if (Flag == false) { return; } dt.TableName = loopStep.Table.TableName; loopStep.Table = dt; loopgridControl.ItemsSource = vm.Table; } } } else if ((sender as MenuItem).Header.ToString() == "删除行") { var items = loopgridControl.SelectedItems; if (items.Count != 0) { List <int> selectList = new List <int>(loopgridView.GetSelectedRowHandles()); for (int row = selectList.Count - 1; row >= 0; row--) { loopgridView.DeleteRow(selectList[row]); } } LoopTestStep loopStep = vm.LoopTestStep; loopStep.Table = loopgridControl.ItemsSource as DataTable; } else if ((sender as MenuItem).Header.ToString() == "快速填充") { if (loopgridControl.CurrentColumn != null) { LoopTestStep loopStep = vm.LoopTestStep; int columnIndex = loopgridControl.Columns.IndexOf(loopgridView.FocusedColumn); DataColumn column = loopStep.Table.Columns[columnIndex]; FillDataToTable(vm.LoopTestStep.Table, column.ColumnName, columnIndex, column.DataType); } } }