Pārlūkot izejas kodu

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

tags/v0.1.0
Robin Thoni 7 gadus atpakaļ
vecāks
revīzija
a0ffce9158

+ 220
- 124
.idea/.idea.luticate2/.idea/workspace.xml Parādīt failu

29
   </component>
29
   </component>
30
   <component name="FileEditorManager">
30
   <component name="FileEditorManager">
31
     <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
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
         <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
33
         <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
34
           <provider selected="true" editor-type-id="text-editor">
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
               <folding>
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
               </folding>
47
               </folding>
45
             </state>
48
             </state>
46
           </provider>
49
           </provider>
47
         </entry>
50
         </entry>
48
       </file>
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
         <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
53
         <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
51
           <provider selected="true" editor-type-id="text-editor">
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
               <folding>
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
               </folding>
84
               </folding>
85
             </state>
85
             </state>
86
           </provider>
86
           </provider>
101
         <option value="$APPLICATION_CONFIG_DIR$/consoles/db/41647544-920e-40a8-9060-e11c61aaa20e/console.sql" />
101
         <option value="$APPLICATION_CONFIG_DIR$/consoles/db/41647544-920e-40a8-9060-e11c61aaa20e/console.sql" />
102
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json" />
102
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json" />
103
         <option value="$PROJECT_DIR$/../../Test/Tests.cs" />
103
         <option value="$PROJECT_DIR$/../../Test/Tests.cs" />
104
-        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuResult.cs" />
105
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/Models/lu_groups.cs" />
104
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/Models/lu_groups.cs" />
106
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig" />
105
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig" />
107
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs" />
106
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs" />
108
         <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs" />
107
         <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs" />
109
         <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuPaginatedDbo.cs" />
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
         <option value="$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs" />
110
         <option value="$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs" />
111
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs" />
112
       </list>
112
       </list>
113
     </option>
113
     </option>
114
   </component>
114
   </component>
171
               <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
171
               <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
172
             </PATH_ELEMENT>
172
             </PATH_ELEMENT>
173
           </PATH>
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
           <PATH>
196
           <PATH>
175
             <PATH_ELEMENT>
197
             <PATH_ELEMENT>
176
               <option name="myItemId" />
198
               <option name="myItemId" />
185
               <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
207
               <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
186
             </PATH_ELEMENT>
208
             </PATH_ELEMENT>
187
           </PATH>
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
           <PATH>
228
           <PATH>
189
             <PATH_ELEMENT>
229
             <PATH_ELEMENT>
190
               <option name="myItemId" />
230
               <option name="myItemId" />
298
       <workItem from="1480793601520" duration="8543000" />
338
       <workItem from="1480793601520" duration="8543000" />
299
       <workItem from="1480804561549" duration="52000" />
339
       <workItem from="1480804561549" duration="52000" />
300
       <workItem from="1480804632897" duration="16000" />
340
       <workItem from="1480804632897" duration="16000" />
301
-      <workItem from="1480804671711" duration="8419000" />
341
+      <workItem from="1480804671711" duration="17134000" />
302
     </task>
342
     </task>
303
     <servers />
343
     <servers />
304
   </component>
344
   </component>
305
   <component name="TimeTrackingManager">
345
   <component name="TimeTrackingManager">
306
-    <option name="totallyTimeSpent" value="17030000" />
346
+    <option name="totallyTimeSpent" value="25745000" />
307
   </component>
347
   </component>
308
   <component name="TodoView">
348
   <component name="TodoView">
309
     <todo-panel id="selected-file">
349
     <todo-panel id="selected-file">
346
   </component>
386
   </component>
347
   <component name="XDebuggerManager">
387
   <component name="XDebuggerManager">
348
     <breakpoint-manager>
388
     <breakpoint-manager>
349
-      <option name="time" value="4" />
389
+      <option name="time" value="8" />
350
     </breakpoint-manager>
