public TEntity Insert(IStorageDbConnection conn, TEntity entityToInsert, IEnumerable <Expression <Func <TEntity, object> > > ignoredFields, AutoIncrementTransformer <TKey, TEntity> atf, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (entityToInsert == null) { throw new ArgumentNullException(nameof(entityToInsert)); } var result = ConstructInsertSql(entityToInsert, ignoredFields, atf != null); conn.TextWriter.WriteSql(result.CommandText); if (atf == null) { conn.Execute(result.CommandText, result.Parameters, tr); } else { var id = (TKey)Convert.ChangeType(conn.QuerySingle(typeof(TKey), result.CommandText, result.Parameters, tr), typeof(TKey), CultureInfo.InvariantCulture); atf(id, entityToInsert); } return(entityToInsert); }
public async Task <TEntity> InsertAsync(IStorageDbConnection conn, TEntity entityToInsert, IEnumerable <Expression <Func <TEntity, object> > > ignoredFields, AutoIncrementTransformer <TKey, TEntity> atf, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (entityToInsert == null) { throw new ArgumentNullException(nameof(entityToInsert)); } var result = ConstructInsertSql(entityToInsert, ignoredFields, atf != null); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); if (atf == null) { await conn.ExecuteAsync(cmd); } else { var id = (TKey)Convert.ChangeType(await conn.QuerySingleAsync(typeof(TKey), cmd), typeof(TKey), CultureInfo.InvariantCulture); atf(id, entityToInsert); } return(entityToInsert); }
public IEnumerable <TEntity> Take(IStorageDbConnection conn, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructTakeSql(take, selectFields, whereClause, orderbyClause.IsNull ? CreateDefaultOrderbyClause() : orderbyClause); conn.TextWriter.WriteSql(result.CommandText); return(conn.Query <TEntity>(result.CommandText, result.Parameters, tr).AsList()); }
public bool Exists(IStorageDbConnection conn, WhereClauseResult whereClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructExistsSql(whereClause); conn.TextWriter.WriteSql(result.CommandText); return((bool)Convert.ChangeType(conn.QuerySingle(typeof(int), result.CommandText, result.Parameters, tr), typeof(bool), CultureInfo.InvariantCulture)); }
public long Count(IStorageDbConnection conn, Expression <Func <TEntity, object> > member, WhereClauseResult whereClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructCountSql(member, whereClause); conn.TextWriter.WriteSql(result.CommandText); return((long)Convert.ChangeType(conn.QuerySingle(typeof(long), result.CommandText, result.Parameters, tr), typeof(long), CultureInfo.InvariantCulture)); }
public async Task <long> CountAsync(IStorageDbConnection conn, Expression <Func <TEntity, object> > member, WhereClauseResult whereClause, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructCountSql(member, whereClause); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); return((long)Convert.ChangeType(await conn.QuerySingleAsync(typeof(long), cmd), typeof(long), CultureInfo.InvariantCulture)); }
public async Task <IEnumerable <TEntity> > TakeAsync(IStorageDbConnection conn, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructTakeSql(take, selectFields, whereClause, orderbyClause.IsNull ? CreateDefaultOrderbyClause() : orderbyClause); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); return((await conn.QueryAsync <TEntity>(cmd)).AsList()); }
public async Task <bool> ExistsAsync(IStorageDbConnection conn, WhereClauseResult whereClause, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } var result = ConstructExistsSql(whereClause); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); return((bool)Convert.ChangeType(await conn.QuerySingleAsync(typeof(int), cmd), typeof(bool), CultureInfo.InvariantCulture)); }
public void Delete(IStorageDbConnection conn, WhereClauseResult whereClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (whereClause == null) { throw new ArgumentNullException(nameof(whereClause)); } var result = ConstructDeleteSql(whereClause); conn.TextWriter.WriteSql(result.CommandText); conn.Execute(result.CommandText, result.Parameters, tr); }
public void Update(IStorageDbConnection conn, TEntity entityToUpdate, IEnumerable <Expression <Func <TEntity, object> > > updateFields, WhereClauseResult whereClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (entityToUpdate == null) { throw new ArgumentNullException(nameof(entityToUpdate)); } var result = ConstructUpdateSql(entityToUpdate, updateFields, whereClause); conn.TextWriter.WriteSql(result.CommandText); conn.Execute(result.CommandText, result.Parameters, tr); }
public void Delete(IStorageDbConnection conn, Expression <Func <TEntity, object> > id, TKey value, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (id == null) { throw new ArgumentNullException(nameof(id)); } var result = ConstructDeleteSql(id, value); conn.TextWriter.WriteSql(result.CommandText); conn.Execute(result.CommandText, result.Parameters, tr); }
public TEntity SingleOrDefault(IStorageDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, Expression <Func <TEntity, object> > id, TKey value, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (id == null) { throw new ArgumentNullException(nameof(id)); } var result = ConstructSingleSql(selectFields, id, value); conn.TextWriter.WriteSql(result.CommandText); return(conn.Query <TEntity>(result.CommandText, result.Parameters, tr).SingleOrDefault()); }
public async Task DeleteAsync(IStorageDbConnection conn, Expression <Func <TEntity, object> > id, TKey value, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (id == null) { throw new ArgumentNullException(nameof(id)); } var result = ConstructDeleteSql(id, value); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); await conn.ExecuteAsync(cmd); }
public async Task UpdateAsync(IStorageDbConnection conn, TEntity entityToUpdate, IEnumerable <Expression <Func <TEntity, object> > > updateFields, WhereClauseResult whereClause, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (entityToUpdate == null) { throw new ArgumentNullException(nameof(entityToUpdate)); } var result = ConstructUpdateSql(entityToUpdate, updateFields, whereClause); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); await conn.ExecuteAsync(cmd); }
public async Task DeleteAsync(IStorageDbConnection conn, WhereClauseResult whereClause, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (whereClause == null) { throw new ArgumentNullException(nameof(whereClause)); } var result = ConstructDeleteSql(whereClause); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); await conn.ExecuteAsync(cmd); }
public async Task <TEntity> SingleOrDefaultAsync(IStorageDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, Expression <Func <TEntity, object> > id, TKey value, IDbTransaction tr, CancellationToken cancellationToken) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (id == null) { throw new ArgumentNullException(nameof(id)); } var result = ConstructSingleSql(selectFields, id, value); conn.TextWriter.WriteSql(result.CommandText); var cmd = CreateDapperCmd(result.CommandText, result.Parameters, tr, cancellationToken); return((await conn.QueryAsync <TEntity>(cmd)).SingleOrDefault()); }
public IPageResult <TEntity> Page(IStorageDbConnection conn, int skip, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr) { if (conn == null) { throw new ArgumentNullException(nameof(conn)); } if (skip < 0) { skip = 0; } var result = ConstructPageSql(skip, take, selectFields, whereClause, orderbyClause.IsNull ? CreateDefaultOrderbyClause() : orderbyClause); conn.TextWriter.WriteSql(result.CommandText); var gridReader = conn.QueryMultiple(result.CommandText, result.Parameters, tr); var totalNumberOfRecords = (long)Convert.ChangeType(gridReader.ReadSingle(typeof(long)), typeof(long), CultureInfo.InvariantCulture); var list = gridReader.Read <TEntity>().AsList(); return(new PageResult <TEntity>(skip, take, totalNumberOfRecords, list)); }
public static Task UpdateAsync <TKey, TEntity>(this IUpdateStore <TKey, TEntity> updateStore, IStorageDbConnection conn, TEntity entityToUpdate, Expression <Func <TEntity, object> > id, TKey value) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (updateStore == null) { throw new ArgumentNullException(nameof(updateStore)); } return(updateStore.UpdateAsync(conn, entityToUpdate, null, id, value, null, default(CancellationToken))); }
public static Task DeleteAsync <TKey, TEntity>(this IDeleteStore <TKey, TEntity> deleteStore, IStorageDbConnection conn, WhereClauseResult whereClause, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (deleteStore == null) { throw new ArgumentNullException(nameof(deleteStore)); } return(deleteStore.DeleteAsync(conn, whereClause, tr, default(CancellationToken))); }
public static IEnumerable <TEntity> Select <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, OrderbyClauseResult orderbyClause, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Select(conn, selectFields, WhereClauseResult.Null, orderbyClause, tr)); }
public static IEnumerable <TEntity> Select <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, OrderbyClauseResult orderbyClause) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.Select(conn, null, WhereClauseResult.Null, orderbyClause, null)); }
public static Task <IEnumerable <TEntity> > TakeAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int take, IEnumerable <Expression <Func <TEntity, object> > > selectFields, IDbTransaction tr, CancellationToken cancellationToken) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.TakeAsync(conn, take, selectFields, WhereClauseResult.Null, OrderbyClauseResult.Null, tr, cancellationToken)); }
public static Task <TEntity> SingleOrDefaultAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, TKey value, CancellationToken cancellationToken) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.SingleOrDefaultAsync(conn, null, _ => _.Id, value, null, cancellationToken)); }
public static Task <TEntity> SingleOrDefaultAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields, TKey value) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.SingleOrDefaultAsync(conn, selectFields, _ => _.Id, value, null, default(CancellationToken))); }
public static Task <TEntity> FirstOrDefaultAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, IEnumerable <Expression <Func <TEntity, object> > > selectFields) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.FirstOrDefaultAsync(conn, selectFields, WhereClauseResult.Null, OrderbyClauseResult.Null, null, default(CancellationToken))); }
public static Task UpdateAsync <TKey, TEntity>(this IUpdateStore <TKey, TEntity> updateStore, IStorageDbConnection conn, TEntity entityToUpdate, TKey value, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (updateStore == null) { throw new ArgumentNullException(nameof(updateStore)); } return(updateStore.UpdateAsync(conn, entityToUpdate, null, _ => _.Id, value, tr, default(CancellationToken))); }
public static Task UpdateAsync <TKey, TEntity>(this IUpdateStore <TKey, TEntity> updateStore, IStorageDbConnection conn, TEntity entityToUpdate, IEnumerable <Expression <Func <TEntity, object> > > updateFields, TKey value, IDbTransaction tr, CancellationToken cancellationToken) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (updateStore == null) { throw new ArgumentNullException(nameof(updateStore)); } return(updateStore.UpdateAsync(conn, entityToUpdate, updateFields, _ => _.Id, value, tr, cancellationToken)); }
public static Task <TEntity> SingleOrDefaultAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, Expression <Func <TEntity, object> > id, TKey value, IDbTransaction tr, CancellationToken cancellationToken) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.SingleOrDefaultAsync(conn, null, id, value, tr, cancellationToken)); }
public static Task <TEntity> FirstOrDefaultAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, IDbTransaction tr, CancellationToken cancellationToken) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.FirstOrDefaultAsync(conn, null, WhereClauseResult.Null, OrderbyClauseResult.Null, tr, cancellationToken)); }
public static Task <IEnumerable <TEntity> > TakeAsync <TKey, TEntity>(this IQueryStore <TKey, TEntity> queryStore, IStorageDbConnection conn, int take, WhereClauseResult whereClause, OrderbyClauseResult orderbyClause, IDbTransaction tr) where TKey : IEquatable <TKey> where TEntity : class, IEntity <TKey> { if (queryStore == null) { throw new ArgumentNullException(nameof(queryStore)); } return(queryStore.TakeAsync(conn, take, null, whereClause, orderbyClause, tr, default(CancellationToken))); }