private void btnAddFunction_Click(object sender, EventArgs e)
        {
            LogicColumn     newcol = CreateDefaultLogicColumn();
            DataSourceTable tbl    = CurrentTable;

            tbl.DataColumns.Add(newcol);
            gridColumns.DataSource = CurrentTable.DataColumns.ConvertAll(c => c as LogicColumn);
        }
 bool Exists(DataSourceLogicTable table, LogicColumn col)
 {
     foreach (LogicColumn col2 in table.DataColumns)
     {
         if (col.FunctionName == col2.ColumnName)
         {
             return(true);
         }
     }
     return(false);
 }
 private void gridColumns_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
 {
     if (e.ColumnIndex > -1 && gridColumns.Columns[e.ColumnIndex].Name == "ColParameter" && e.RowIndex > -1)
     {
         LogicColumn     col = (LogicColumn)gridColumns.Rows[e.RowIndex].DataBoundItem;
         FormLogicConfig frm = new FormLogicConfig();
         frm.ConfigContent = col.ConfigContent;
         frm.ShowDialog();
         if (frm.IsCanceled == false)
         {
             col.ConfigContent = frm.ConfigContent;
         }
     }
 }
        void AddDefaultListFunctionsAgainOnNewTable(DataSourceTable table, DataSourceLogicTable newTable, int colCounter, Model.DataColumn col)
        {
            int colCounter2 = 0;

            foreach (Model.DataColumn col2 in table.DataColumns)
            {
                LogicColumn logicColumn = CreateDefaultListFunctionAgainLogicColumn(colCounter, colCounter2, col, col2, newTable);
                if (logicColumn != null)
                {
                    newTable.DataColumns.Add(logicColumn);
                }
                colCounter2++;
            }
        }
        void Test(DataSourceTable tbl, DataSourceLogicTable newTable, List <Model.DataColumn> cols)
        {
            bool start = false;

            if (cols == null)
            {
                cols = new List <Model.DataColumn>();
            }

            foreach (Model.DataColumn col in tbl.DataColumns)
            {
                if (start && col.DataType.ToLower().Contains("int"))
                {
                    cols.Add(col);
                    LogicColumn newColumn = CreateNewFindLogicColumn(tbl, newTable, cols);
                    if (Exists(newTable, newColumn) == false)
                    {
                        newTable.DataColumns.Add(newColumn);
                    }
                    newColumn = CreateNewUpdateLogicColumn(tbl, newTable, cols);
                    if (Exists(newTable, newColumn) == false)
                    {
                        newTable.DataColumns.Add(newColumn);
                    }
                    newColumn = CreateNewDeleteLogicColumn(tbl, newTable, cols);
                    if (Exists(newTable, newColumn) == false)
                    {
                        newTable.DataColumns.Add(newColumn);
                    }

                    List <Model.DataColumn> tempCols = new List <Model.DataColumn>();
                    tempCols = tempCols.Concat(cols).ToList();

                    Test(tbl, newTable, tempCols);
                    cols.Remove(col);
                }
                if (cols.Count == 0)
                {
                    start = true;
                }
                if (cols.Count > 0 && col.ColumnName == cols[cols.Count - 1].ColumnName)
                {
                    start = true;
                }
            }
        }
        void AddDefaultFunctions(DataSourceTable table, DataSourceLogicTable newTable)
        {
            foreach (Model.DataColumn col in table.DataColumns)
            {
                LogicColumn logicColumn = null;
                if (col.DataType.ToLower().Contains("int") == false)
                {
                    logicColumn = CreateDefaultFindAllLogicColumn(table, col, newTable);
                    newTable.DataColumns.Add(logicColumn);
                }
                if (col.DataType.ToLower().Contains("int") == false)
                {
                    logicColumn = CreateDefaultUpdateLogicColumn(table, col, newTable);
                    newTable.DataColumns.Add(logicColumn);
                }
                if (col.DataType.ToLower().Contains("int") == false)
                {
                    logicColumn = CreateDefaultDeleteLogicColumn(table, col, newTable);
                    newTable.DataColumns.Add(logicColumn);
                }
            }

            Test(table, newTable, null);
        }