private static SqlParameter[] BuildSqlParameters(object storedProcedure, StoredProcedureInfo info)
        {
            var sqlParams = new List <SqlParameter>();

            foreach (var p in info.ParameterInfos)
            {
                var propertyValue = p.PropertyInfo.GetValue(storedProcedure, null);

                var value = p.IsUserDefinedTable
                                         ? _helper.GetUserDefinedTableValue(p.PropertyInfo, storedProcedure)
                                         : propertyValue;

                SqlParameter sqlParameter = GenerateSqlParameter(p.Name,
                                                                 value,
                                                                 p.IsMandatory,
                                                                 p.IsUserDefinedTable,
                                                                 p.IsUserDefinedTable ?
                                                                 _helper.GetUserDefinedTableType(p.PropertyInfo) : null,
                                                                 p.SqlDataType,
                                                                 p.Direction);

                sqlParams.Add(sqlParameter);
            }

            return(sqlParams.ToArray());
        }
        public static StoredProcedureInfo BuildStoredProcedureInfo(object storedProcedure)
        {
            Collection<StoredProcedureParameterInfo> parameterInfo = BuildStoredProcedureParameterInfo(storedProcedure);

            string sql = BuildSql(storedProcedure, parameterInfo);
            SqlParameter[] sqlParameters = BuildSqlParameters(storedProcedure, parameterInfo);

            var info = new StoredProcedureInfo()
                {
                    Sql = sql,
                    SqlParameters = sqlParameters
                };

            return info;
            
        }
        public static StoredProcedureInfo BuildStoredProcedureInfo(object storedProcedure)
        {
            Collection <StoredProcedureParameterInfo> parameterInfo = BuildStoredProcedureParameterInfo(storedProcedure);

            string sql = BuildSql(storedProcedure, parameterInfo);

            SqlParameter[] sqlParameters = BuildSqlParameters(storedProcedure, parameterInfo);

            var info = new StoredProcedureInfo()
            {
                Sql           = sql,
                SqlParameters = sqlParameters
            };

            return(info);
        }
        public static StoredProcedureInfo BuildStoredProcedureInfo(object storedProcedure)
        {
            var storedProcedureName = GetStoreProcedureName(storedProcedure);

            var parameterInfo = BuildStoredProcedureParameterInfo(storedProcedure);

            string sql = BuildSql(storedProcedureName, parameterInfo);

            var info = new StoredProcedureInfo(storedProcedureName)
                {
                    Sql = sql,
                    ParameterInfos = parameterInfo,
                };

            info.SqlParameters = BuildSqlParameters(storedProcedure, info);

            return info;
        }
        public static StoredProcedureInfo BuildStoredProcedureInfo(object storedProcedure)
        {
            var storedProcedureName = GetStoreProcedureName(storedProcedure);

            var parameterInfo = BuildStoredProcedureParameterInfo(storedProcedure);

            string sql = BuildSql(storedProcedureName, parameterInfo);

            var info = new StoredProcedureInfo(storedProcedureName)
            {
                Sql            = sql,
                ParameterInfos = parameterInfo,
            };

            info.SqlParameters = BuildSqlParameters(storedProcedure, info);

            return(info);
        }
        private static SqlParameter[] BuildSqlParameters(object storedProcedure, StoredProcedureInfo info)
        {
            var sqlParams = new List<SqlParameter>();

            foreach (var p in info.ParameterInfos)
            {
                var propertyValue = p.PropertyInfo.GetValue(storedProcedure, null);

                var value = p.IsUserDefinedTable
                                         ? _helper.GetUserDefinedTableValue(p.PropertyInfo, storedProcedure)
                                         : propertyValue;

                SqlParameter sqlParameter = GenerateSqlParameter(p.Name,
                                                                 value,
                                                                 p.IsMandatory,
                                                                 p.IsUserDefinedTable,
                                                                 p.IsUserDefinedTable ?
                                                                                    _helper.GetUserDefinedTableType(p.PropertyInfo) : null,
                                                                p.SqlDataType,
                                                                p.Direction);

                sqlParams.Add(sqlParameter);
            }

            return sqlParams.ToArray();
        }