Browse Source

tests; refactor; added overload for cruddataaccess add methods; added cruddataaccess edit

tags/v0.1.0
Robin Thoni 7 years ago
parent
commit
a0ffce9158

+ 220
- 124
.idea/.idea.luticate2/.idea/workspace.xml View File

@@ -29,58 +29,58 @@
29 29
   </component>
30 30
   <component name="FileEditorManager">
31 31
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
32
-      <file leaf-file-name="LuGroupsDataAccessTest.cs" pinned="false" current-in-tab="true">
32
+      <file leaf-file-name="LuGroupsDataAccessTest.cs" pinned="false" current-in-tab="false">
33 33
         <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
34 34
           <provider selected="true" editor-type-id="text-editor">
35
-            <state relative-caret-position="513">
36
-              <caret line="122" column="64" selection-start-line="122" selection-start-column="64" selection-end-line="122" selection-end-column="64" />
35
+            <state relative-caret-position="297">
36
+              <caret line="93" column="37" selection-start-line="93" selection-start-column="37" selection-end-line="93" selection-end-column="37" />
37 37
               <folding>
38
-                <marker date="1480817312915" expanded="true" signature="285:4883" ph="{...}" />
39
-                <marker date="1480817312915" expanded="true" signature="327:4881" ph="{...}" />
40
-                <marker date="1480817312915" expanded="true" signature="379:1050" ph="{...}" />
41
-                <marker date="1480817312915" expanded="true" signature="1098:1787" ph="{...}" />
42
-                <marker date="1480817312915" expanded="true" signature="2446:3026" ph="{...}" />
43
-                <marker date="1480817312915" expanded="true" signature="3074:4875" ph="{...}" />
38
+                <marker date="1480827601219" expanded="true" signature="6:260" ph="..." />
39
+                <marker date="1480827601219" expanded="true" signature="288:6464" ph="{...}" />
40
+                <marker date="1480827601219" expanded="true" signature="330:6462" ph="{...}" />
41
+                <marker date="1480827601219" expanded="true" signature="382:1071" ph="{...}" />
42
+                <marker date="1480827601219" expanded="true" signature="1119:1803" ph="{...}" />
43
+                <marker date="1480827601219" expanded="true" signature="1851:2423" ph="{...}" />
44
+                <marker date="1480827601219" expanded="true" signature="2471:3043" ph="{...}" />
45
+                <marker date="1480827601219" expanded="true" signature="3091:5001" ph="{...}" />
46
+                <marker date="1480827601219" expanded="true" signature="5049:6456" ph="{...}" />
44 47
               </folding>
45 48
             </state>
46 49
           </provider>
47 50
         </entry>
48 51
       </file>
49
-      <file leaf-file-name="LuEfCrudDataAccess.cs" pinned="false" current-in-tab="false">
52
+      <file leaf-file-name="LuEfCrudDataAccess.cs" pinned="false" current-in-tab="true">
50 53
         <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
51 54
           <provider selected="true" editor-type-id="text-editor">
52
-            <state relative-caret-position="585">
53
-              <caret line="134" column="1" selection-start-line="134" selection-start-column="1" selection-end-line="134" selection-end-column="1" />
55
+            <state relative-caret-position="341">
56
+              <caret line="37" column="15" selection-start-line="37" selection-start-column="15" selection-end-line="37" selection-end-column="15" />
54 57
               <folding>
55
-                <marker date="1480817160447" expanded="true" signature="6:161" ph="..." />
56
-                <marker date="1480817160447" expanded="true" signature="199:4916" ph="{...}" />
57
-                <marker date="1480817160447" expanded="true" signature="597:617" ph="{...}" />
58
-                <marker date="1480817160447" expanded="true" signature="920:1242" ph="{...}" />
59
-                <marker date="1480817160447" expanded="true" signature="1297:1553" ph="{...}" />
60
-                <marker date="1480817160447" expanded="true" signature="1874:2130" ph="{...}" />
61
-                <marker date="1480817160447" expanded="true" signature="2188:2270" ph="{...}" />
62
-                <marker date="1480817160447" expanded="true" signature="2357:2792" ph="{...}" />
63
-                <marker date="1480817160447" expanded="true" signature="2887:2958" ph="{...}" />
64
-                <marker date="1480817160447" expanded="true" signature="3018:3118" ph="{...}" />
65
-                <marker date="1480817160447" expanded="true" signature="3183:3253" ph="{...}" />
66
-                <marker date="1480817160447" expanded="true" signature="3311:3411" ph="{...}" />
67
-                <marker date="1480817160447" expanded="true" signature="3676:4205" ph="{...}" />
68
-                <marker date="1480817160447" expanded="true" signature="4022:4108" ph="{...}" />
69
-                <marker date="1480817160447" expanded="true" signature="4476:4590" ph="{...}" />
70
-                <marker date="1480817160447" expanded="true" signature="4807:4908" ph="{...}" />
71
-              </folding>
72
-            </state>
73
-          </provider>
74
-        </entry>
75
-      </file>
76
-      <file leaf-file-name="LuPaginatedDbo.cs" pinned="false" current-in-tab="false">
77
-        <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuPaginatedDbo.cs">
78
-          <provider selected="true" editor-type-id="text-editor">
79
-            <state relative-caret-position="144">
80
-              <caret line="8" column="20" selection-start-line="8" selection-start-column="20" selection-end-line="8" selection-end-column="20" />
81
-              <folding>
82
-                <marker date="1480815552827" expanded="true" signature="64:212" ph="{...}" />
83
-                <marker date="1480815552827" expanded="true" signature="112:210" ph="{...}" />
58
+                <marker date="1480827601227" expanded="true" signature="6:161" ph="..." />
59
+                <marker date="1480827601227" expanded="true" signature="199:7045" ph="{...}" />
60
+                <marker date="1480827601227" expanded="true" signature="512:7043" ph="{...}" />
61
+                <marker date="1480827601227" expanded="false" signature="609:629" ph="{...}" />
62
+                <marker date="1480827601227" expanded="true" signature="942:1327" ph="{...}" />
63
+                <marker date="1480827601227" expanded="false" signature="1408:1509" ph="{...}" />
64
+                <marker date="1480827601227" expanded="false" signature="1593:1925" ph="{...}" />
65
+                <marker date="1480827601227" expanded="false" signature="1982:2078" ph="{...}" />
66
+                <marker date="1480827601227" expanded="false" signature="2157:2486" ph="{...}" />
67
+                <marker date="1480827601227" expanded="false" signature="2539:2633" ph="{...}" />
68
+                <marker date="1480827601227" expanded="false" signature="2717:2780" ph="{...}" />
69
+                <marker date="1480827601227" expanded="false" signature="2838:2933" ph="{...}" />
70
+                <marker date="1480827601227" expanded="false" signature="3020:3455" ph="{...}" />
71
+                <marker date="1480827601227" expanded="false" signature="3550:3621" ph="{...}" />
72
+                <marker date="1480827601227" expanded="false" signature="3679:3779" ph="{...}" />
73
+                <marker date="1480827601227" expanded="false" signature="3839:3907" ph="{...}" />
74
+                <marker date="1480827601227" expanded="false" signature="3965:4065" ph="{...}" />
75
+                <marker date="1480827601227" expanded="false" signature="4330:4859" ph="{...}" />
76
+                <marker date="1480827601227" expanded="true" signature="4676:4762" ph="{...}" />
77
+                <marker date="1480827601227" expanded="false" signature="5064:5178" ph="{...}" />
78
+                <marker date="1480827601227" expanded="false" signature="5341:5428" ph="{...}" />
79
+                <marker date="1480827601227" expanded="false" signature="5577:6139" ph="{...}" />
80
+                <marker date="1480827601227" expanded="false" signature="6253:6460" ph="{...}" />
81
+                <marker date="1480827601227" expanded="false" signature="6568:6649" ph="{...}" />
82
+                <marker date="1480827601227" expanded="false" signature="6757:6838" ph="{...}" />
83
+                <marker date="1480827601227" expanded="false" signature="6948:7037" ph="{...}" />
84 84
               </folding>
