-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSqlServerIntCrud.cs
86 lines (71 loc) · 4.22 KB
/
SqlServerIntCrud.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using AO.Models.Enums;
using AO.Models.Interfaces;
using Dapper.CX.Abstract;
using Dapper.CX.Classes;
using System;
using System.Data;
using System.Linq.Expressions;
using System.Threading.Tasks;
namespace Dapper.CX.SqlServer.Extensions.Int
{
public static partial class SqlServerIntCrud
{
private static SqlCrudProvider<int> GetProvider() => new SqlServerCrudProvider<int>(id => Convert.ToInt32(id));
public static async Task<TModel> GetAsync<TModel>(this IDbConnection connection, int id, IDbTransaction txn = null, IUserBase user = null)
{
return await GetProvider().GetAsync<TModel>(connection, id, txn, user);
}
public static async Task<TModel> GetWhereAsync<TModel>(this IDbConnection connection, object criteria, IDbTransaction txn = null, IUserBase user = null)
{
return await GetProvider().GetWhereAsync<TModel>(connection, criteria, txn, user);
}
public static async Task<TModel> GetWhereAsync<TModel>(this IDbConnection connection, IUserBase user, params Expression<Func<TModel, bool>>[] criteria)
{
return await GetProvider().GetWhereAsync(connection, user, criteria);
}
public static async Task<TModel> GetWhereAsync<TModel>(this IDbConnection connection, IDbTransaction txn, params Expression<Func<TModel, bool>>[] criteria)
{
return await GetProvider().GetWhereAsync(connection, txn, criteria);
}
public static async Task<TModel> GetWhereAsync<TModel>(this IDbConnection connection, IUserBase user, IDbTransaction txn, params Expression<Func<TModel, bool>>[] criteria)
{
return await GetProvider().GetWhereAsync(connection, user, txn, criteria);
}
public static async Task<TModel> GetWhereAsync<TModel>(this IDbConnection connection, params Expression<Func<TModel, bool>>[] criteria)
{
return await GetProvider().GetWhereAsync(connection, criteria);
}
public static async Task<TModel> GetWhereAsync<TModel>(this IDbConnection connection, Expression<Func<TModel, bool>>[] criteria, IUserBase user = null, IDbTransaction txn = null)
{
return await GetProvider().GetWhereAsync(connection, criteria, user, txn);
}
public static async Task<int> InsertAsync<TModel>(this IDbConnection connection, TModel model, bool getIdentity = true, IDbTransaction txn = null, IUserBase user = null)
{
return await GetProvider().InsertAsync(connection, model, getIdentity, txn, user);
}
public static async Task UpdateAsync<TModel>(this IDbConnection connection, TModel model, ChangeTracker<TModel> changeTracker = null, IDbTransaction txn = null, IUserBase user = null)
{
await GetProvider().UpdateAsync(connection, model, changeTracker, txn);
}
public static async Task DeleteAsync<TModel>(this IDbConnection connection, int id, IDbTransaction txn = null, IUserBase user = null)
{
await GetProvider().DeleteAsync<TModel>(connection, id, txn, user);
}
public static async Task<int> SaveAsync<TModel>(this IDbConnection connection, TModel model, ChangeTracker<TModel> changeTracker = null, IDbTransaction txn = null, IUserBase user = null, Action<SaveAction, TModel> onSave = null)
{
return await GetProvider().SaveAsync(connection, model, changeTracker, txn, user, onSave);
}
public static async Task<int> MergeAsync<TModel>(this IDbConnection connection, TModel model, ChangeTracker<TModel> changeTracker = null, IDbTransaction txn = null, IUserBase user = null, Action<SaveAction, TModel> onSave = null)
{
return await GetProvider().MergeAsync(connection, model, changeTracker, txn, user, onSave);
}
public static async Task<bool> ExistsAsync<TModel>(this IDbConnection connection, int id)
{
return await GetProvider().ExistsAsync<TModel>(connection, id);
}
public static async Task<bool> ExistsWhereAsync<TModel>(this IDbConnection connection, object criteria, IDbTransaction txn = null)
{
return await GetProvider().ExistsWhereAsync<TModel>(connection, criteria, txn);
}
}
}