390
     </breakpoint-manager>
351
     <watches-manager />
391
     <watches-manager />
352
   </component>
392
   </component>
356
         <state relative-caret-position="1134">
396
         <state relative-caret-position="1134">
357
           <caret line="63" column="38" selection-start-line="63" selection-start-column="38" selection-end-line="63" selection-end-column="38" />
397
           <caret line="63" column="38" selection-start-line="63" selection-start-column="38" selection-end-line="63" selection-end-column="38" />
358
           <folding>
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
           </folding>
408
           </folding>
366
         </state>
409
         </state>
367
       </provider>
410
       </provider>
390
         <state relative-caret-position="828">
433
         <state relative-caret-position="828">
391
           <caret line="46" column="35" selection-start-line="46" selection-start-column="35" selection-end-line="46" selection-end-column="35" />
434
           <caret line="46" column="35" selection-start-line="46" selection-start-column="35" selection-end-line="46" selection-end-column="35" />
392
           <folding>
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
           </folding>
462
           </folding>
410
         </state>
463
         </state>
411
       </provider>
464
       </provider>
415
         <state relative-caret-position="1134">
468
         <state relative-caret-position="1134">
416
           <caret line="63" column="38" selection-start-line="63" selection-start-column="38" selection-end-line="63" selection-end-column="38" />
469
           <caret line="63" column="38" selection-start-line="63" selection-start-column="38" selection-end-line="63" selection-end-column="38" />
417
           <folding>
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
           </folding>
480
           </folding>
425
         </state>
481
         </state>
426
       </provider>
482
       </provider>
449
         <state relative-caret-position="828">
505
         <state relative-caret-position="828">
450
           <caret line="46" column="35" selection-start-line="46" selection-start-column="35" selection-end-line="46" selection-end-column="35" />
506
           <caret line="46" column="35" selection-start-line="46" selection-start-column="35" selection-end-line="46" selection-end-column="35" />
451
           <folding>
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
           </folding>
534
           </folding>
469
         </state>
535
         </state>
470
       </provider>
536
       </provider>
519
         </state>
585
         </state>
520
       </provider>
586
       </provider>
521
     </entry>
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
     <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json">
588
     <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json">
530
       <provider selected="true" editor-type-id="text-editor">
589
       <provider selected="true" editor-type-id="text-editor">
531
         <state relative-caret-position="0">
590
         <state relative-caret-position="0">
700
         </state>
759
         </state>
701
       </provider>
760
       </provider>
702
     </entry>
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
       <provider selected="true" editor-type-id="text-editor">
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
           <folding>
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
           </folding>
782
           </folding>
725
         </state>
783
         </state>
726
       </provider>
784
       </provider>
727
     </entry>
785
     </entry>
728
     <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
786
     <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
729
       <provider selected="true" editor-type-id="text-editor">
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
           <folding>
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
           </folding>
835
           </folding>
740
         </state>
836
         </state>
741
       </provider>
837
       </provider>

+ 80
- 26
Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs Parādīt failu

7
 
7
 
8
 namespace Luticate2.Utils.DataAccess
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
         where TModel : class
12
         where TModel : class
12
         where TDboCreate : class
13
         where TDboCreate : class
13
         where TDboRead : class
14
         where TDboRead : class
24
 
25
 