85 85
             </state>
86 86
           </provider>
@@ -101,14 +101,14 @@
101 101
         <option value="$APPLICATION_CONFIG_DIR$/consoles/db/41647544-920e-40a8-9060-e11c61aaa20e/console.sql" />
102 102
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json" />
103 103
         <option value="$PROJECT_DIR$/../../Test/Tests.cs" />
104
-        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuResult.cs" />
105 104
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/Models/lu_groups.cs" />
106 105
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig" />
107 106
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs" />
108 107
         <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs" />
109 108
         <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuPaginatedDbo.cs" />
110
-        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs" />
109
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuResult.cs" />
111 110
         <option value="$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs" />
111
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs" />
112 112
       </list>
113 113
     </option>
114 114
   </component>
@@ -171,6 +171,28 @@
171 171
               <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
172 172
             </PATH_ELEMENT>
173 173
           </PATH>
174
+          <PATH>
175
+            <PATH_ELEMENT>
176
+              <option name="myItemId" />
177
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
178
+            </PATH_ELEMENT>
179
+            <PATH_ELEMENT>
180
+              <option name="myItemId" value="luticate2 (4 projects)" />
181
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
182
+            </PATH_ELEMENT>
183
+            <PATH_ELEMENT>
184
+              <option name="myItemId" value="Test" />
185
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
186
+            </PATH_ELEMENT>
187
+            <PATH_ELEMENT>
188
+              <option name="myItemId" value="Auth" />
189
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
190
+            </PATH_ELEMENT>
191
+            <PATH_ELEMENT>
192
+              <option name="myItemId" value="Groups" />
193
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
194
+            </PATH_ELEMENT>
195
+          </PATH>
174 196
           <PATH>
175 197
             <PATH_ELEMENT>
176 198
               <option name="myItemId" />
@@ -185,6 +207,24 @@
185 207
               <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
186 208
             </PATH_ELEMENT>
187 209
           </PATH>
210
+          <PATH>
211
+            <PATH_ELEMENT>
212
+              <option name="myItemId" />
213
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
214
+            </PATH_ELEMENT>
215
+            <PATH_ELEMENT>
216
+              <option name="myItemId" value="luticate2 (4 projects)" />
217
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
218
+            </PATH_ELEMENT>
219
+            <PATH_ELEMENT>
220
+              <option name="myItemId" value="Luticate2.Utils" />
221
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
222
+            </PATH_ELEMENT>
223
+            <PATH_ELEMENT>
224
+              <option name="myItemId" value="DataAccess" />
225
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
226
+            </PATH_ELEMENT>
227
+          </PATH>
188 228
           <PATH>
189 229
             <PATH_ELEMENT>
190 230
               <option name="myItemId" />
@@ -298,12 +338,12 @@
298 338
       <workItem from="1480793601520" duration="8543000" />
299 339
       <workItem from="1480804561549" duration="52000" />
300 340
       <workItem from="1480804632897" duration="16000" />
301
-      <workItem from="1480804671711" duration="8419000" />
341
+      <workItem from="1480804671711" duration="17134000" />
302 342
     </task>
303 343
     <servers />
304 344
   </component>
305 345
   <component name="TimeTrackingManager">
306
-    <option name="totallyTimeSpent" value="17030000" />
346
+    <option name="totallyTimeSpent" value="25745000" />
307 347
   </component>
308 348
   <component name="TodoView">
309 349
     <todo-panel id="selected-file">
@@ -346,7 +386,7 @@
346 386
   </component>
347 387
   <component name="XDebuggerManager">
348 388
     <breakpoint-manager>
349
-      <option name="time" value="4" />
389
+      <option name="time" value="8" />
350 390
     </breakpoint-manager>
351 391
     <watches-manager />
352 392
   </component>
@@ -356,12 +396,15 @@
356 396
         <state relative-caret-position="1134">
