|
@@ -3,6 +3,7 @@ using System.Collections.Generic;
|
3
|
3
|
using System.Data.Entity;
|
4
|
4
|
using System.Linq;
|
5
|
5
|
using System.Linq.Expressions;
|
|
6
|
+using System.Runtime.Serialization;
|
6
|
7
|
using iiie.Logs.DBO;
|
7
|
8
|
using iiie.WebApiUtils.DBO;
|
8
|
9
|
|
|
@@ -32,6 +33,15 @@ namespace iiie.WebApiUtils.BusinessManager
|
32
|
33
|
|
33
|
34
|
public abstract OpResult<TDbObject> DboAddToDb(TDboAdd obj);
|
34
|
35
|
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+ public virtual Expression<Func<TDbObject, bool>> GetGlobalSelectPredicate()
|
|
41
|
+ {
|
|
42
|
+ return x => true;
|
|
43
|
+ }
|
|
44
|
+
|
35
|
45
|
|
36
|
46
|
|
37
|
47
|
|
|
@@ -40,6 +50,16 @@ namespace iiie.WebApiUtils.BusinessManager
|
40
|
50
|
|
41
|
51
|
public abstract OpResult<TDbObject> DboEditToDb(TDboEdit obj, TDbObject edit);
|
42
|
52
|
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+ public static Expression<Func<TDbObject, bool>> GetGlobalSelectPredicateStatic()
|
|
58
|
+ {
|
|
59
|
+ var obj = new TThis();
|
|
60
|
+ return obj.GetGlobalSelectPredicate();
|
|
61
|
+ }
|
|
62
|
+
|
43
|
63
|
|
44
|
64
|
|
45
|
65
|
|
|
@@ -82,7 +102,7 @@ namespace iiie.WebApiUtils.BusinessManager
|
82
|
102
|
|
83
|
103
|
public static OpResult<TDbObject> GetSingleDbObject(DbSet<TDbObject> table, Expression<Func<TDbObject, bool>> predicate)
|
84
|
104
|
{
|
85
|
|
- var o = table.FirstOrDefault(predicate);
|
|
105
|
+ var o = table.Where(GetGlobalSelectPredicateStatic()).FirstOrDefault(predicate);
|
86
|
106
|
if (o == null)
|
87
|
107
|
{
|
88
|
108
|
return OpResult<TDbObject>.Error(ResultStatus.NotFound, typeof(TThis).Name + ": Value not found", "");
|
|
@@ -140,7 +160,8 @@ namespace iiie.WebApiUtils.BusinessManager
|
140
|
160
|
return Execute((db, table) =>
|
141
|
161
|
{
|
142
|
162
|
var count = table.Count(predicate);
|
143
|
|
- var results = table.OrderBy(orderBy).Where(predicate).Skip(page * perPage).Take(perPage).Select(DbToDboGetStatic).ToList();
|
|
163
|
+ var results = table.OrderBy(orderBy).Where(GetGlobalSelectPredicateStatic())
|
|
164
|
+ .Where(predicate).Skip(page * perPage).Take(perPage).Select(DbToDboGetStatic).ToList();
|
144
|
165
|
var result = new DboGetMultiple<TDboGet>
|
145
|
166
|
{
|
146
|
167
|
Count = count,
|