Example #1
0
        public static IEnumerable <T> ToColIterator <T>(this SqlBuilder sqlBuilder, BeanApi api,
                                                        params object[] parameters)
        {
            var query = sqlBuilder.ToSql();

            return(query.StartsWith("SELECT")
                ? api.ColIterator <T>(query, parameters)
                : throw NotAnSqlQueryException.Create());
        }
Example #2
0
        public static IEnumerable <IDictionary <string, object> > ToRowsIterator(this SqlBuilder sqlBuilder, BeanApi api,
                                                                                 params object[] parameters)
        {
            var query = sqlBuilder.ToSql();

            return(query.StartsWith("SELECT")
                ? api.RowsIterator(query, parameters)
                : throw NotAnSqlQueryException.Create());
        }
Example #3
0
        public static T FetchScalar <T>(this SqlBuilder sqlBuilder, BeanApi api,
                                        bool useCache = true, params object[] parameters)
        {
            var query = sqlBuilder.ToSql();

            return(query.StartsWith("SELECT")
                ? api.Cell <T>(useCache, query, parameters)
                : throw NotAnSqlQueryException.Create());
        }
Example #4
0
        public static IDictionary <string, object>[] Fetch(this SqlBuilder sqlBuilder, BeanApi api,
                                                           bool useCache = true, params object[] parameters)
        {
            var query = sqlBuilder.ToSql();

            return(query.StartsWith("SELECT")
                ? api.Rows(useCache, query, parameters)
                : throw NotAnSqlQueryException.Create());
        }
Example #5
0
        public static IDictionary <string, object>[] FetchPaginated(this SqlBuilder sqlBuilder, BeanApi api,
                                                                    int pageNo, int perPage = 10, bool useCache = true, params object[] parameters)
        {
            var query = sqlBuilder.ToSql();

            if (!query.StartsWith("SELECT"))
            {
                throw NotAnSqlQueryException.Create();
            }

            var pagination = PrepareFetchedPagination(api, query, pageNo, perPage);

            var dbDetails = api.CreateDetails();

            return(api.Rows(useCache,
                            $"{query} {dbDetails.Paginate(pagination.CurrentPage, perPage)}", parameters));
        }