357 397
           <caret line="63" column="38" selection-start-line="63" selection-start-column="38" selection-end-line="63" selection-end-column="38" />
358 398
           <folding>
359
-            <marker date="1480817312915" expanded="true" signature="285:4883" ph="{...}" />
360
-            <marker date="1480817312915" expanded="true" signature="327:4881" ph="{...}" />
361
-            <marker date="1480817312915" expanded="true" signature="379:1050" ph="{...}" />
362
-            <marker date="1480817312915" expanded="true" signature="1098:1787" ph="{...}" />
363
-            <marker date="1480817312915" expanded="true" signature="2446:3026" ph="{...}" />
364
-            <marker date="1480817312915" expanded="true" signature="3074:4875" ph="{...}" />
399
+            <marker date="1480827601219" expanded="true" signature="6:260" ph="..." />
400
+            <marker date="1480827601219" expanded="true" signature="288:6464" ph="{...}" />
401
+            <marker date="1480827601219" expanded="true" signature="330:6462" ph="{...}" />
402
+            <marker date="1480827601219" expanded="true" signature="382:1071" ph="{...}" />
403
+            <marker date="1480827601219" expanded="true" signature="1119:1803" ph="{...}" />
404
+            <marker date="1480827601219" expanded="true" signature="1851:2423" ph="{...}" />
405
+            <marker date="1480827601219" expanded="true" signature="2471:3043" ph="{...}" />
406
+            <marker date="1480827601219" expanded="true" signature="3091:5001" ph="{...}" />
407
+            <marker date="1480827601219" expanded="true" signature="5049:6456" ph="{...}" />
365 408
           </folding>
366 409
         </state>
367 410
       </provider>
@@ -390,22 +433,32 @@
390 433
         <state relative-caret-position="828">
391 434
           <caret line="46" column="35" selection-start-line="46" selection-start-column="35" selection-end-line="46" selection-end-column="35" />
392 435
           <folding>
393
-            <marker date="1480817160447" expanded="true" signature="6:161" ph="..." />
394
-            <marker date="1480817160447" expanded="true" signature="199:4916" ph="{...}" />
395
-            <marker date="1480817160447" expanded="true" signature="597:617" ph="{...}" />
396
-            <marker date="1480817160447" expanded="true" signature="920:1242" ph="{...}" />
397
-            <marker date="1480817160447" expanded="true" signature="1297:1553" ph="{...}" />
398
-            <marker date="1480817160447" expanded="true" signature="1874:2130" ph="{...}" />
399
-            <marker date="1480817160447" expanded="true" signature="2188:2270" ph="{...}" />
400
-            <marker date="1480817160447" expanded="true" signature="2357:2792" ph="{...}" />
401
-            <marker date="1480817160447" expanded="true" signature="2887:2958" ph="{...}" />
402
-            <marker date="1480817160447" expanded="true" signature="3018:3118" ph="{...}" />
403
-            <marker date="1480817160447" expanded="true" signature="3183:3253" ph="{...}" />
404
-            <marker date="1480817160447" expanded="true" signature="3311:3411" ph="{...}" />
405
-            <marker date="1480817160447" expanded="true" signature="3676:4205" ph="{...}" />
406
-            <marker date="1480817160447" expanded="true" signature="4022:4108" ph="{...}" />
407
-            <marker date="1480817160447" expanded="true" signature="4476:4590" ph="{...}" />
408
-            <marker date="1480817160447" expanded="true" signature="4807:4908" ph="{...}" />
436
+            <marker date="1480827601227" expanded="true" signature="6:161" ph="..." />
437
+            <marker date="1480827601227" expanded="true" signature="199:7045" ph="{...}" />
438
+            <marker date="1480827601227" expanded="true" signature="512:7043" ph="{...}" />
439
+            <marker date="1480827601227" expanded="false" signature="609:629" ph="{...}" />
440
+            <marker date="1480827601227" expanded="true" signature="942:1327" ph="{...}" />
441
+            <marker date="1480827601227" expanded="false" signature="1408:1509" ph="{...}" />
442
+            <marker date="1480827601227" expanded="false" signature="1593:1925" ph="{...}" />
443
+            <marker date="1480827601227" expanded="false" signature="1982:2078" ph="{...}" />
444
+            <marker date="1480827601227" expanded="false" signature="2157:2486" ph="{...}" />
445
+            <marker date="1480827601227" expanded="false" signature="2539:2633" ph="{...}" />
446
+            <marker date="1480827601227" expanded="false" signature="2717:2780" ph="{...}" />
447
+            <marker date="1480827601227" expanded="false" signature="2838:2933" ph="{...}" />
448
+            <marker date="1480827601227" expanded="false" signature="3020:3455" ph="{...}" />
449
+            <marker date="1480827601227" expanded="false" signature="3550:3621" ph="{...}" />
450
+            <marker date="1480827601227" expanded="false" signature="3679:3779" ph="{...}" />
451
+            <marker date="1480827601227" expanded="false" signature="3839:3907" ph="{...}" />
452
+            <marker date="1480827601227" expanded="false" signature="3965:4065" ph="{...}" />
453
+            <marker date="1480827601227" expanded="false" signature="4330:4859" ph="{...}" />
454
+            <marker date="1480827601227" expanded="true" signature="4676:4762" ph="{...}" />
455
+            <marker date="1480827601227" expanded="false" signature="5064:5178" ph="{...}" />
456
+            <marker date="1480827601227" expanded="false" signature="5341:5428" ph="{...}" />
457
+            <marker date="1480827601227" expanded="false" signature="5577:6139" ph="{...}" />
458
+            <marker date="1480827601227" expanded="false" signature="6253:6460" ph="{...}" />
459
+            <marker date="1480827601227" expanded="false" signature="6568:6649" ph="{...}" />
460
+            <marker date="1480827601227" expanded="false" signature="6757:6838" ph="{...}" />
461
+            <marker date="1480827601227" expanded="false" signature="6948:7037" ph="{...}" />
409 462
           </folding>
410 463
         </state>
411 464
       </provider>