25
         protected abstract TDboRead GetDboFromModel(TModel model);
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
             return Execute(() =>
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
                 Db.SaveChanges();
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
         public LuResult<long> AddId(TDboCreate obj)
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
         public LuResult<TDboRead> AddDbo(TDboCreate obj)
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
         public LuResult<TDboRead> GetSingle(Expression<Func<TModel, bool>> predicate)
84
         public LuResult<TDboRead> GetSingle(Expression<Func<TModel, bool>> predicate)
86
             return GetSingle(GetExpression(keys));
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
             return GetSingleByKeys(new KeyValuePair<string, object>("id", id));
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
         public LuResult<TDboRead> GetSingleById(long id)
113
         public LuResult<TDboRead> GetSingleById(long id)
130
         {
144
         {
131
             return GetMultiple(orderBy, x => true, page, perPage);
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 Parādīt failu

72
             return LuResult<T2>.Error(this);
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
         public static implicit operator bool(LuResult<T> res)
88
         public static implicit operator bool(LuResult<T> res)
76
         {
89
         {
77
             return res.Success;
90
             return res.Success;

+ 43
- 12
Test/Auth/Groups/LuGroupsDataAccessTest.cs Parādīt failu

1
 using System;
1
 using System;
2
+using System.Collections.Generic;
2
 using System.Linq;
3
 using System.Linq;
3
-using System.Linq.Expressions;
4
 using Luticate2.Auth.DataAccess;
4
 using Luticate2.Auth.DataAccess;
5
 using Luticate2.Auth.DataAccess.Models;
5
 using Luticate2.Auth.DataAccess.Models;
6
 using Luticate2.Auth.Dbo.Groups;
6
 using Luticate2.Auth.Dbo.Groups;
27
             Assert.Equal(new Guid().ToString(), res.Data.Id);
27
             Assert.Equal(new Guid().ToString(), res.Data.Id);
28
             Assert.Equal("Test.", res.Data.Name);
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
             mockContext.Verify(m => m.SaveChanges(), Times.Once());
31
             mockContext.Verify(m => m.SaveChanges(), Times.Once());
32
         }
32
         }
33
 
33
 
43
                 Assert.NotEqual(new Guid().ToString(), res.Data.Id);
43
                 Assert.NotEqual(new Guid().ToString(), res.Data.Id);
44
                 Assert.Equal(name, res.Data.Name);
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
                 Assert.Equal(LuStatus.Success, get.Status);
47
                 Assert.Equal(LuStatus.Success, get.Status);
48
                 Assert.Equal(name, get.Data.Name);
48
                 Assert.Equal(name, get.Data.Name);
49
                 Assert.Equal(res.Data.Id, get.Data.Id);
49
                 Assert.Equal(res.Data.Id, get.Data.Id);
59
                 var service = new LuGroupsDataAccess(context);
59
                 var service = new LuGroupsDataAccess(context);
60
                 var res = service.AddGuid(new LuGroupsAddDbo {Name = name});
60
                 var res = service.AddGuid(new LuGroupsAddDbo {Name = name});
61
                 Assert.Equal(LuStatus.Success, res.Status);
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
                 Assert.Equal(LuStatus.Success, get.Status);
65
                 Assert.Equal(LuStatus.Success, get.Status);
66
                 Assert.Equal(name, get.Data.Name);
66
                 Assert.Equal(name, get.Data.Name);
67
             });
67
             });
74
             {
74
             {
75
                 const string name = "Test.";
75
                 const string name = "Test.";
76
                 var service = new LuGroupsDataAccess(context);
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
                 Assert.Equal(LuStatus.Success, res.Status);
78
                 Assert.Equal(LuStatus.Success, res.Status);
79
                 Assert.NotEqual(new Guid().ToString(), res.Data);
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
                 Assert.Equal(LuStatus.Success, get.Status);
82
                 Assert.Equal(LuStatus.Success, get.Status);
83
                 Assert.Equal(name, get.Data.Name);
83
                 Assert.Equal(name, get.Data.Name);
84
             });
84
             });
89
         {
89
         {
90
             Tests.TestRealDb(context =>
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
                 var service = new LuGroupsDataAccess(context);
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
                 var get = service.GetMultiple(groups => groups.name, 0, 2);
101
                 var get = service.GetMultiple(groups => groups.name, 0, 2);
123
                 Assert.Equal("010-Test.", get.Data.Data[0].Name);
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
 }

Notiek ielāde…
Atcelt
Saglabāt