LogicColumn CreateDefaultListFunctionAgainLogicColumn(int colCounter, int colCounter2, Model.DataColumn col, Model.DataColumn col2, DataSourceLogicTable newTable)
        {
            if (colCounter2 >= colCounter && col2.DataType.ToLower().Contains("int") && col2.Key == false && col.ColumnName.Equals(col2.ColumnName) == false)
            {
                Model.LogicColumn logicColumn = new Model.LogicColumn();
                logicColumn.ColumnName   = col.ColumnName;
                logicColumn.ColumnText   = col.ColumnText;
                logicColumn.ReturnType   = "List<" + newTable.TableName + ">";
                logicColumn.Tag          = "list-int-and-int";
                logicColumn.Use          = true;
                logicColumn.FunctionName = "FindBy" + col.ColumnName + "And" + col2.ColumnName;
                string dtType   = Helper.DatabaseMapper.MapType(col.DataType);
                string varName1 = Helper.StrUtil.LowFirst(col.ColumnName) + "";
                string varName2 = Helper.StrUtil.LowFirst(col2.ColumnName) + "";
                List <FunctionParameter> parameters = new List <FunctionParameter>();
                parameters.Add(new FunctionParameter(varName1, dtType, col));
                parameters.Add(new FunctionParameter(varName2, dtType, col2));

                Dictionary <string, object> dict = new Dictionary <string, object>();
                dict.Add("Parameters", parameters);

                logicColumn.ConfigContent = new FunctionConfigurator();
                logicColumn.ConfigContent.DisplayConfiguration(dict);

                return(logicColumn);
            }
            else
            {
                return(null);
            }
        }
        LogicColumn CreateNewDeleteLogicColumn(DataSourceTable table, DataSourceLogicTable newTable, List <Model.DataColumn> datacols)
        {
            Model.LogicColumn logicColumn = new Model.LogicColumn();
            logicColumn.ReturnType   = "void";
            logicColumn.Tag          = "delete-int-and-int";
            logicColumn.Use          = true;
            logicColumn.FunctionName = "DeleteBy";

            List <FunctionParameter> parameters = new List <FunctionParameter>();

            foreach (Model.DataColumn col in datacols)
            {
                logicColumn.FunctionName += col.ColumnName + "And";
                string dtType   = Helper.DatabaseMapper.MapType(col.DataType);
                string varName1 = Helper.StrUtil.LowFirst(col.ColumnName) + "";
                parameters.Add(new FunctionParameter(varName1, dtType, col));
            }

            if (logicColumn.FunctionName.Length > 0)
            {
                logicColumn.FunctionName = logicColumn.FunctionName.Substring(0, logicColumn.FunctionName.Length - 3);
            }


            Dictionary <string, object> dict = new Dictionary <string, object>();

            dict.Add("Parameters", parameters);

            logicColumn.ConfigContent = new FunctionConfigurator();
            logicColumn.ConfigContent.DisplayConfiguration(dict);

            return(logicColumn);
        }
        LogicColumn CreateDefaultDeleteLogicColumn(Model.DataSourceTable sourceTable, Model.DataColumn col, DataSourceLogicTable newTable)
        {
            Model.LogicColumn logicColumn = new Model.LogicColumn();
            logicColumn.ColumnName = col.ColumnName;
            logicColumn.ColumnText = col.ColumnText;
            logicColumn.ReturnType = "void";

            logicColumn.Use = true;
            List <FunctionParameter> parameters = new List <FunctionParameter>();

            logicColumn.Tag          = "delete-by-column";
            logicColumn.FunctionName = "DeleteBy" + logicColumn.ColumnName;
            string dtType  = Helper.DatabaseMapper.MapType(col.DataType);
            string varName = Helper.StrUtil.LowFirst(col.ColumnName);

            parameters.Add(new FunctionParameter(varName, dtType, col));

            Dictionary <string, object> dict = new Dictionary <string, object>();

            dict.Add("Parameters", parameters);

            logicColumn.ConfigContent = new FunctionConfigurator();
            logicColumn.ConfigContent.DisplayConfiguration(dict);

            return(logicColumn);
        }
        Model.LogicColumn SetDefaultConfigContent(Model.LogicColumn logicColumn)
        {
            string[] words = Regex.Matches(logicColumn.ColumnName, "(^[a-z]+|[A-Z]+(?![a-z])|[A-Z][a-z]+)")
                             .OfType <Match>()
                             .Select(m => m.Value)
                             .ToArray();
            string result = string.Join(" ", words);

            logicColumn.ColumnText    = result;
            logicColumn.ConfigContent = new FunctionConfigurator();
            logicColumn.ConfigContent.InitConfiguration(logicColumn);

            return(logicColumn);
        }
        LogicColumn CreateDefaultLogicColumn()
        {
            Model.LogicColumn logicColumn = new Model.LogicColumn();
            logicColumn.ColumnName   = "NewColumn";
            logicColumn.ColumnText   = "New Column";
            logicColumn.ReturnType   = "List<" + CurrentTable.TableName + ">";
            logicColumn.Tag          = "list";
            logicColumn.Use          = true;
            logicColumn.FunctionName = "NewFunction";
            List <FunctionParameter> parameters = new List <FunctionParameter>();

            parameters.Add(new FunctionParameter("newParam", "string"));

            Dictionary <string, object> dict = new Dictionary <string, object>();

            dict.Add("Parameters", parameters);

            logicColumn.ConfigContent = new FunctionConfigurator();
            logicColumn.ConfigContent.DisplayConfiguration(dict);

            return(logicColumn);
        }
        LogicColumn CreateDefaultFindAllLogicColumn(Model.DataSourceTable sourceTable, Model.DataColumn col, DataSourceLogicTable newTable)
        {
            Model.LogicColumn logicColumn = new Model.LogicColumn();
            logicColumn.ColumnName = col.ColumnName;
            logicColumn.ColumnText = col.ColumnText;
            logicColumn.ReturnType = "List<" + newTable.TableName + ">";

            logicColumn.Use = true;
            List <FunctionParameter> parameters = new List <FunctionParameter>();

            if (col.DataType.ToLower().Contains("date"))
            {
                logicColumn.Tag          = "list-date";
                logicColumn.FunctionName = "FindBy" + logicColumn.ColumnName + "Between";
                string dtType   = Helper.DatabaseMapper.MapType(col.DataType);
                string varName1 = Helper.StrUtil.LowFirst(col.ColumnName) + "1";
                string varName2 = Helper.StrUtil.LowFirst(col.ColumnName) + "2";
                parameters.Add(new FunctionParameter(varName1, dtType, col));
                parameters.Add(new FunctionParameter(varName2, dtType, col));
            }
            else
            {
                logicColumn.Tag          = "list-string";
                logicColumn.FunctionName = "FindBy" + logicColumn.ColumnName;
                string dtType  = Helper.DatabaseMapper.MapType(col.DataType);
                string varName = Helper.StrUtil.LowFirst(col.ColumnName);
                parameters.Add(new FunctionParameter(varName, dtType, col));
            }


            Dictionary <string, object> dict = new Dictionary <string, object>();

            dict.Add("Parameters", parameters);

            logicColumn.ConfigContent = new FunctionConfigurator();
            logicColumn.ConfigContent.DisplayConfiguration(dict);

            return(logicColumn);
        }