@@ -415,12 +468,15 @@
415 468
         <state relative-caret-position="1134">
416 469
           <caret line="63" column="38" selection-start-line="63" selection-start-column="38" selection-end-line="63" selection-end-column="38" />
417 470
           <folding>
418
-            <marker date="1480817312915" expanded="true" signature="285:4883" ph="{...}" />
419
-            <marker date="1480817312915" expanded="true" signature="327:4881" ph="{...}" />
420
-            <marker date="1480817312915" expanded="true" signature="379:1050" ph="{...}" />
421
-            <marker date="1480817312915" expanded="true" signature="1098:1787" ph="{...}" />
422
-            <marker date="1480817312915" expanded="true" signature="2446:3026" ph="{...}" />
423
-            <marker date="1480817312915" expanded="true" signature="3074:4875" ph="{...}" />
471
+            <marker date="1480827601219" expanded="true" signature="6:260" ph="..." />
472
+            <marker date="1480827601219" expanded="true" signature="288:6464" ph="{...}" />
473
+            <marker date="1480827601219" expanded="true" signature="330:6462" ph="{...}" />
474
+            <marker date="1480827601219" expanded="true" signature="382:1071" ph="{...}" />
475
+            <marker date="1480827601219" expanded="true" signature="1119:1803" ph="{...}" />
476
+            <marker date="1480827601219" expanded="true" signature="1851:2423" ph="{...}" />
477
+            <marker date="1480827601219" expanded="true" signature="2471:3043" ph="{...}" />
478
+            <marker date="1480827601219" expanded="true" signature="3091:5001" ph="{...}" />
479
+            <marker date="1480827601219" expanded="true" signature="5049:6456" ph="{...}" />
424 480
           </folding>
425 481
         </state>
426 482
       </provider>
@@ -449,22 +505,32 @@
449 505
         <state relative-caret-position="828">
450 506
           <caret line="46" column="35" selection-start-line="46" selection-start-column="35" selection-end-line="46" selection-end-column="35" />
451 507
           <folding>
452
-            <marker date="1480817160447" expanded="true" signature="6:161" ph="..." />
453
-            <marker date="1480817160447" expanded="true" signature="199:4916" ph="{...}" />
454
-            <marker date="1480817160447" expanded="true" signature="597:617" ph="{...}" />
455
-            <marker date="1480817160447" expanded="true" signature="920:1242" ph="{...}" />
456
-            <marker date="1480817160447" expanded="true" signature="1297:1553" ph="{...}" />
457
-            <marker date="1480817160447" expanded="true" signature="1874:2130" ph="{...}" />
458
-            <marker date="1480817160447" expanded="true" signature="2188:2270" ph="{...}" />
459
-            <marker date="1480817160447" expanded="true" signature="2357:2792" ph="{...}" />
460
-            <marker date="1480817160447" expanded="true" signature="2887:2958" ph="{...}" />
461
-            <marker date="1480817160447" expanded="true" signature="3018:3118" ph="{...}" />
462
-            <marker date="1480817160447" expanded="true" signature="3183:3253" ph="{...}" />
463
-            <marker date="1480817160447" expanded="true" signature="3311:3411" ph="{...}" />
464
-            <marker date="1480817160447" expanded="true" signature="3676:4205" ph="{...}" />
465
-            <marker date="1480817160447" expanded="true" signature="4022:4108" ph="{...}" />
466
-            <marker date="1480817160447" expanded="true" signature="4476:4590" ph="{...}" />
467
-            <marker date="1480817160447" expanded="true" signature="4807:4908" ph="{...}" />
508
+            <marker date="1480827601227" expanded="true" signature="6:161" ph="..." />
509
+            <marker date="1480827601227" expanded="true" signature="199:7045" ph="{...}" />
510
+            <marker date="1480827601227" expanded="true" signature="512:7043" ph="{...}" />
511
+            <marker date="1480827601227" expanded="false" signature="609:629" ph="{...}" />
512
+            <marker date="1480827601227" expanded="true" signature="942:1327" ph="{...}" />
513
+            <marker date="1480827601227" expanded="false" signature="1408:1509" ph="{...}" />
514
+            <marker date="1480827601227" expanded="false" signature="1593:1925" ph="{...}" />
515
+            <marker date="1480827601227" expanded="false" signature="1982:2078" ph="{...}" />
516
+            <marker date="1480827601227" expanded="false" signature="2157:2486" ph="{...}" />
517
+            <marker date="1480827601227" expanded="false" signature="2539:2633" ph="{...}" />
518
+            <marker date="1480827601227" expanded="false" signature="2717:2780" ph="{...}" />
519
+            <marker date="1480827601227" expanded="false" signature="2838:2933" ph="{...}" />
520
+            <marker date="1480827601227" expanded="false" signature="3020:3455" ph="{...}" />
521
+            <marker date="1480827601227" expanded="false" signature="3550:3621" ph="{...}" />
522
+            <marker date="1480827601227" expanded="false" signature="3679:3779" ph="{...}" />
523
+            <marker date="1480827601227" expanded="false" signature="3839:3907" ph="{...}" />
524
+            <marker date="1480827601227" expanded="false" signature="3965:4065" ph="{...}" />
525
+            <marker date="1480827601227" expanded="false" signature="4330:4859" ph="{...}" />
526
+            <marker date="1480827601227" expanded="true" signature="4676:4762" ph="{...}" />
527
+            <marker date="1480827601227" expanded="false" signature="5064:5178" ph="{...}" />
528
+            <marker date="1480827601227" expanded="false" signature="5341:5428" ph="{...}" />
529
+            <marker date="1480827601227" expanded="false" signature="5577:6139" ph="{...}" />
530
+            <marker date="1480827601227" expanded="false" signature="6253:6460" ph="{...}" />
531
+            <marker date="1480827601227" expanded="false" signature="6568:6649" ph="{...}" />
532
+            <marker date="1480827601227" expanded="false" signature="6757:6838" ph="{...}" />
533
+            <marker date="1480827601227" expanded="false" signature="6948:7037" ph="{...}" />
468 534
           </folding>
