Ejemplo n.º 1
0
        public static PaginationResult <T> Paginate <T>(this Query query, int page, int perPage = 25)
        {
            if (page < 1)
            {
                throw new ArgumentException("Page param should be greater than or equal to 1", nameof(page));
            }

            if (perPage < 1)
            {
                throw new ArgumentException("PerPage param should be greater than or equal to 1", nameof(perPage));
            }

            var xQuery = QueryHelper.CastToXQuery(query, nameof(Paginate));

            var count = query.Clone().Count <long>();

            var list = query.ForPage(page, perPage).Get <T>();

            return(new PaginationResult <T>
            {
                Query = query.Clone(),
                Page = page,
                PerPage = perPage,
                Count = count,
                List = list
            });
        }
Ejemplo n.º 2
0
        public static T First <T>(this Query query)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(First));

            var compiled = xQuery.Compiler.Compile(query.Limit(1));

            return(xQuery.Connection.QueryFirst <T>(compiled.Sql, compiled.Bindings));
        }
Ejemplo n.º 3
0
        public static int Delete(this Query query)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Delete));

            var compiled = xQuery.Compiler.Compile(query.AsDelete());

            return(xQuery.Connection.Execute(compiled.Sql, compiled.Bindings));
        }
Ejemplo n.º 4
0
        public static int Update(this Query query, IReadOnlyDictionary <string, object> values)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Update));

            var compiled = xQuery.Compiler.Compile(query.AsUpdate(values));

            return(xQuery.Connection.Execute(compiled.Sql, compiled.Bindings));
        }
Ejemplo n.º 5
0
        public static int Insert(this Query query, IEnumerable <string> columns, Query fromQuery)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Insert));

            var compiled = xQuery.Compiler.Compile(query.AsInsert(columns, fromQuery));

            return(xQuery.Connection.Execute(compiled.Sql, compiled.Bindings));
        }
        public static async Task <T> FirstAsync <T>(this Query query)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(FirstAsync));

            var compiled = xQuery.Compiler.Compile(query.Limit(1));

            return(await xQuery.Connection.QueryFirstAsync <T>(compiled.Sql, compiled.Bindings));
        }
        public static async Task <int> DeleteAsync(this Query query)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(DeleteAsync));

            var compiled = xQuery.Compiler.Compile(query.AsDelete());

            return(await xQuery.Connection.ExecuteAsync(compiled.Sql, compiled.Bindings));
        }
        public static async Task <int> InsertAsync(this Query query, IReadOnlyDictionary <string, object> values)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(InsertAsync));

            var compiled = xQuery.Compiler.Compile(query.AsInsert(values));

            return(await xQuery.Connection.ExecuteAsync(compiled.Sql, compiled.Bindings));
        }
        public static async Task <IEnumerable <T> > GetAsync <T>(this Query query)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(GetAsync));

            var compiled = xQuery.Compiler.Compile(query);

            return(await xQuery.Connection.QueryAsync <T>(compiled.Sql, compiled.Bindings));
        }
Ejemplo n.º 10
0
        public static IEnumerable <T> Get <T>(this Query query)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Get));

            var compiled = xQuery.Compiler.Compile(query);

            return(xQuery.Connection.Query <T>(compiled.Sql, compiled.Bindings));
        }
Ejemplo n.º 11
0
        public static SqlResult Insert(this Query query, object data)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Insert));

            var compiled = xQuery.Compiler.Compile(query.AsInsert(data));

            xQuery.Logger(compiled);
            return(compiled);
        }
        public static async Task <int> UpdateAsync(this Query query, object data)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(UpdateAsync));

            var compiled = xQuery.Compiler.Compile(query.AsUpdate(data));

            xQuery.Logger(compiled);

            return(await xQuery.Connection.ExecuteAsync(compiled.Sql, compiled.NamedBindings));
        }
Ejemplo n.º 13
0
        public static int Insert(this Query query, IEnumerable <string> columns, IEnumerable <IEnumerable <object> > valuesCollection)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Insert));

            var compiled = xQuery.Compiler.Compile(query.AsInsert(columns, valuesCollection));

            xQuery.Logger(compiled);

            return(xQuery.Connection.Execute(compiled.Sql, compiled.Bindings));
        }
        public static async Task <int> InsertAsync(this Query query, IEnumerable <string> columns, Query fromQuery)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(InsertAsync));

            var compiled = xQuery.Compiler.Compile(query.AsInsert(columns, fromQuery));

            xQuery.Logger(compiled);

            return(await xQuery.Connection.ExecuteAsync(compiled.Sql, compiled.NamedBindings));
        }
Ejemplo n.º 15
0
        public static int Insert(this Query query, object data)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Insert));

            var compiled = xQuery.Compiler.Compile(query.AsInsert(data));

            xQuery.Logger(compiled);

            return(xQuery.Connection.Execute(compiled.Sql, compiled.NamedBindings));
        }
Ejemplo n.º 16
0
        public static int Insert(this Query query, IReadOnlyDictionary <string, object> values)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Insert));

            var compiled = xQuery.Compiler.Compile(query.AsInsert(values));

            xQuery.Logger(compiled);

            return(xQuery.Connection.Execute(compiled.Sql, compiled.NamedBindings));
        }
        public static async Task <T> AggregateAsync <T>(this Query query, string aggregateOperation, params string[] columns)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(AggregateAsync));

            var result = xQuery.Compiler.Compile(query.AsAggregate(aggregateOperation, columns));

            var scalar = await xQuery.Connection.ExecuteScalarAsync <T>(result.Sql, result.NamedBindings);

            return(scalar);
        }
Ejemplo n.º 18
0
        public static SqlResult Delete(this Query query)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Delete));

            var compiled = xQuery.Compiler.Compile(query.AsDelete());

            xQuery.Logger(compiled);

            return(compiled);
        }
        public static async Task <T> CountAsync <T>(this Query query, params string[] columns)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(CountAsync));

            var result = xQuery.Compiler.Compile(query.AsCount(columns));

            var scalar = await xQuery.Connection.ExecuteScalarAsync <T>(result.Sql, result.Bindings);

            return(scalar);
        }
Ejemplo n.º 20
0
        public static T InsertGetId <T>(this Query query, object data)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(InsertGetId));

            var compiled = xQuery.Compiler.Compile(query.AsInsert(data, true));

            xQuery.Logger(compiled);

            var row = xQuery.Connection.QueryFirst <InsertGetIdRow <T> >(
                compiled.Sql, compiled.NamedBindings
                );

            return(row.Id);
        }
        public static T Average <T>(this Query query, string column)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Average));

            return(query.Aggregate <T>("avg", column));
        }
        public static async Task <T> MaxAsync <T>(this Query query, string column)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(MaxAsync));

            return(await query.AggregateAsync <T>("max", column));
        }
        public static T Max <T>(this Query query, string column)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Max));

            return(query.Aggregate <T>("max", column));
        }
        public static T Sum <T>(this Query query, string column)
        {
            var xQuery = QueryHelper.CastToXQuery(query, nameof(Sum));

            return(query.Aggregate <T>("sum", column));
        }