Пример #1
0
        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++;
                    }
                }
            }
        }
Пример #2
0
        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++;
                    }
                }
            }
        }
Пример #3
0
        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;
        }
Пример #4
0
        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;
            }
        }
Пример #5
0
        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;
        }