469 535
         </state>
470 536
       </provider>
@@ -519,13 +585,6 @@
519 585
         </state>
520 586
       </provider>
521 587
     </entry>
522
-    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuResult.cs">
523
-      <provider selected="true" editor-type-id="text-editor">
524
-        <state relative-caret-position="-11">
525
-          <caret line="50" column="14" selection-start-line="50" selection-start-column="14" selection-end-line="50" selection-end-column="14" />
526
-        </state>
527
-      </provider>
528
-    </entry>
529 588
     <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json">
530 589
       <provider selected="true" editor-type-id="text-editor">
531 590
         <state relative-caret-position="0">
@@ -700,42 +759,79 @@
700 759
         </state>
701 760
       </provider>
702 761
     </entry>
703
-    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
762
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuResult.cs">
704 763
       <provider selected="true" editor-type-id="text-editor">
705
-        <state relative-caret-position="585">
706
-          <caret line="134" column="1" selection-start-line="134" selection-start-column="1" selection-end-line="134" selection-end-column="1" />
764
+        <state relative-caret-position="704">
765
+          <caret line="78" column="61" selection-start-line="78" selection-start-column="61" selection-end-line="78" selection-end-column="61" />
707 766
           <folding>
708
-            <marker date="1480817160447" expanded="true" signature="6:161" ph="..." />
709
-            <marker date="1480817160447" expanded="true" signature="199:4916" ph="{...}" />
710
-            <marker date="1480817160447" expanded="true" signature="597:617" ph="{...}" />
711
-            <marker date="1480817160447" expanded="true" signature="920:1242" ph="{...}" />
712
-            <marker date="1480817160447" expanded="true" signature="1297:1553" ph="{...}" />
713
-            <marker date="1480817160447" expanded="true" signature="1874:2130" ph="{...}" />
714
-            <marker date="1480817160447" expanded="true" signature="2188:2270" ph="{...}" />
715
-            <marker date="1480817160447" expanded="true" signature="2357:2792" ph="{...}" />
716
-            <marker date="1480817160447" expanded="true" signature="2887:2958" ph="{...}" />
717
-            <marker date="1480817160447" expanded="true" signature="3018:3118" ph="{...}" />
718
-            <marker date="1480817160447" expanded="true" signature="3183:3253" ph="{...}" />
719
-            <marker date="1480817160447" expanded="true" signature="3311:3411" ph="{...}" />
720
-            <marker date="1480817160447" expanded="true" signature="3676:4205" ph="{...}" />
721
-            <marker date="1480817160447" expanded="true" signature="4022:4108" ph="{...}" />
722
-            <marker date="1480817160447" expanded="true" signature="4476:4590" ph="{...}" />
723
-            <marker date="1480817160447" expanded="true" signature="4807:4908" ph="{...}" />
767
+            <marker date="1480827276103" expanded="true" signature="44:2573" ph="{...}" />
768
+            <marker date="1480827276103" expanded="true" signature="75:2571" ph="{...}" />
769
+            <marker date="1480827276103" expanded="true" signature="454:474" ph="{...}" />
770
+            <marker date="1480827276103" expanded="true" signature="520:732" ph="{...}" />
771
+            <marker date="1480827276103" expanded="true" signature="578:721" ph="{...}" />
772
+            <marker date="1480827276103" expanded="true" signature="842:1150" ph="{...}" />
773
+            <marker date="1480827276103" expanded="true" signature="900:1139" ph="{...}" />
774
+            <marker date="1480827276103" expanded="true" signature="1250:1548" ph="{...}" />
775
+            <marker date="1480827276103" expanded="true" signature="1308:1537" ph="{...}" />
776
+            <marker date="1480827276103" expanded="true" signature="1613:1935" ph="{...}" />
777
+            <marker date="1480827276103" expanded="true" signature="1671:1924" ph="{...}" />
778
+            <marker date="1480827276103" expanded="true" signature="1973:2038" ph="{...}" />
779
+            <marker date="1480827276103" expanded="true" signature="2095:2450" ph="{...}" />
780
+            <marker date="1480827276103" expanded="true" signature="2154:2439" ph="{...}" />
781
+            <marker date="1480827276103" expanded="true" signature="2513:2565" ph="{...}" />
724 782
           </folding>
725 783
         </state>
726 784
       </provider>
727 785
     </entry>
728 786
     <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
729 787
       <provider selected="true" editor-type-id="text-editor">
730
-        <state relative-caret-position="513">
731
-          <caret line="122" column="64" selection-start-line="122" selection-start-column="64" selection-end-line="122" selection-end-column="64" />
788
+        <state relative-caret-position="297">
789
+          <caret line="93" column="37" selection-start-line="93" selection-start-column="37" selection-end-line="93" selection-end-column="37" />
790
+          <folding>
791
+            <marker date="1480827601219" expanded="true" signature="6:260" ph="..." />
792
+            <marker date="1480827601219" expanded="true" signature="288:6464" ph="{...}" />
793
+            <marker date="1480827601219" expanded="true" signature="330:6462" ph="{...}" />
794
+            <marker date="1480827601219" expanded="true" signature="382:1071" ph="{...}" />
795
+            <marker date="1480827601219" expanded="true" signature="1119:1803" ph="{...}" />
796
+            <marker date="1480827601219" expanded="true" signature="1851:2423" ph="{...}" />
797
+            <marker date="1480827601219" expanded="true" signature="2471:3043" ph="{...}" />
798
+            <marker date="1480827601219" expanded="true" signature="3091:5001" ph="{...}" />
799
+            <marker date="1480827601219" expanded="true" signature="5049:6456" ph="{...}" />
800
+          </folding>
801
+        </state>
802
+      </provider>
803
+    </entry>
804
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
805
+      <provider selected="true" editor-type-id="text-editor">
806
+        <state relative-caret-position="341">
807
+          <caret line="37" column="15" selection-start-line="37" selection-start-column="15" selection-end-line="37" selection-end-column="15" />
732 808
           <folding>
