示例#1
0
        public string PROCEDURE_ACTION(IConnectToDB _Connect, string ProcedureName, List <DBParameters> EntryProcedureParameters, string _ReturnParameter)
        {
            List <DBParameters> ParamListDynamic = new List <DBParameters>();

            switch (_Connect.Platform.ToLower())
            {
            case "microsoft":

                Paramatizer(EntryProcedureParameters, ParamListDynamic);

                BIG_CALL RUN = new BIG_CALL();

                RUN.COMMANDS = new List <SQL_PROCEDURE_CALL>();

                RUN.COMMANDS.Add(new SQL_PROCEDURE_CALL {
                    ProcedureType = "value", ProcedureName = ProcedureName, _dbParameters = ParamListDynamic
                });

                DataTable _result = ER_Procedure.SQL_PROCEDURE_PARAMS(_Connect, RUN).COMMANDS[0].result._DataTable;

                return(ER_Procedure.SQL_PROCEDURE_GET_VALUE("@" + _ReturnParameter, _result));


            default:

                return("Invalid DB Platform");
            }
        }
示例#2
0
        private static void RunGeneratedCommand(IConnectToDB _Connect, T thisModel, SQLProcedureModels.BIG_CALL RUN)
        {
            DataTable _result = ER_Procedure.SQL_PROCEDURE_PARAMS(_Connect, RUN).COMMANDS[0].result._DataTable;

            //DataRow[] outputRow = _result.Select("ID = " + outputParam);

            string attemptedSQL = _result.Rows.Count > 0 && _result.Rows[0].Field <string>("ChildSQL") != null ? _result.Rows[0].Field <string>("ChildSQL").ToString() : "";

            bool isError = _result.Rows.Count > 0 && _result.Rows[0].Field <string>("ChildType") != null && _result.Rows[0].Field <string>("ChildType").ToString() == "Error";

            if (!String.IsNullOrWhiteSpace(attemptedSQL))
            {
                thisModel.GetType().GetProperty("V_ATTEMPTED_SQL")?.SetValue(thisModel, attemptedSQL, null);
            }

            if (isError)
            {
                try
                {
                    thisModel.GetType().GetProperty("O_ERR_MESS")?.SetValue(thisModel, _result.Rows[0].Field <string>("ChildValue").ToString(), null);
                }
                catch (Exception)
                {
                }
            }
            else
            {
                foreach (DataRow row in _result.Rows)
                {
                    var modelProperty = row["ChildItem"].ToString().Replace("@", "");
                    var thisValue     = row["ChildValue"];
                    if (modelProperty.Substring(0, 2) == "O_")
                    {
                        var    propertyType = thisModel.GetType().GetProperty(modelProperty)?.PropertyType;
                        object propertyVal  = row["ChildValue"];
                        if (propertyType != null)
                        {
                            //propertyVal = Convert.ChangeType(thisValue, propertyType);
                            propertyVal = ChangeType(propertyVal, propertyType);
                        }

                        if (propertyVal != null)
                        {
                            thisModel.GetType().GetProperty(modelProperty)?.SetValue(thisModel, propertyVal, null);
                        }
                    }

                    //if (row.ItemArray[2].ToString() == ReturnValueFor && Int64.TryParse(row.ItemArray[3].ToString(), out outputid))
                    //{
                    //    thisModel.GetType().GetProperty(outputParam).SetValue(thisModel, outputid, null);
                    //}
                }
            }
        }
示例#3
0
        public DataTable GetIdentities(IConnectToDB _Connect, IdentitySearch Model)
        {
            ER_DML er_dml = new ER_DML();

            VirtualProcedureCall ProcedureModel = new VirtualProcedureCall();

            ProcedureModel.ProcedureName       = "VW__IDENTITIES_SEARCH";
            ProcedureModel.ProcedureReturnType = "query";

            ProcedureModel.ProcedureParams = new List <ProcedureParameterStruct>();

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_SEARCH",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "MAX",
                ParamValue         = Model.Search
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_WHERE",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "MAX",
                ParamValue         = Model.Where
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_STARTING_ROW",
                MSSqlParamDataType = "bigint",
                ParamDirection     = "input",
                ParamValue         = Model.StartingRow
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_LENGTH_OF_SET",
                MSSqlParamDataType = "bigint",
                ParamDirection     = "input",
                ParamValue         = Model.LengthOfSet
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_ORDER_BY",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "MAX",
                ParamValue         = Model.OrderBy
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_USER_NAME",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "50",
                ParamValue         = Model.Username
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_EDIPI",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "10",
                ParamValue         = Model.Edipi
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_EMAIL",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "254",
                ParamValue         = Model.Email
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_ACTIVE",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "1",
                ParamValue         = Model.Active
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_VERIFIED",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "1",
                ParamValue         = Model.Verified
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_OBJECT_LAYER",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "30",
                ParamValue         = Model.ObjectLayer
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_VERIFY",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "1",
                ParamValue         = Model.Verify
            });

            DataTable _Result = ER_Procedure.VIRTUAL_PROCEDURE_CALL(_Connect, ProcedureModel);

            return(_Result);
        }
示例#4
0
        public DataTable GetIdentitiesCount(IConnectToDB _Connect, IdentitySearchCount Model)
        {
            ER_DML er_dml = new ER_DML();

            VirtualProcedureCall ProcedureModel = new VirtualProcedureCall();

            ProcedureModel.ProcedureName       = "IDENTITIES_SEARCH_COUNT";
            ProcedureModel.ProcedureReturnType = "value";

            ProcedureModel.ProcedureParams = new List <ProcedureParameterStruct>();

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_SEARCH",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "MAX",
                ParamValue         = Model.Search
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_WHERE",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "MAX",
                ParamValue         = Model.Where
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_USER_NAME",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "50",
                ParamValue         = Model.Username
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_EDIPI",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "10",
                ParamValue         = Model.Edipi
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_EMAIL",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "254",
                ParamValue         = Model.Email
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_ACTIVE",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "1",
                ParamValue         = Model.Active
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_VERIFIED",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "1",
                ParamValue         = Model.Verified
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_OBJECT_LAYER",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "30",
                ParamValue         = Model.ObjectLayer
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "P_VERIFY",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "input",
                ParamSize          = "1",
                ParamValue         = Model.Verify
            });

            ProcedureModel.ProcedureParams.Add(new ProcedureParameterStruct
            {
                ParamName          = "O_ATTEMPTED_RESULTS",
                MSSqlParamDataType = "varchar",
                ParamDirection     = "output",
                ParamSize          = "MAX"
            });

            DataTable _Result = ER_Procedure.VIRTUAL_PROCEDURE_CALL(_Connect, ProcedureModel);

            return(_Result);
        }