示例#1
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));
        }