733
-            <marker date="1480817312915" expanded="true" signature="285:4883" ph="{...}" />
734
-            <marker date="1480817312915" expanded="true" signature="327:4881" ph="{...}" />
735
-            <marker date="1480817312915" expanded="true" signature="379:1050" ph="{...}" />
736
-            <marker date="1480817312915" expanded="true" signature="1098:1787" ph="{...}" />
737
-            <marker date="1480817312915" expanded="true" signature="2446:3026" ph="{...}" />
738
-            <marker date="1480817312915" expanded="true" signature="3074:4875" ph="{...}" />
809
+            <marker date="1480827601227" expanded="true" signature="6:161" ph="..." />
810
+            <marker date="1480827601227" expanded="true" signature="199:7045" ph="{...}" />
811
+            <marker date="1480827601227" expanded="true" signature="512:7043" ph="{...}" />
812
+            <marker date="1480827601227" expanded="false" signature="609:629" ph="{...}" />
813
+            <marker date="1480827601227" expanded="true" signature="942:1327" ph="{...}" />
814
+            <marker date="1480827601227" expanded="false" signature="1408:1509" ph="{...}" />
815
+            <marker date="1480827601227" expanded="false" signature="1593:1925" ph="{...}" />
816
+            <marker date="1480827601227" expanded="false" signature="1982:2078" ph="{...}" />
817
+            <marker date="1480827601227" expanded="false" signature="2157:2486" ph="{...}" />
818
+            <marker date="1480827601227" expanded="false" signature="2539:2633" ph="{...}" />
819
+            <marker date="1480827601227" expanded="false" signature="2717:2780" ph="{...}" />
820
+            <marker date="1480827601227" expanded="false" signature="2838:2933" ph="{...}" />
821
+            <marker date="1480827601227" expanded="false" signature="3020:3455" ph="{...}" />
822
+            <marker date="1480827601227" expanded="false" signature="3550:3621" ph="{...}" />
823
+            <marker date="1480827601227" expanded="false" signature="3679:3779" ph="{...}" />
824
+            <marker date="1480827601227" expanded="false" signature="3839:3907" ph="{...}" />
825
+            <marker date="1480827601227" expanded="false" signature="3965:4065" ph="{...}" />
826
+            <marker date="1480827601227" expanded="false" signature="4330:4859" ph="{...}" />
827
+            <marker date="1480827601227" expanded="true" signature="4676:4762" ph="{...}" />
828
+            <marker date="1480827601227" expanded="false" signature="5064:5178" ph="{...}" />
829
+            <marker date="1480827601227" expanded="false" signature="5341:5428" ph="{...}" />
830
+            <marker date="1480827601227" expanded="false" signature="5577:6139" ph="{...}" />
831
+            <marker date="1480827601227" expanded="false" signature="6253:6460" ph="{...}" />
832
+            <marker date="1480827601227" expanded="false" signature="6568:6649" ph="{...}" />
833
+            <marker date="1480827601227" expanded="false" signature="6757:6838" ph="{...}" />
834
+            <marker date="1480827601227" expanded="false" signature="6948:7037" ph="{...}" />
739 835
           </folding>
740 836
         </state>
741 837
       </provider>

+ 80
- 26
Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs View File

@@ -7,7 +7,8 @@ using Microsoft.EntityFrameworkCore;
7 7
 
8 8
 namespace Luticate2.Utils.DataAccess
9 9
 {
10
-    public abstract class LuEfCrudDataAccess<TModel, TDboCreate, TDboRead, TDboUpdate, TDbContext> : LuEfDataAccess<TModel, TDbContext>
10
+    public abstract class LuEfCrudDataAccess<TModel, TDboCreate, TDboRead, TDboUpdate, TDbContext> :
11
+            LuEfDataAccess<TModel, TDbContext>
11 12
         where TModel : class
12 13
         where TDboCreate : class
13 14
         where TDboRead : class
@@ -24,47 +25,60 @@ namespace Luticate2.Utils.DataAccess
24 25
 
25 26
         protected abstract TDboRead GetDboFromModel(TModel model);
26 27
 
27
-        public LuResult<T> Add<T>(TDboCreate obj, Expression<Func<TModel, T>> returnFunc)
28
+        public LuResult<T> Add<T>(IEnumerable<TDboCreate> objs, Func<IEnumerable<TDboRead>, T> returnFunc)
28 29
         {
29 30
             return Execute(() =>
30 31
             {
31
-                var model = GetModelFromTCreate(obj);
32
-                Table.Add(model);
32
+                var models = objs.Select(GetModelFromTCreate).ToList();
33
+                Table.AddRange(models);
33 34
                 Db.SaveChanges();
34
-                var res = returnFunc.Compile().DynamicInvoke(model);
35
-                return LuResult<T>.Ok((T) res);
35
+                var dbos = models.Select(GetDboFromModel).ToList();
36
+                var res = returnFunc(dbos);
37
+                return LuResult<T>.Ok(res);
36 38
             });
37 39
         }
38 40
 
39
-        public LuResult<Guid> AddGuid(TDboCreate obj)
41
+        public LuResult<T> Add<T>(TDboCreate obj, Func<TDboRead, T> returnFunc)
40 42
         {
41
-            var param = Expression.Parameter(typeof(TModel), "x");
42
-            var exp = Expression.Property(param, "id");
43
-            var lambda = Expression.Lambda<Func<TModel, Guid>>(exp, param);
44
-            return Add(obj, lambda);
43
+            return Add(new List<TDboCreate> {obj}, list => returnFunc(list.First()));
45 44
         }
46 45
 
47
-        public LuResult<string> AddGuidStr(TDboCreate obj)
46
+        public LuResult<IEnumerable<string>> AddGuid(IEnumerable<TDboCreate> objs)
48 47
         {
49
-            var res = AddGuid(obj);
50
-            if (!res)
51
-            {
52
-                return res.To<string>();
53
-            }
54
-            return LuResult<string>.Ok(res.Data.ToString());
48
+            var param = Expression.Parameter(typeof(TDboRead), "x");
49
+            var exp = Expression.Property(param, "Id");
50
+            var lambda = Expression.Lambda<Func<TDboRead, string>>(exp, param);
51
+            var func = lambda.Compile();
52
+            return Add(objs, list => list.Select(func));
53
+        }
54
+
55
+        public LuResult<string> AddGuid(TDboCreate obj)
56
+        {
57
+            return AddGuid(new List<TDboCreate> {obj}).To(list => list.First());
58
+        }
59
+
60
+        public LuResult<IEnumerable<long>> AddId(IEnumerable<TDboCreate> obj)
61
+        {
62
+            var param = Expression.Parameter(typeof(TDboRead), "x");
63
+            var exp = Expression.Property(param, "Id");
64
+            var lambda = Expression.Lambda<Func<TDboRead, long>>(exp, param);
65
+            var func = lambda.Compile();
66
+            return Add(obj, list => list.Select(func));
55 67
         }
56 68
 
57 69
         public LuResult<long> AddId(TDboCreate obj)
58 70
         {
59
-            var param = Expression.Parameter(typeof(TModel), "x");
60
-            var exp = Expression.Property(param, "id");
61
-            var lambda = Expression.Lambda<Func<TModel, long>>(exp, param);
62
-            return Add(obj, lambda);
71
+            return AddId(new List<TDboCreate> {obj}).To(list => list.First());
72
+        }
73
+
74
+        public LuResult<IEnumerable<TDboRead>> AddDbo(IEnumerable<TDboCreate> obj)
75
+        {
76
+            return Add(obj, read => read);
63 77
         }
64 78
 
65 79
         public LuResult<TDboRead> AddDbo(TDboCreate obj)
66 80
         {
67
-            return Add(obj, model => GetDboFromModel(model));
81
+            return AddDbo(new List<TDboCreate> {obj}).To(list => list.First());
68 82
         }
69 83
 
70 84
         public LuResult<TDboRead> GetSingle(Expression<Func<TModel, bool>> predicate)
@@ -86,14 +100,14 @@ namespace Luticate2.Utils.DataAccess
86 100
             return GetSingle(GetExpression(keys));
87 101
         }
