public void Execute(GenerationState state) { if (!state.TestCaseCollection.Scope.Variables.Contains(ColumnName)) { throw new ArgumentOutOfRangeException(String.Format("No column named '{0}' has been found.", ColumnName)); } var index = state.TestCaseCollection.Scope.Variables.ToList().FindIndex(v => v == ColumnName); foreach (var newColumnName in NewColumns) { if (state.TestCaseCollection.Scope.Variables.Contains(newColumnName)) { throw new ArgumentException(String.Format("Column '{0}' already existing.", newColumnName)); } state.TestCaseCollection.Scope.Variables.Add(newColumnName); var newColumn = new DataColumn(newColumnName); state.TestCaseCollection.Scope.Content.Columns.Add(newColumn); } foreach (DataRow row in state.TestCaseCollection.Scope.Content.Rows) { if ((string)row[ColumnName] != "(none)") { var value = (string)row[ColumnName]; var array = value.Split(new string[] { Separator }, NewColumns.Count(), StringSplitOptions.None); var i = 0; foreach (var newColumnName in NewColumns) { if (i >= array.Length || string.IsNullOrEmpty(array[i])) { row[newColumnName] = "(none)"; } else { row[newColumnName] = array[i]; } i++; } } } }
public void Execute(CaseSet testCases) { if (!testCases.Variables.Contains(ColumnName)) { throw new ArgumentOutOfRangeException($"No column named '{ColumnName}' has been found."); } var index = testCases.Variables.ToList().FindIndex(v => v == ColumnName); foreach (var newColumnName in NewColumns) { if (testCases.Variables.Contains(newColumnName)) { throw new ArgumentException($"Column '{newColumnName}' already existing."); } var newColumn = new DataColumn(newColumnName); testCases.Content.Columns.Add(newColumn); } foreach (DataRow row in testCases.Content.Rows) { if ((string)row[ColumnName] != "(none)") { var value = (string)row[ColumnName]; var array = value.Split(new string[] { Separator }, NewColumns.Count(), StringSplitOptions.None); var i = 0; foreach (var newColumnName in NewColumns) { if (i >= array.Length || string.IsNullOrEmpty(array[i])) { row[newColumnName] = "(none)"; } else { row[newColumnName] = array[i]; } i++; } } } }
protected virtual void Dispose(bool disposing) { if (disposed) { return; } if (disposing) { if (NewColumns != null) { NewColumns.Clear(); NewColumns = null; } if (Parameters != null) { Parameters.Clear(); Parameters = null; } } disposed = true; }
public void Redo(DataGridViewUndoRedoManager manager) { if (manager == null) { return; } var dgv = manager.GridView; if (dgv == null) { return; } manager.IsBusy = true; try { switch (CommandType) { case DataGridViewUndoRedoCommandType.ChangeValue: UndoRedoValues(manager, false); break; case DataGridViewUndoRedoCommandType.ChangeColumn: if (OldColumns != null && OldColumns.Count > 0) { OldColumns.ForEach(o => o.Remove()); } if (NewColumns != null && NewColumns.Count > 0) { NewColumns.ToList().ForEach(o => o.Insert(o.LastIndex)); } break; case DataGridViewUndoRedoCommandType.RemoveColumn: if (OldColumns != null && OldColumns.Count > 0) { OldColumns.ForEach(o => o.Remove()); } break; case DataGridViewUndoRedoCommandType.AddColumn: if (NewColumns != null && NewColumns.Count > 0) { NewColumns.ToList().ForEach(o => o.Insert(o.LastIndex)); } break; case DataGridViewUndoRedoCommandType.RemoveRow: if (Rows != null && Rows.Count > 0) { Rows.ForEach(o => dgv.Rows.Remove(o)); } break; case DataGridViewUndoRedoCommandType.AddRow: if (Rows != null && Rows.Count > 0) { Rows.OrderBy(o => o.Index).ToList().ForEach(o => dgv.Rows.Insert(o.Index, o)); } break; } } finally { manager.IsBusy = false; } }
public static List<NewColumns> Create(string FileNameIn, string DelimiterIn, bool blnFirstRowContainsColumnNames, bool blnUpdateDataTypesDependentOnDataInFile, bool blnAllowNullableDataTypes) { List<NewColumns> response = new List<NewColumns>(); try { if (!blnFirstRowContainsColumnNames) throw new ApplicationException("Excepted true for blnFirstRowContainsColumnNames (not implemented for files without column names for first row)"); string[] lines = null; lines = File.ReadAllLines(FileNameIn); if (lines.Length == 0) throw new ApplicationException(string.Format("No Data Error. File '{0}'", FileNameIn)); string line = null; List<string> data = null; string text = null; line = lines[0]; data = line.Split(DelimiterIn[0]).ToList(); for (Int32 i = 0; i < data.Count; i++) { string strColumnName = null; strColumnName = data[i]; NewColumns obj = new NewColumns(); obj.COLUMN_NAME = strColumnName; obj.ORDINAL_POSITION = i; obj.DATA_TYPE = "varchar"; } if (!blnUpdateDataTypesDependentOnDataInFile) return response; //update data type dependent on data foreach (NewColumns obj in response) { bool IsDateTime = true; bool IsDecimal = true; bool IsInt32 = true; bool IsInt16 = true; bool IsNullable = false; Int32 linesChecked = 0; for (Int32 i = 1; i < lines.Length; i++) { data = line.Split(DelimiterIn[0]).ToList(); text = data[obj.ORDINAL_POSITION.Value]; if (text.Length == 0) { IsNullable = true; continue; } linesChecked++; if (IsDateTime) { try { DateTime.Parse(text); } catch (Exception ex) { IsDateTime = false; } } if (IsDecimal) { try { Decimal.Parse(text); } catch (Exception ex) { IsDecimal = false; } } if (IsInt32) { try { Int32.Parse(text); } catch (Exception ex) { IsInt32 = false; } } if (IsInt16) { try { Int16.Parse(text); } catch (Exception ex) { IsInt16 = false; } } } if (linesChecked > 0) { if (IsDateTime) { obj.DATA_TYPE = "datetime"; } else if (IsInt16) { obj.DATA_TYPE = "numeric"; obj.NUMERIC_PRECISION = 4; } else if (IsInt32) { obj.DATA_TYPE = "numeric"; obj.NUMERIC_PRECISION = 9; } else if (IsInt16) { obj.DATA_TYPE = "numeric"; obj.NUMERIC_PRECISION = 18; } else { // string obj.DATA_TYPE = "varchar"; } if (IsNullable && blnAllowNullableDataTypes) { obj.IS_NULLABLE = "YES"; } } } } catch (Exception ex) { throw ex; } return response; }