88 102
 
89
-        public LuResult<TDboRead> GetSingleByGuid(Guid id)
103
+        public LuResult<TDboRead> GetSingleById(Guid id)
90 104
         {
91 105
             return GetSingleByKeys(new KeyValuePair<string, object>("id", id));
92 106
         }
93 107
 
94
-        public LuResult<TDboRead> GetSingleByGuidStr(string id)
108
+        public LuResult<TDboRead> GetSingleById(string id)
95 109
         {
96
-            return GetSingleByGuid(new Guid(id));
110
+            return GetSingleById(new Guid(id));
97 111
         }
98 112
 
99 113
         public LuResult<TDboRead> GetSingleById(long id)
@@ -130,5 +144,45 @@ namespace Luticate2.Utils.DataAccess
130 144
         {
131 145
             return GetMultiple(orderBy, x => true, page, perPage);
132 146
         }
147
+
148
+        public LuResult<T> Edit<T>(Expression<Func<TModel, bool>> predicate, Action<TModel> update,
149
+            Func<List<TDboRead>, T> returnFunc)
150
+        {
151
+            return Execute(() =>
152
+            {
153
+                var models = Table.Where(predicate);
154
+                var editedDbos = new List<TDboRead>();
155
+                foreach (var model in models)
156
+                {
157
+                    update(model);
158
+                    editedDbos.Add(GetDboFromModel(model));
159
+                    Db.Entry(model).State = EntityState.Modified;
160
+                }
161
+                Db.SaveChanges();
162
+                var res = returnFunc(editedDbos);
163
+                return LuResult<T>.Ok(res);
164
+            });
165
+        }
166
+
167
+        public LuResult<T> EditSingleByPkId<T, TId>(TId id, Action<TModel> update, Func<TDboRead, T> returnFunc)
168
+        {
169
+            return Edit(GetExpression(new KeyValuePair<string, object>("id", id)), update,
170
+                list => list.Count == 0 ? returnFunc(default(TDboRead)) : returnFunc(list[0]));
171
+        }
172
+
173
+        public LuResult<T> EditSingleById<T>(long id, Action<TModel> update, Func<TDboRead, T> returnFunc)
174
+        {
175
+            return EditSingleByPkId(id, update, returnFunc);
176
+        }
177
+
178
+        public LuResult<T> EditSingleById<T>(Guid id, Action<TModel> update, Func<TDboRead, T> returnFunc)
179
+        {
180
+            return EditSingleByPkId(id, update, returnFunc);
181
+        }
182
+
183
+        public LuResult<T> EditSingleById<T>(string id, Action<TModel> update, Func<TDboRead, T> returnFunc)
184
+        {
185
+            return EditSingleById(new Guid(id), update, returnFunc);
186
+        }
133 187
     }
134 188
 }

+ 13
- 0
Luticate2.Utils/Dbo/LuResult.cs View File

@@ -72,6 +72,19 @@ namespace Luticate2.Utils.Dbo
72 72
             return LuResult<T2>.Error(this);
73 73
         }
74 74
 
75
+        public LuResult<T2> To<T2>(Func<T, T2> convert)
76
+        {
77
+            return new LuResult<T2>
78
+            {
79
+                Data = Success ? convert(Data) : default(T2),
80
+                Status = Status,
81
+                PublicDetails = PublicDetails,
82
+                PrivateDetails = PrivateDetails,
83
+                StackTrace = StackTrace,
84
+                Exception = Exception
85
+            };
86
+        }
87
+
75 88
         public static implicit operator bool(LuResult<T> res)
76 89
         {
77 90
             return res.Success;

+ 43
- 12
Test/Auth/Groups/LuGroupsDataAccessTest.cs View File

@@ -1,6 +1,6 @@
1 1
 using System;
2
+using System.Collections.Generic;
2 3
 using System.Linq;
3
-using System.Linq.Expressions;
4 4
 using Luticate2.Auth.DataAccess;
5 5
 using Luticate2.Auth.DataAccess.Models;
6 6
 using Luticate2.Auth.Dbo.Groups;
@@ -27,7 +27,7 @@ namespace Test.Auth.Groups
27 27
             Assert.Equal(new Guid().ToString(), res.Data.Id);
28 28
             Assert.Equal("Test.", res.Data.Name);
29 29
 
30
-            mockSet.Verify(m => m.Add(It.IsAny<lu_groups>()), Times.Once());
30
+            mockSet.Verify(m => m.AddRange(It.IsAny<IEnumerable<lu_groups>>()), Times.Once());
31 31
             mockContext.Verify(m => m.SaveChanges(), Times.Once());
32 32
         }
33 33
 
@@ -43,7 +43,7 @@ namespace Test.Auth.Groups
43 43
                 Assert.NotEqual(new Guid().ToString(), res.Data.Id);
44 44
                 Assert.Equal(name, res.Data.Name);
45 45
 
46
-                var get = service.GetSingleByGuidStr(res.Data.Id);
46
+                var get = service.GetSingleById(res.Data.Id);
47 47
                 Assert.Equal(LuStatus.Success, get.Status);
48 48
                 Assert.Equal(name, get.Data.Name);
49 49
                 Assert.Equal(res.Data.Id, get.Data.Id);
@@ -59,9 +59,9 @@ namespace Test.Auth.Groups
59 59
                 var service = new LuGroupsDataAccess(context);
60 60
                 var res = service.AddGuid(new LuGroupsAddDbo {Name = name});
61 61
                 Assert.Equal(LuStatus.Success, res.Status);
62
-                Assert.NotEqual(new Guid(), res.Data);
62
+                Assert.NotEqual(new Guid().ToString(), res.Data);
63 63
 
64
-                var get = service.GetSingleByGuid(res.Data);
64
+                var get = service.GetSingleById(res.Data);
65 65
                 Assert.Equal(LuStatus.Success, get.Status);
66 66
                 Assert.Equal(name, get.Data.Name);
67 67
             });
@@ -74,11 +74,11 @@ namespace Test.Auth.Groups
74 74
             {
75 75
                 const string name = "Test.";
76 76
                 var service = new LuGroupsDataAccess(context);
77
-                var res = service.AddGuidStr(new LuGroupsAddDbo {Name = name});
77
+                var res = service.AddGuid(new LuGroupsAddDbo {Name = name});
78 78
                 Assert.Equal(LuStatus.Success, res.Status);
79 79
                 Assert.NotEqual(new Guid().ToString(), res.Data);
80 80
 
81
-                var get = service.GetSingleByGuidStr(res.Data);
81
+                var get = service.GetSingleById(res.Data);
82 82
                 Assert.Equal(LuStatus.Success, get.Status);
83 83
                 Assert.Equal(name, get.Data.Name);
84 84
             });
@@ -89,13 +89,13 @@ namespace Test.Auth.Groups
89 89
         {
90 90
             Tests.TestRealDb(context =>
91 91
             {
92
-                string[] names = {"001-Test.", "010-Test.", "030-Test.", "020-Test.", "000-Test."};
92
+                var names = new List<string>{"001-Test.", "010-Test.", "030-Test.", "020-Test.", "000-Test."};
93 93
                 var service = new LuGroupsDataAccess(context);
94
-                foreach (var name in names)
94
+                var res = service.AddGuid(names.Select(s => new LuGroupsAddDbo {Name = s}).ToList());
95
+                Assert.Equal(LuStatus.Success, res.Status);
96
+                foreach (var id in res.Data)
95 97
                 {
96
-                    var res = service.AddGuidStr(new LuGroupsAddDbo {Name = name});
97
-                    Assert.Equal(LuStatus.Success, res.Status);
98
-                    Assert.NotEqual(new Guid().ToString(), res.Data);
98
+                    Assert.NotEqual(new Guid().ToString(), id);
99 99
                 }
100 100
 
101 101
                 var get = service.GetMultiple(groups => groups.name, 0, 2);
@@ -123,5 +123,36 @@ namespace Test.Auth.Groups
123 123
                 Assert.Equal("010-Test.", get.Data.Data[0].Name);
124 124
             });
125 125
         }
126
+
127
+        [Fact]
128
+        public void TestReal5()
129
+        {
130
+            Tests.TestRealDb(context =>
131
+            {
132
+                string[] names = {"001-Test.", "010-Test.", "030-Test.", "020-Test.", "000-Test."};
133
+                var service = new LuGroupsDataAccess(context);
134
+                var ids = new List<string>();
135
+                foreach (var name in names)
136
+                {
137
+                    var res = service.AddGuid(new LuGroupsAddDbo {Name = name});
138
+                    Assert.Equal(LuStatus.Success, res.Status);
139
+                    Assert.NotEqual(new Guid().ToString(), res.Data);
140
+                    ids.Add(res.Data);
141
+                }
142
+
143
+                var edit = service.Edit(groups => groups.name.Contains("0-"),
144
+                    groups => groups.name = groups.name + "_Edited", dbos => dbos);
145
+                Assert.Equal(LuStatus.Success, edit.Status);
146
+                Assert.Equal(4, edit.Data.Count);
147
+
148
+                var edit2 = service.EditSingleById(ids[0], groups => groups.name = groups.name + "_Edited", dbo => dbo);
149
+                Assert.Equal(LuStatus.Success, edit2.Status);
150
+
151
+                var get = service.GetMultiple(groups => groups.name, groups => groups.name.EndsWith("_Edited"), 0, names.Length);
152
+                Assert.Equal(LuStatus.Success, get.Status);
153
+                Assert.Equal(names.Length, get.Data.Count);
154
+                Assert.Equal(names.Length, get.Data.Data.Count);
155
+            });
156
+        }
126 157
     }
127 158
 }

Loading…
Cancel
Save