Browse Source

updated code-froms-ds; tests; create/read basic operations in cruddataaccess

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

+ 435
- 0
.idea/.idea.luticate2/.idea/dataSources.ids View File

@@ -0,0 +1,435 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<component name="dataSourceStorage">
3
+  <data-source name="luticate2" uuid="41647544-920e-40a8-9060-e11c61aaa20e">
4
+    <database-info product="PostgreSQL" version="9.4.8" jdbc-version="4.0" driver-name="PostgreSQL Native Driver" driver-version="PostgreSQL 9.4 JDBC4 (build 1201)">
5
+      <identifier-quote-string>&quot;</identifier-quote-string>
6
+    </database-info>
7
+    <case-sensitivity plain-identifiers="lower" quoted-identifiers="exact"/>
8
+    <database-model serializer="dbm" rdbms="POSTGRES" format-version="2.6">
9
+      <database id="1" name="luticate2">
10
+        <object-id>36851</object-id>
11
+        <visible>1</visible>
12
+      </database>
13
+      <database id="2" name="postgres">
14
+        <object-id>12173</object-id>
15
+      </database>
16
+      <database id="3" name="camotion">
17
+        <object-id>16387</object-id>
18
+      </database>
19
+      <database id="4" name="intra_betaclean">
20
+        <object-id>16388</object-id>
21
+      </database>
22
+      <database id="5" name="luticate">
23
+        <object-id>16389</object-id>
24
+      </database>
25
+      <database id="6" name="trainme">
26
+        <object-id>16390</object-id>
27
+      </database>
28
+      <database id="7" name="code-from-ds">
29
+        <object-id>36829</object-id>
30
+      </database>
31
+      <schema id="8" parent="1" name="public">
32
+        <object-id>2200</object-id>
33
+        <visible>1</visible>
34
+        <introspection-state-number>15641676</introspection-state-number>
35
+        <introspection-timestamp>2016-12-03.16:17:43.795</introspection-timestamp>
36
+      </schema>
37
+      <schema id="9" parent="1" name="pg_catalog">
38
+        <object-id>11</object-id>
39
+      </schema>
40
+      <schema id="10" parent="1" name="pg_toast">
41
+        <object-id>99</object-id>
42
+      </schema>
43
+      <schema id="11" parent="1" name="pg_temp_1">
44
+        <object-id>11320</object-id>
45
+      </schema>
46
+      <schema id="12" parent="1" name="pg_toast_temp_1">
47
+        <object-id>11321</object-id>
48
+      </schema>
49
+      <schema id="13" parent="1" name="information_schema">
50
+        <object-id>11623</object-id>
51
+      </schema>
52
+      <table id="14" parent="8" name="lu_authentication_sources">
53
+        <object-id>45043</object-id>
54
+        <state-number>15641671</state-number>
55
+      </table>
56
+      <table id="15" parent="8" name="lu_groups">
57
+        <object-id>45072</object-id>
58
+        <state-number>15641676</state-number>
59
+      </table>
60
+      <table id="16" parent="8" name="lu_users">
61
+        <object-id>45056</object-id>
62
+        <state-number>15641675</state-number>
63
+      </table>
64
+      <table id="17" parent="8" name="lu_verb_users_groups">
65
+        <object-id>45080</object-id>
66
+        <state-number>15641676</state-number>
67
+      </table>
68
+      <routine id="18" parent="8" name="get_uuid">
69
+        <object-id>36894</object-id>
70
+        <state-number>15641634</state-number>
71
+        <routine-kind>FUNCTION</routine-kind>
72
+      </routine>
73
+      <routine id="19" parent="8" name="unaccent_init">
74
+        <object-id>36876</object-id>
75
+        <state-number>15641626</state-number>
76
+        <routine-kind>FUNCTION</routine-kind>
77
+      </routine>
78
+      <routine id="20" parent="8" name="unaccent_lexize">
79
+        <object-id>36877</object-id>
80
+        <state-number>15641626</state-number>
81
+        <routine-kind>FUNCTION</routine-kind>
82
+      </routine>
83
+      <routine id="21" parent="8" name="unaccent">
84
+        <object-id>36874</object-id>
85
+        <state-number>15641626</state-number>
86
+        <routine-kind>FUNCTION</routine-kind>
87
+      </routine>
88
+      <routine id="22" parent="8" name="unaccent">
89
+        <object-id>36875</object-id>
90
+        <state-number>15641626</state-number>
91
+        <routine-kind>FUNCTION</routine-kind>
92
+      </routine>
93
+      <routine id="23" parent="8" name="uuid_generate_v1">
94
+        <object-id>36858</object-id>
95
+        <state-number>15641621</state-number>
96
+        <routine-kind>FUNCTION</routine-kind>
97
+      </routine>
98
+      <routine id="24" parent="8" name="uuid_generate_v1mc">
99
+        <object-id>36859</object-id>
100
+        <state-number>15641621</state-number>
101
+        <routine-kind>FUNCTION</routine-kind>
102
+      </routine>
103
+      <routine id="25" parent="8" name="uuid_generate_v3">
104
+        <object-id>36860</object-id>
105
+        <state-number>15641621</state-number>
106
+        <routine-kind>FUNCTION</routine-kind>
107
+      </routine>
108
+      <routine id="26" parent="8" name="uuid_generate_v4">
109
+        <object-id>36861</object-id>
110
+        <state-number>15641621</state-number>
111
+        <routine-kind>FUNCTION</routine-kind>
112
+      </routine>
113
+      <routine id="27" parent="8" name="uuid_generate_v5">
114
+        <object-id>36862</object-id>
115
+        <state-number>15641621</state-number>
116
+        <routine-kind>FUNCTION</routine-kind>
117
+      </routine>
118
+      <routine id="28" parent="8" name="uuid_nil">
119
+        <object-id>36853</object-id>
120
+        <state-number>15641621</state-number>
121
+        <routine-kind>FUNCTION</routine-kind>
122
+      </routine>
123
+      <routine id="29" parent="8" name="uuid_ns_dns">
124
+        <object-id>36854</object-id>
125
+        <state-number>15641621</state-number>
126
+        <routine-kind>FUNCTION</routine-kind>
127
+      </routine>
128
+      <routine id="30" parent="8" name="uuid_ns_oid">
129
+        <object-id>36856</object-id>
130
+        <state-number>15641621</state-number>
131
+        <routine-kind>FUNCTION</routine-kind>
132
+      </routine>
133
+      <routine id="31" parent="8" name="uuid_ns_url">
134
+        <object-id>36855</object-id>
135
+        <state-number>15641621</state-number>
136
+        <routine-kind>FUNCTION</routine-kind>
137
+      </routine>
138
+      <routine id="32" parent="8" name="uuid_ns_x500">
139
+        <object-id>36857</object-id>
140
+        <state-number>15641621</state-number>
141
+        <routine-kind>FUNCTION</routine-kind>
142
+      </routine>
143
+      <column id="33" parent="14" name="id">
144
+        <state-number>15641668</state-number>
145
+        <mandatory>1</mandatory>
146
+        <data-type>uuid|0</data-type>
147
+        <default-expression>get_uuid()</default-expression>
148
+      </column>
149
+      <column id="34" parent="14" name="name">
150
+        <state-number>15641668</state-number>
151
+        <mandatory>1</mandatory>
152
+        <data-type>varchar(128)|0</data-type>
153
+      </column>
154
+      <column id="35" parent="14" name="type">
155
+        <state-number>15641668</state-number>
156
+        <data-type>varchar(128)|0</data-type>
157
+      </column>
158
+      <column id="36" parent="14" name="data">
159
+        <state-number>15641668</state-number>
160
+        <data-type>json|0</data-type>
161
+      </column>
162
+      <index id="37" parent="14" name="lu_authentication_sources_pkey">
163
+        <object-id>45050</object-id>
164
+        <columns>id</columns>
165
+        <desc-columns></desc-columns>
166
+        <unique>1</unique>
167
+      </index>
168
+      <index id="38" parent="14" name="lu_authentication_sources_name_key">
169
+        <object-id>45052</object-id>
170
+        <columns>name</columns>
171
+        <desc-columns></desc-columns>
172
+        <unique>1</unique>
173
+      </index>
174
+      <index id="39" parent="14" name="lu_authentication_sources_type_key">
175
+        <object-id>45054</object-id>
176
+        <columns>type</columns>
177
+        <desc-columns></desc-columns>
178
+        <unique>1</unique>
179
+      </index>
180
+      <key id="40" parent="14" name="lu_authentication_sources_pkey">
181
+        <object-id>45051</object-id>
182
+        <columns>id</columns>
183
+        <underlying-index>lu_authentication_sources_pkey</underlying-index>
184
+        <primary>1</primary>
185
+      </key>
186
+      <key id="41" parent="14" name="lu_authentication_sources_name_key">
187
+        <object-id>45053</object-id>
188
+        <columns>name</columns>
189
+        <underlying-index>lu_authentication_sources_name_key</underlying-index>
190
+      </key>
191
+      <key id="42" parent="14" name="lu_authentication_sources_type_key">
192
+        <object-id>45055</object-id>
193
+        <columns>type</columns>
194
+        <underlying-index>lu_authentication_sources_type_key</underlying-index>
195
+      </key>
196
+      <column id="43" parent="15" name="id">
197
+        <state-number>15641672</state-number>
198
+        <mandatory>1</mandatory>
199
+        <data-type>uuid|0</data-type>
200
+        <default-expression>get_uuid()</default-expression>
201
+      </column>
202
+      <column id="44" parent="15" name="name">
203
+        <state-number>15641672</state-number>
204
+        <mandatory>1</mandatory>
205
+        <data-type>varchar(128)|0</data-type>
206
+      </column>
207
+      <index id="45" parent="15" name="lu_groups_pkey">
208
+        <object-id>45076</object-id>
209
+        <columns>id</columns>
210
+        <desc-columns></desc-columns>
211
+        <unique>1</unique>
212
+      </index>
213
+      <index id="46" parent="15" name="lu_groups_name_key">
214
+        <object-id>45078</object-id>
215
+        <columns>name</columns>
216
+        <desc-columns></desc-columns>
217
+        <unique>1</unique>
218
+      </index>
219
+      <key id="47" parent="15" name="lu_groups_pkey">
220
+        <object-id>45077</object-id>
221
+        <columns>id</columns>
222
+        <underlying-index>lu_groups_pkey</underlying-index>
223
+        <primary>1</primary>
224
+      </key>
225
+      <key id="48" parent="15" name="lu_groups_name_key">
226
+        <object-id>45079</object-id>
227
+        <columns>name</columns>
228
+        <underlying-index>lu_groups_name_key</underlying-index>
229
+      </key>
230
+      <column id="49" parent="16" name="id">
231
+        <state-number>15641669</state-number>
232
+        <mandatory>1</mandatory>
233
+        <data-type>uuid|0</data-type>
234
+        <default-expression>get_uuid()</default-expression>
235
+      </column>
236
+      <column id="50" parent="16" name="authentication_source_id">
237
+        <state-number>15641669</state-number>
238
+        <mandatory>1</mandatory>
239
+        <data-type>uuid|0</data-type>
240
+      </column>
241
+      <column id="51" parent="16" name="username">
242
+        <state-number>15641669</state-number>
243
+        <mandatory>1</mandatory>
244
+        <data-type>varchar(128)|0</data-type>
245
+      </column>
246
+      <column id="52" parent="16" name="password">
247
+        <state-number>15641669</state-number>
248
+        <data-type>varchar(128)|0</data-type>
249
+      </column>
250
+      <column id="53" parent="16" name="salt">
251
+        <state-number>15641669</state-number>
252
+        <mandatory>1</mandatory>
253
+        <data-type>varchar|0</data-type>
254
+      </column>
255
+      <index id="54" parent="16" name="lu_users_pkey">
256
+        <object-id>45063</object-id>
257
+        <columns>id</columns>
258
+        <desc-columns></desc-columns>
259
+        <unique>1</unique>
260
+      </index>
261
+      <index id="55" parent="16" name="lu_users_authentication_source_id_username_key">
262
+        <object-id>45065</object-id>
263
+        <columns>authentication_source_id
264
+username</columns>
265
+        <desc-columns></desc-columns>
266
+        <unique>1</unique>
267
+      </index>
268
+      <key id="56" parent="16" name="lu_users_pkey">
269
+        <object-id>45064</object-id>
270
+        <columns>id</columns>
271
+        <underlying-index>lu_users_pkey</underlying-index>
272
+        <primary>1</primary>
273
+      </key>
274
+      <key id="57" parent="16" name="lu_users_authentication_source_id_username_key">
275
+        <object-id>45066</object-id>
276
+        <columns>authentication_source_id
277
+username</columns>
278
+        <underlying-index>lu_users_authentication_source_id_username_key</underlying-index>
279
+      </key>
280
+      <foreign-key id="58" parent="16" name="lu_users_authentication_source_id_fkey">
281
+        <object-id>45067</object-id>
282
+        <columns>authentication_source_id</columns>
283
+        <ref-key>~.lu_authentication_sources.lu_authentication_sources_pkey</ref-key>
284
+        <cascade-update-rule>restrict</cascade-update-rule>
285
+        <cascade-delete-rule>restrict</cascade-delete-rule>
286
+      </foreign-key>
287
+      <column id="59" parent="17" name="user_id">
288
+        <state-number>15641674</state-number>
289
+        <mandatory>1</mandatory>
290
+        <data-type>uuid|0</data-type>
291
+      </column>
292
+      <column id="60" parent="17" name="group_id">
293
+        <state-number>15641674</state-number>
294
+        <mandatory>1</mandatory>
295
+        <data-type>uuid|0</data-type>
296
+      </column>
297
+      <index id="61" parent="17" name="lu_verb_users_groups_pkey">
298
+        <object-id>45083</object-id>
299
+        <columns>user_id
300
+group_id</columns>
301
+        <desc-columns></desc-columns>
302
+        <unique>1</unique>
303
+      </index>
304
+      <key id="62" parent="17" name="lu_verb_users_groups_pkey">
305
+        <object-id>45084</object-id>
306
+        <columns>user_id
307
+group_id</columns>
308
+        <underlying-index>lu_verb_users_groups_pkey</underlying-index>
309
+        <primary>1</primary>
310
+      </key>
311
+      <foreign-key id="63" parent="17" name="lu_verb_users_groups_user_id_fkey">
312
+        <object-id>45085</object-id>
313
+        <columns>user_id</columns>
314
+        <ref-key>~.lu_users.lu_users_pkey</ref-key>
315
+        <cascade-update-rule>restrict</cascade-update-rule>
316
+        <cascade-delete-rule>restrict</cascade-delete-rule>
317
+      </foreign-key>
318
+      <foreign-key id="64" parent="17" name="lu_verb_users_groups_group_id_fkey">
319
+        <object-id>45090</object-id>
320
+        <columns>group_id</columns>
321
+        <ref-key>~.lu_groups.lu_groups_pkey</ref-key>
322
+        <cascade-update-rule>restrict</cascade-update-rule>
323
+        <cascade-delete-rule>restrict</cascade-delete-rule>
324
+      </foreign-key>
325
+      <argument id="65" parent="18">
326
+        <direction>RETURN</direction>
327
+        <data-type>uuid|0</data-type>
328
+      </argument>
329
+      <argument id="66" parent="19">
330
+        <direction>IN</direction>
331
+        <data-type>internal|0</data-type>
332
+      </argument>
333
+      <argument id="67" parent="19">
334
+        <direction>RETURN</direction>
335
+        <data-type>internal|0</data-type>
336
+      </argument>
337
+      <argument id="68" parent="20">
338
+        <direction>IN</direction>
339
+        <data-type>internal|0</data-type>
340
+      </argument>
341
+      <argument id="69" parent="20">
342
+        <direction>IN</direction>
343
+        <data-type>internal|0</data-type>
344
+      </argument>
345
+      <argument id="70" parent="20">
346
+        <direction>IN</direction>
347
+        <data-type>internal|0</data-type>
348
+      </argument>
349
+      <argument id="71" parent="20">
350
+        <direction>IN</direction>
351
+        <data-type>internal|0</data-type>
352
+      </argument>
353
+      <argument id="72" parent="20">
354
+        <direction>RETURN</direction>
355
+        <data-type>internal|0</data-type>
356
+      </argument>
357
+      <argument id="73" parent="21">
358
+        <direction>IN</direction>
359
+        <data-type>regdictionary|0</data-type>
360
+      </argument>
361
+      <argument id="74" parent="21">
362
+        <direction>IN</direction>
363
+        <data-type>text|0</data-type>
364
+      </argument>
365
+      <argument id="75" parent="21">
366
+        <direction>RETURN</direction>
367
+        <data-type>text|0</data-type>
368
+      </argument>
369
+      <argument id="76" parent="22">
370
+        <direction>IN</direction>
371
+        <data-type>text|0</data-type>
372
+      </argument>
373
+      <argument id="77" parent="22">
374
+        <direction>RETURN</direction>
375
+        <data-type>text|0</data-type>
376
+      </argument>
377
+      <argument id="78" parent="23">
378
+        <direction>RETURN</direction>
379
+        <data-type>uuid|0</data-type>
380
+      </argument>
381
+      <argument id="79" parent="24">
382
+        <direction>RETURN</direction>
383
+        <data-type>uuid|0</data-type>
384
+      </argument>
385
+      <argument id="80" parent="25" name="namespace">
386
+        <direction>IN</direction>
387
+        <data-type>uuid|0</data-type>
388
+      </argument>
389
+      <argument id="81" parent="25" name="name">
390
+        <direction>IN</direction>
391
+        <data-type>text|0</data-type>
392
+      </argument>
393
+      <argument id="82" parent="25">
394
+        <direction>RETURN</direction>
395
+        <data-type>uuid|0</data-type>
396
+      </argument>
397
+      <argument id="83" parent="26">
398
+        <direction>RETURN</direction>
399
+        <data-type>uuid|0</data-type>
400
+      </argument>
401
+      <argument id="84" parent="27" name="namespace">
402
+        <direction>IN</direction>
403
+        <data-type>uuid|0</data-type>
404
+      </argument>
405
+      <argument id="85" parent="27" name="name">
406
+        <direction>IN</direction>
407
+        <data-type>text|0</data-type>
408
+      </argument>
409
+      <argument id="86" parent="27">
410
+        <direction>RETURN</direction>
411
+        <data-type>uuid|0</data-type>
412
+      </argument>
413
+      <argument id="87" parent="28">
414
+        <direction>RETURN</direction>
415
+        <data-type>uuid|0</data-type>
416
+      </argument>
417
+      <argument id="88" parent="29">
418
+        <direction>RETURN</direction>
419
+        <data-type>uuid|0</data-type>
420
+      </argument>
421
+      <argument id="89" parent="30">
422
+        <direction>RETURN</direction>
423
+        <data-type>uuid|0</data-type>
424
+      </argument>
425
+      <argument id="90" parent="31">
426
+        <direction>RETURN</direction>
427
+        <data-type>uuid|0</data-type>
428
+      </argument>
429
+      <argument id="91" parent="32">
430
+        <direction>RETURN</direction>
431
+        <data-type>uuid|0</data-type>
432
+      </argument>
433
+    </database-model>
434
+  </data-source>
435
+</component>

+ 11
- 0
.idea/.idea.luticate2/.idea/dataSources.local.xml View File

@@ -0,0 +1,11 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="dataSourceStorageLocal">
4
+    <data-source name="luticate2" uuid="41647544-920e-40a8-9060-e11c61aaa20e">
5
+      <secret-storage>master_key</secret-storage>
6
+      <user-name>dev</user-name>
7
+      <introspection-scope>luticate2:dev,pg_catalog,public</introspection-scope>
8
+      <resolve-scope>luticate2:dev,public</resolve-scope>
9
+    </data-source>
10
+  </component>
11
+</project>

+ 11
- 0
.idea/.idea.luticate2/.idea/dataSources.xml View File

@@ -0,0 +1,11 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="DataSourceManagerImpl" format="xml" hash="2489322795">
4
+    <data-source source="LOCAL" name="luticate2" uuid="41647544-920e-40a8-9060-e11c61aaa20e">
5
+      <driver-ref>postgresql</driver-ref>
6
+      <synchronize>true</synchronize>
7
+      <jdbc-driver>org.postgresql.Driver</jdbc-driver>
8
+      <jdbc-url>jdbc:postgresql://localhost:5432/luticate2</jdbc-url>
9
+    </data-source>
10
+  </component>
11
+</project>

+ 397
- 111
.idea/.idea.luticate2/.idea/workspace.xml View File

@@ -15,26 +15,74 @@
15 15
   <component name="CreatePatchCommitExecutor">
16 16
     <option name="PATCH_PATH" value="" />
17 17
   </component>
18
+  <component name="DatabaseView">
19
+    <option name="GROUP_SCHEMA" value="true" />
20
+    <option name="GROUP_CONTENTS" value="false" />
21
+    <option name="SORT_POSITIONED" value="false" />
22
+    <option name="SHOW_TABLE_DETAILS" value="true" />
23
+    <option name="SHOW_EMPTY_GROUPS" value="false" />
24
+    <option name="AUTO_SCROLL_FROM_SOURCE" value="false" />
25
+  </component>
18 26
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
19 27
   <component name="FavoritesManager">
20 28
     <favorites_list name="luticate2" />
21 29
   </component>
22 30
   <component name="FileEditorManager">
23
-    <leaf>
24
-      <file leaf-file-name="project.json" pinned="false" current-in-tab="true">
25
-        <entry file="file://$PROJECT_DIR$/../../Test/project.json">
31
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
32
+      <file leaf-file-name="LuGroupsDataAccessTest.cs" pinned="false" current-in-tab="true">
33
+        <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
34
+          <provider selected="true" editor-type-id="text-editor">
35
+            <state relative-caret-position="549">
36
+              <caret line="69" column="9" selection-start-line="69" selection-start-column="9" selection-end-line="69" selection-end-column="9" />
37
+              <folding>
38
+                <marker date="1480806619918" expanded="true" signature="6:207" ph="..." />
39
+                <marker date="1480806619918" expanded="true" signature="235:2400" ph="{...}" />
40
+                <marker date="1480806619918" expanded="true" signature="277:2398" ph="{...}" />
41
+                <marker date="1480806619918" expanded="true" signature="329:1000" ph="{...}" />
42
+                <marker date="1480806619918" expanded="true" signature="1048:1502" ph="{...}" />
43
+                <marker date="1480806619918" expanded="true" signature="1550:1940" ph="{...}" />
44
+                <marker date="1480806619918" expanded="true" signature="1988:2392" ph="{...}" />
45
+              </folding>
46
+            </state>
47
+          </provider>
48
+        </entry>
49
+      </file>
50
+      <file leaf-file-name="LuEfCrudDataAccess.cs" pinned="false" current-in-tab="false">
51
+        <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
52
+          <provider selected="true" editor-type-id="text-editor">
53
+            <state relative-caret-position="603">
54
+              <caret line="100" column="9" selection-start-line="100" selection-start-column="9" selection-end-line="100" selection-end-column="9" />
55
+              <folding>
56
+                <marker date="1480806573734" expanded="true" signature="6:161" ph="..." />
57
+                <marker date="1480806573734" expanded="true" signature="199:3418" ph="{...}" />
58
+                <marker date="1480806573734" expanded="true" signature="500:3416" ph="{...}" />
59
+                <marker date="1480806573734" expanded="true" signature="597:617" ph="{...}" />
60
+                <marker date="1480806573734" expanded="true" signature="920:1242" ph="{...}" />
61
+                <marker date="1480806573734" expanded="true" signature="1297:1553" ph="{...}" />
62
+                <marker date="1480806573734" expanded="true" signature="1613:1821" ph="{...}" />
63
+                <marker date="1480806573734" expanded="true" signature="1874:2130" ph="{...}" />
64
+                <marker date="1480806573734" expanded="true" signature="2188:2270" ph="{...}" />
65
+                <marker date="1480806573734" expanded="true" signature="2357:2761" ph="{...}" />
66
+                <marker date="1480806573734" expanded="true" signature="2987:3087" ph="{...}" />
67
+                <marker date="1480806573734" expanded="true" signature="3152:3252" ph="{...}" />
68
+                <marker date="1480806573734" expanded="true" signature="3310:3410" ph="{...}" />
69
+              </folding>
70
+            </state>
71
+          </provider>
72
+        </entry>
73
+      </file>
74
+      <file leaf-file-name="LuEfDataAccess.cs" pinned="false" current-in-tab="false">
75
+        <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs">
26 76
           <provider selected="true" editor-type-id="text-editor">
27
-            <state relative-caret-position="342">
28
-              <caret line="19" column="8" selection-start-line="19" selection-start-column="8" selection-end-line="19" selection-end-column="8" />
77
+            <state relative-caret-position="432">
78
+              <caret line="36" column="19" selection-start-line="36" selection-start-column="19" selection-end-line="36" selection-end-column="19" />
29 79
               <folding>
30
-                <marker date="1480799184705" expanded="true" signature="0:553" ph="{...}" />
31
-                <marker date="1480799184705" expanded="true" signature="44:77" ph="{...}" />
32
-                <marker date="1480799184705" expanded="true" signature="97:258" ph="{...}" />
33
-                <marker date="1480799184705" expanded="true" signature="301:551" ph="{...}" />
34
-                <marker date="1480799184705" expanded="true" signature="324:547" ph="{...}" />
35
-                <marker date="1480799184705" expanded="true" signature="348:461" ph="{...}" />
36
-                <marker date="1480799184705" expanded="true" signature="383:453" ph="{...}" />
37
-                <marker date="1480799184705" expanded="true" signature="480:541" ph="[...]" />
80
+                <marker date="1480806229174" expanded="true" signature="6:142" ph="..." />
81
+                <marker date="1480806229174" expanded="true" signature="180:1443" ph="{...}" />
82
+                <marker date="1480806229174" expanded="true" signature="324:1441" ph="{...}" />
83
+                <marker date="1480806229174" expanded="true" signature="491:559" ph="{...}" />
84
+                <marker date="1480806229174" expanded="true" signature="622:840" ph="{...}" />
85
+                <marker date="1480806229174" expanded="true" signature="952:1434" ph="{...}" />
38 86
               </folding>
39 87
             </state>
40 88
           </provider>
@@ -48,11 +96,20 @@
48 96
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Users/UsersDbo.cs" />
49 97
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Groups/LuGroupsAddDbo.cs" />
50 98
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Groups/LuGroupsDbo.cs" />
51
-        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs" />
52 99
         <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuGroupsDataAccess.cs" />
53
-        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs" />
54 100
         <option value="$PROJECT_DIR$/../../WebTest/Tests/LuGroupsDataAccessTest.cs" />
55 101
         <option value="$PROJECT_DIR$/../../Test/project.json" />
102
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/Models.twig" />
103
+        <option value="$APPLICATION_CONFIG_DIR$/consoles/db/41647544-920e-40a8-9060-e11c61aaa20e/console.sql" />
104
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json" />
105
+        <option value="$PROJECT_DIR$/../../Test/Tests.cs" />
106
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuResult.cs" />
107
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/Models/lu_groups.cs" />
108
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig" />
109
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs" />
110
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs" />
111
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs" />
112
+        <option value="$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs" />
56 113
       </list>
57 114
     </option>
58 115
   </component>
@@ -97,12 +154,85 @@
97 154
               <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
98 155
             </PATH_ELEMENT>
99 156
           </PATH>
157
+          <PATH>
158
+            <PATH_ELEMENT>
159
+              <option name="myItemId" />
160
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
161
+            </PATH_ELEMENT>
162
+            <PATH_ELEMENT>
163
+              <option name="myItemId" value="luticate2 (4 projects)" />
164
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
165
+            </PATH_ELEMENT>
166
+            <PATH_ELEMENT>
167
+              <option name="myItemId" value="Luticate2.Utils" />
168
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
169
+            </PATH_ELEMENT>
170
+          </PATH>
171
+          <PATH>
172
+            <PATH_ELEMENT>
173
+              <option name="myItemId" />
174
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
175
+            </PATH_ELEMENT>
176
+            <PATH_ELEMENT>
177
+              <option name="myItemId" value="luticate2 (4 projects)" />
178
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
179
+            </PATH_ELEMENT>
180
+            <PATH_ELEMENT>
181
+              <option name="myItemId" value="Luticate2.Auth" />
182
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
183
+            </PATH_ELEMENT>
184
+          </PATH>
185
+          <PATH>
186
+            <PATH_ELEMENT>
187
+              <option name="myItemId" />
188
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
189
+            </PATH_ELEMENT>
190
+            <PATH_ELEMENT>
191
+              <option name="myItemId" value="luticate2 (4 projects)" />
192
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
193
+            </PATH_ELEMENT>
194
+            <PATH_ELEMENT>
195
+              <option name="myItemId" value="Luticate2.Auth" />
196
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
197
+            </PATH_ELEMENT>
198
+            <PATH_ELEMENT>
199
+              <option name="myItemId" value="DataAccess" />
200
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
201
+            </PATH_ELEMENT>
202
+          </PATH>
203
+          <PATH>
204
+            <PATH_ELEMENT>
205
+              <option name="myItemId" />
206
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
207
+            </PATH_ELEMENT>
208
+            <PATH_ELEMENT>
209
+              <option name="myItemId" value="luticate2 (4 projects)" />
210
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
211
+            </PATH_ELEMENT>
212
+            <PATH_ELEMENT>
213
+              <option name="myItemId" value="Luticate2.Auth" />
214
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
215
+            </PATH_ELEMENT>
216
+            <PATH_ELEMENT>
217
+              <option name="myItemId" value="DataAccess" />
218
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
219
+            </PATH_ELEMENT>
220
+            <PATH_ELEMENT>
221
+              <option name="myItemId" value="code-from-ds" />
222
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
223
+            </PATH_ELEMENT>
224
+          </PATH>
100 225
         </subPane>
101 226
         <option name="show-file-system" value="false" />
102 227
         <option name="show-all-items" value="false" />
103 228
       </pane>
104 229
     </panes>
105 230
   </component>
231
+  <component name="PropertiesComponent">
232
+    <property name="com.intellij.database.dataSource.DataSourceTemplate" value="PostgreSQL" />
233
+    <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
234
+    <property name="settings.editor.splitter.proportion" value="0.2" />
235
+  </component>
106 236
   <component name="RunManager" selected=".NET Project.Default">
107 237
     <configuration default="true" type="DotNetProject" factoryName=".NET Project">
108 238
       <option name="PROJECT_PATH" value="" />
@@ -138,6 +268,9 @@
138 268
   <component name="ShelveChangesManager" show_recycled="false">
139 269
     <option name="remove_strategy" value="false" />
140 270
   </component>
271
+  <component name="SvnConfiguration">
272
+    <configuration />
273
+  </component>
141 274
   <component name="TaskManager">
142 275
     <task active="true" id="Default" summary="Default task">
143 276
       <changelist id="ec1c1206-a476-46a4-930f-40d04fb88076" name="Default" comment="" />
@@ -145,12 +278,15 @@
145 278
       <option name="number" value="Default" />
146 279
       <option name="presentableId" value="Default" />
147 280
       <updated>1480793598641</updated>
148
-      <workItem from="1480793601520" duration="3316000" />
281
+      <workItem from="1480793601520" duration="8543000" />
282
+      <workItem from="1480804561549" duration="52000" />
283
+      <workItem from="1480804632897" duration="16000" />
284
+      <workItem from="1480804671711" duration="1971000" />
149 285
     </task>
150 286
     <servers />
151 287
   </component>
152 288
   <component name="TimeTrackingManager">
153
-    <option name="totallyTimeSpent" value="3316000" />
289
+    <option name="totallyTimeSpent" value="10582000" />
154 290
   </component>
155 291
   <component name="TodoView">
156 292
     <todo-panel id="selected-file">
@@ -163,142 +299,174 @@
163 299
   </component>
164 300
   <component name="ToolWindowManager">
165 301
     <frame x="0" y="0" width="1920" height="1061" extended-state="0" />
166
-    <editor active="false" />
302
+    <editor active="true" />
167 303
     <layout>
304
+      <window_info id="Change Signature" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="13" side_tool="true" content_ui="tabs" />
305
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.16388309" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
168 306
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
169
-      <window_info id="Errors in solution" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
170
-      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
171
-      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
172
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
173
-      <window_info id="UnitTesting" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
174
-      <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
175
-      <window_info id="NuGet" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
176
-      <window_info id="Change Signature" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
177
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.16649269" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
178
-      <window_info id="Build" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
179
-      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
180
-      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
307
+      <window_info id="Errors in solution" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
308
+      <window_info id="Build" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
309
+      <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
310
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.28131524" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
311
+      <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
312
+      <window_info id="UnitTesting" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25309917" sideWeight="0.5" order="9" side_tool="false" content_ui="tabs" />
181 313
       <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
182
-      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
314
+      <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="10" side_tool="false" content_ui="tabs" />
315
+      <window_info id="NuGet" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
183 316
       <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
184
-      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
185 317
       <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
186 318
       <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
187 319
       <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
320
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32954547" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
321
+      <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
322
+      <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
188 323
       <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
324
+      <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.3997934" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
189 325
     </layout>
190 326
   </component>
191 327
   <component name="VcsContentAnnotationSettings">
192 328
     <option name="myLimit" value="2678400000" />
193 329
   </component>
194 330
   <component name="XDebuggerManager">
195
-    <breakpoint-manager />
331
+    <breakpoint-manager>
332
+      <option name="time" value="4" />
333
+    </breakpoint-manager>
196 334
     <watches-manager />
197 335
   </component>
198 336
   <component name="editorHistoryManager">
199
-    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Users/UsersDbo.cs">
337
+    <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
200 338
       <provider selected="true" editor-type-id="text-editor">
201
-        <state relative-caret-position="36">
202
-          <caret line="2" column="34" selection-start-line="2" selection-start-column="34" selection-end-line="2" selection-end-column="34" />
339
+        <state relative-caret-position="1134">
340
+          <caret line="63" column="38" selection-start-line="63" selection-start-column="38" selection-end-line="63" selection-end-column="38" />
203 341
           <folding>
204
-            <marker date="1480793666665" expanded="true" signature="62:113" ph="{...}" />
205
-            <marker date="1480793666665" expanded="true" signature="98:111" ph="{...}" />
342
+            <marker date="1480806619918" expanded="true" signature="6:207" ph="..." />
343
+            <marker date="1480806619918" expanded="true" signature="235:2400" ph="{...}" />
344
+            <marker date="1480806619918" expanded="true" signature="277:2398" ph="{...}" />
345
+            <marker date="1480806619918" expanded="true" signature="329:1000" ph="{...}" />
346
+            <marker date="1480806619918" expanded="true" signature="1048:1502" ph="{...}" />
347
+            <marker date="1480806619918" expanded="true" signature="1550:1940" ph="{...}" />
348
+            <marker date="1480806619918" expanded="true" signature="1988:2392" ph="{...}" />
206 349
           </folding>
207 350
         </state>
208 351
       </provider>
209 352
     </entry>
210
-    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuDataAccess.cs">
353
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs">
211 354
       <provider selected="true" editor-type-id="text-editor">
212
-        <state relative-caret-position="0">
213
-          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
355
+        <state relative-caret-position="738">
356
+          <caret line="41" column="36" selection-start-line="41" selection-start-column="36" selection-end-line="41" selection-end-column="36" />
214 357
           <folding>
215
-            <marker date="1480744171134" expanded="true" signature="36:91" ph="{...}" />
216
-            <marker date="1480744171134" expanded="true" signature="77:89" ph="{...}" />
358
+            <marker date="1480805029761" expanded="true" signature="6:76" ph="..." />
359
+            <marker date="1480805029761" expanded="true" signature="113:3088" ph="{...}" />
360
+            <marker date="1480805029761" expanded="true" signature="170:3086" ph="{...}" />
361
+            <marker date="1480805029761" expanded="true" signature="263:283" ph="{...}" />
362
+            <marker date="1480805029761" expanded="true" signature="342:412" ph="{...}" />
363
+            <marker date="1480805029761" expanded="true" signature="487:507" ph="{...}" />
364
+            <marker date="1480805029761" expanded="true" signature="594:734" ph="{...}" />
365
+            <marker date="1480805029761" expanded="true" signature="724:734" ph="{...}" />
366
+            <marker date="1480805029761" expanded="true" signature="810:2727" ph="{...}" />
367
+            <marker date="1480805029761" expanded="true" signature="2116:2727" ph="{...}" />
217 368
           </folding>
218 369
         </state>
219 370
       </provider>
220 371
     </entry>
221
-    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs">
372
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
222 373
       <provider selected="true" editor-type-id="text-editor">
223
-        <state relative-caret-position="90">
224
-          <caret line="5" column="25" selection-start-line="5" selection-start-column="25" selection-end-line="5" selection-end-column="25" />
374
+        <state relative-caret-position="828">
375
+          <caret line="46" column="35" selection-start-line="46" selection-start-column="35" selection-end-line="46" selection-end-column="35" />
225 376
           <folding>
226
-            <marker date="1480742615658" expanded="true" signature="6:76" ph="..." />
227
-            <marker date="1480742615658" expanded="true" signature="113:2087" ph="{...}" />
228
-            <marker date="1480742615658" expanded="true" signature="170:2085" ph="{...}" />
229
-            <marker date="1480742615658" expanded="true" signature="250:270" ph="{...}" />
230
-            <marker date="1480742615658" expanded="true" signature="346:1758" ph="{...}" />
377
+            <marker date="1480806573734" expanded="true" signature="6:161" ph="..." />
378
+            <marker date="1480806573734" expanded="true" signature="199:3418" ph="{...}" />
379
+            <marker date="1480806573734" expanded="true" signature="500:3416" ph="{...}" />
380
+            <marker date="1480806573734" expanded="true" signature="597:617" ph="{...}" />
381
+            <marker date="1480806573734" expanded="true" signature="920:1242" ph="{...}" />
382
+            <marker date="1480806573734" expanded="true" signature="1297:1553" ph="{...}" />
383
+            <marker date="1480806573734" expanded="true" signature="1613:1821" ph="{...}" />
384
+            <marker date="1480806573734" expanded="true" signature="1874:2130" ph="{...}" />
385
+            <marker date="1480806573734" expanded="true" signature="2188:2270" ph="{...}" />
386
+            <marker date="1480806573734" expanded="true" signature="2357:2761" ph="{...}" />
387
+            <marker date="1480806573734" expanded="true" signature="2987:3087" ph="{...}" />
388
+            <marker date="1480806573734" expanded="true" signature="3152:3252" ph="{...}" />
389
+            <marker date="1480806573734" expanded="true" signature="3310:3410" ph="{...}" />
231 390
           </folding>
232 391
         </state>
233 392
       </provider>
234 393
     </entry>
235
-    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs">
394
+    <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
236 395
       <provider selected="true" editor-type-id="text-editor">
237
-        <state relative-caret-position="144">
238
-          <caret line="8" column="36" selection-start-line="8" selection-start-column="36" selection-end-line="8" selection-end-column="36" />
396
+        <state relative-caret-position="1134">
397
+          <caret line="63" column="38" selection-start-line="63" selection-start-column="38" selection-end-line="63" selection-end-column="38" />
239 398
           <folding>
240
-            <marker date="1480798409709" expanded="true" signature="6:77" ph="..." />
241
-            <marker date="1480798409709" expanded="true" signature="115:783" ph="{...}" />
242
-            <marker date="1480798409709" expanded="true" signature="259:781" ph="{...}" />
243
-            <marker date="1480798409709" expanded="true" signature="426:494" ph="{...}" />
244
-            <marker date="1480798409709" expanded="true" signature="557:775" ph="{...}" />
399
+            <marker date="1480806619918" expanded="true" signature="6:207" ph="..." />
400
+            <marker date="1480806619918" expanded="true" signature="235:2400" ph="{...}" />
401
+            <marker date="1480806619918" expanded="true" signature="277:2398" ph="{...}" />
402
+            <marker date="1480806619918" expanded="true" signature="329:1000" ph="{...}" />
403
+            <marker date="1480806619918" expanded="true" signature="1048:1502" ph="{...}" />
404
+            <marker date="1480806619918" expanded="true" signature="1550:1940" ph="{...}" />
405
+            <marker date="1480806619918" expanded="true" signature="1988:2392" ph="{...}" />
245 406
           </folding>
246 407
         </state>
247 408
       </provider>
248 409
     </entry>
249
-    <entry file="file://$PROJECT_DIR$/../../WebTest/Tests/LuGroupsDataAccessTest.cs">
410
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs">
250 411
       <provider selected="true" editor-type-id="text-editor">
251
-        <state relative-caret-position="0">
252
-          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
253
-          <folding />
412
+        <state relative-caret-position="738">
413
+          <caret line="41" column="36" selection-start-line="41" selection-start-column="36" selection-end-line="41" selection-end-column="36" />
414
+          <folding>
415
+            <marker date="1480805029761" expanded="true" signature="6:76" ph="..." />
416
+            <marker date="1480805029761" expanded="true" signature="113:3088" ph="{...}" />
417
+            <marker date="1480805029761" expanded="true" signature="170:3086" ph="{...}" />
418
+            <marker date="1480805029761" expanded="true" signature="263:283" ph="{...}" />
419
+            <marker date="1480805029761" expanded="true" signature="342:412" ph="{...}" />
420
+            <marker date="1480805029761" expanded="true" signature="487:507" ph="{...}" />
421
+            <marker date="1480805029761" expanded="true" signature="594:734" ph="{...}" />
422
+            <marker date="1480805029761" expanded="true" signature="724:734" ph="{...}" />
423
+            <marker date="1480805029761" expanded="true" signature="810:2727" ph="{...}" />
424
+            <marker date="1480805029761" expanded="true" signature="2116:2727" ph="{...}" />
425
+          </folding>
254 426
         </state>
255 427
       </provider>
256 428
     </entry>
257
-    <entry file="file://$PROJECT_DIR$/../../Test/Tests.cs">
429
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
258 430
       <provider selected="true" editor-type-id="text-editor">
259
-        <state relative-caret-position="180">
260
-          <caret line="10" column="12" selection-start-line="10" selection-start-column="12" selection-end-line="10" selection-end-column="12" />
431
+        <state relative-caret-position="828">
432
+          <caret line="46" column="35" selection-start-line="46" selection-start-column="35" selection-end-line="46" selection-end-column="35" />
261 433
           <folding>
262
-            <marker date="1480799098697" expanded="true" signature="6:26" ph="..." />
263
-            <marker date="1480799098697" expanded="true" signature="42:175" ph="{...}" />
264
-            <marker date="1480799098697" expanded="true" signature="67:173" ph="{...}" />
265
-            <marker date="1480799098697" expanded="true" signature="116:167" ph="{...}" />
434
+            <marker date="1480806573734" expanded="true" signature="6:161" ph="..." />
435
+            <marker date="1480806573734" expanded="true" signature="199:3418" ph="{...}" />
436
+            <marker date="1480806573734" expanded="true" signature="500:3416" ph="{...}" />
437
+            <marker date="1480806573734" expanded="true" signature="597:617" ph="{...}" />
438
+            <marker date="1480806573734" expanded="true" signature="920:1242" ph="{...}" />
439
+            <marker date="1480806573734" expanded="true" signature="1297:1553" ph="{...}" />
440
+            <marker date="1480806573734" expanded="true" signature="1613:1821" ph="{...}" />
441
+            <marker date="1480806573734" expanded="true" signature="1874:2130" ph="{...}" />
442
+            <marker date="1480806573734" expanded="true" signature="2188:2270" ph="{...}" />
443
+            <marker date="1480806573734" expanded="true" signature="2357:2761" ph="{...}" />
444
+            <marker date="1480806573734" expanded="true" signature="2987:3087" ph="{...}" />
445
+            <marker date="1480806573734" expanded="true" signature="3152:3252" ph="{...}" />
446
+            <marker date="1480806573734" expanded="true" signature="3310:3410" ph="{...}" />
266 447
           </folding>
267 448
         </state>
268 449
       </provider>
269 450
     </entry>
270
-    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
451
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Users/UsersDbo.cs">
271 452
       <provider selected="true" editor-type-id="text-editor">
272
-        <state relative-caret-position="259">
273
-          <caret line="35" column="0" selection-start-line="35" selection-start-column="0" selection-end-line="35" selection-end-column="0" />
274
-          <folding>
275
-            <marker date="1480798389677" expanded="true" signature="6:108" ph="..." />
276
-            <marker date="1480798389677" expanded="true" signature="146:1650" ph="{...}" />
277
-            <marker date="1480798389677" expanded="true" signature="447:1648" ph="{...}" />
278
-            <marker date="1480798389677" expanded="true" signature="544:564" ph="{...}" />
279
-            <marker date="1480798389677" expanded="true" signature="867:1189" ph="{...}" />
280
-            <marker date="1480798389677" expanded="true" signature="1244:1502" ph="{...}" />
281
-            <marker date="1480798389677" expanded="true" signature="1560:1642" ph="{...}" />
282
-          </folding>
453
+        <state relative-caret-position="36">
454
+          <caret line="2" column="34" selection-start-line="2" selection-start-column="34" selection-end-line="2" selection-end-column="34" />
455
+        </state>
456
+      </provider>
457
+    </entry>
458
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuDataAccess.cs">
459
+      <provider selected="true" editor-type-id="text-editor">
460
+        <state relative-caret-position="0">
461
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
283 462
         </state>
284 463
       </provider>
285 464
     </entry>
465
+    <entry file="file://$PROJECT_DIR$/../../WebTest/Tests/LuGroupsDataAccessTest.cs" />
286 466
     <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuGroupsDataAccess.cs">
287 467
       <provider selected="true" editor-type-id="text-editor">
288 468
         <state relative-caret-position="378">
289 469
           <caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" />
290
-          <folding>
291
-            <marker date="1480798389641" expanded="true" signature="6:106" ph="..." />
292
-            <marker date="1480798389641" expanded="true" signature="143:1050" ph="{...}" />
293
-            <marker date="1480798389641" expanded="true" signature="277:1048" ph="{...}" />
294
-            <marker date="1480798389641" expanded="true" signature="376:396" ph="{...}" />
295
-            <marker date="1480798389641" expanded="true" signature="425:474" ph="{...}" />
296
-            <marker date="1480798389641" expanded="true" signature="552:666" ph="{...}" />
297
-            <marker date="1480798389641" expanded="true" signature="608:655" ph="{...}" />
298
-            <marker date="1480798389641" expanded="true" signature="744:809" ph="{...}" />
299
-            <marker date="1480798389641" expanded="true" signature="882:1042" ph="{...}" />
300
-            <marker date="1480798389641" expanded="true" signature="940:1031" ph="{...}" />
301
-          </folding>
302 470
         </state>
303 471
       </provider>
304 472
     </entry>
@@ -306,10 +474,6 @@
306 474
       <provider selected="true" editor-type-id="text-editor">
307 475
         <state relative-caret-position="144">
308 476
           <caret line="8" column="1" selection-start-line="8" selection-start-column="1" selection-end-line="8" selection-end-column="1" />
309
-          <folding>
310
-            <marker date="1480798389669" expanded="true" signature="63:160" ph="{...}" />
311
-            <marker date="1480798389669" expanded="true" signature="105:158" ph="{...}" />
312
-          </folding>
313 477
         </state>
314 478
       </provider>
315 479
     </entry>
@@ -317,26 +481,148 @@
317 481
       <provider selected="true" editor-type-id="text-editor">
318 482
         <state relative-caret-position="72">
319 483
           <caret line="4" column="36" selection-start-line="4" selection-start-column="36" selection-end-line="4" selection-end-column="36" />
320
-          <folding>
321
-            <marker date="1480798389653" expanded="true" signature="63:197" ph="{...}" />
322
-            <marker date="1480798389653" expanded="true" signature="102:195" ph="{...}" />
323
-          </folding>
484
+        </state>
485
+      </provider>
486
+    </entry>
487
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/Models.twig">
488
+      <provider selected="true" editor-type-id="text-editor">
489
+        <state relative-caret-position="288">
490
+          <caret line="16" column="23" selection-start-line="16" selection-start-column="23" selection-end-line="16" selection-end-column="23" />
491
+        </state>
492
+      </provider>
493
+    </entry>
494
+    <entry file="file://$APPLICATION_CONFIG_DIR$/consoles/db/41647544-920e-40a8-9060-e11c61aaa20e/console.sql">
495
+      <provider selected="true" editor-type-id="text-editor">
496
+        <state relative-caret-position="0">
497
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
324 498
         </state>
325 499
       </provider>
326 500
     </entry>
327 501
     <entry file="file://$PROJECT_DIR$/../../Test/project.json">
502
+      <provider selected="true" editor-type-id="text-editor">
503
+        <state relative-caret-position="162">
504
+          <caret line="9" column="17" selection-start-line="9" selection-start-column="17" selection-end-line="9" selection-end-column="17" />
505
+        </state>
506
+      </provider>
507
+    </entry>
508
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuResult.cs">
509
+      <provider selected="true" editor-type-id="text-editor">
510
+        <state relative-caret-position="-11">
511
+          <caret line="50" column="14" selection-start-line="50" selection-start-column="14" selection-end-line="50" selection-end-column="14" />
512
+        </state>
513
+      </provider>
514
+    </entry>
515
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json">
516
+      <provider selected="true" editor-type-id="text-editor">
517
+        <state relative-caret-position="0">
518
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
519
+        </state>
520
+      </provider>
521
+    </entry>
522
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/types-cast.json">
328 523
       <provider selected="true" editor-type-id="text-editor">
329 524
         <state relative-caret-position="342">
330
-          <caret line="19" column="8" selection-start-line="19" selection-start-column="8" selection-end-line="19" selection-end-column="8" />
525
+          <caret line="19" column="13" selection-start-line="19" selection-start-column="9" selection-end-line="19" selection-end-column="13" />
526
+        </state>
527
+      </provider>
528
+    </entry>
529
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/Models/lu_groups.cs">
530
+      <provider selected="true" editor-type-id="text-editor">
531
+        <state relative-caret-position="144">
532
+          <caret line="8" column="5" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" />
533
+        </state>
534
+      </provider>
535
+    </entry>
536
+    <entry file="file://$PROJECT_DIR$/../../Test/Tests.cs">
537
+      <provider selected="true" editor-type-id="text-editor">
538
+        <state relative-caret-position="198">
539
+          <caret line="11" column="20" selection-start-line="11" selection-start-column="20" selection-end-line="11" selection-end-column="20" />
540
+          <folding>
541
+            <marker date="1480801665901" expanded="true" signature="6:46" ph="..." />
542
+            <marker date="1480801665901" expanded="true" signature="62:622" ph="{...}" />
543
+            <marker date="1480801665901" expanded="true" signature="87:620" ph="{...}" />
544
+            <marker date="1480801665901" expanded="true" signature="154:339" ph="{...}" />
545
+            <marker date="1480801665901" expanded="true" signature="410:614" ph="{...}" />
546
+          </folding>
547
+        </state>
548
+      </provider>
549
+    </entry>
550
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig">
551
+      <provider selected="true" editor-type-id="text-editor">
552
+        <state relative-caret-position="110">
553
+          <caret line="7" column="32" selection-start-line="7" selection-start-column="32" selection-end-line="7" selection-end-column="32" />
554
+          <folding />
555
+        </state>
556
+      </provider>
557
+    </entry>
558
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs">
559
+      <provider selected="true" editor-type-id="text-editor">
560
+        <state relative-caret-position="18">
561
+          <caret line="10" column="9" selection-start-line="10" selection-start-column="9" selection-end-line="10" selection-end-column="9" />
562
+          <folding>
563
+            <marker date="1480805029761" expanded="true" signature="6:76" ph="..." />
564
+            <marker date="1480805029761" expanded="true" signature="113:3088" ph="{...}" />
565
+            <marker date="1480805029761" expanded="true" signature="170:3086" ph="{...}" />
566
+            <marker date="1480805029761" expanded="true" signature="263:283" ph="{...}" />
567
+            <marker date="1480805029761" expanded="true" signature="342:412" ph="{...}" />
568
+            <marker date="1480805029761" expanded="true" signature="487:507" ph="{...}" />
569
+            <marker date="1480805029761" expanded="true" signature="594:734" ph="{...}" />
570
+            <marker date="1480805029761" expanded="true" signature="724:734" ph="{...}" />
571
+            <marker date="1480805029761" expanded="true" signature="810:2727" ph="{...}" />
572
+            <marker date="1480805029761" expanded="true" signature="2116:2727" ph="{...}" />
573
+          </folding>
574
+        </state>
575
+      </provider>
576
+    </entry>
577
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs">
578
+      <provider selected="true" editor-type-id="text-editor">
579
+        <state relative-caret-position="432">
580
+          <caret line="36" column="19" selection-start-line="36" selection-start-column="19" selection-end-line="36" selection-end-column="19" />
581
+          <folding>
582
+            <marker date="1480806229174" expanded="true" signature="6:142" ph="..." />
583
+            <marker date="1480806229174" expanded="true" signature="180:1443" ph="{...}" />
584
+            <marker date="1480806229174" expanded="true" signature="324:1441" ph="{...}" />
585
+            <marker date="1480806229174" expanded="true" signature="491:559" ph="{...}" />
586
+            <marker date="1480806229174" expanded="true" signature="622:840" ph="{...}" />
587
+            <marker date="1480806229174" expanded="true" signature="952:1434" ph="{...}" />
588
+          </folding>
589
+        </state>
590
+      </provider>
591
+    </entry>
592
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs">
593
+      <provider selected="true" editor-type-id="text-editor">
594
+        <state relative-caret-position="603">
595
+          <caret line="100" column="9" selection-start-line="100" selection-start-column="9" selection-end-line="100" selection-end-column="9" />
596
+          <folding>
597
+            <marker date="1480806573734" expanded="true" signature="6:161" ph="..." />
598
+            <marker date="1480806573734" expanded="true" signature="199:3418" ph="{...}" />
599
+            <marker date="1480806573734" expanded="true" signature="500:3416" ph="{...}" />
600
+            <marker date="1480806573734" expanded="true" signature="597:617" ph="{...}" />
601
+            <marker date="1480806573734" expanded="true" signature="920:1242" ph="{...}" />
602
+            <marker date="1480806573734" expanded="true" signature="1297:1553" ph="{...}" />
603
+            <marker date="1480806573734" expanded="true" signature="1613:1821" ph="{...}" />
604
+            <marker date="1480806573734" expanded="true" signature="1874:2130" ph="{...}" />
605
+            <marker date="1480806573734" expanded="true" signature="2188:2270" ph="{...}" />
606
+            <marker date="1480806573734" expanded="true" signature="2357:2761" ph="{...}" />
607
+            <marker date="1480806573734" expanded="true" signature="2987:3087" ph="{...}" />
608
+            <marker date="1480806573734" expanded="true" signature="3152:3252" ph="{...}" />
609
+            <marker date="1480806573734" expanded="true" signature="3310:3410" ph="{...}" />
610
+          </folding>
611
+        </state>
612
+      </provider>
613
+    </entry>
614
+    <entry file="file://$PROJECT_DIR$/../../Test/Auth/Groups/LuGroupsDataAccessTest.cs">
615
+      <provider selected="true" editor-type-id="text-editor">
616
+        <state relative-caret-position="549">
617
+          <caret line="69" column="9" selection-start-line="69" selection-start-column="9" selection-end-line="69" selection-end-column="9" />
331 618
           <folding>
332
-            <marker date="1480799184705" expanded="true" signature="0:553" ph="{...}" />
333
-            <marker date="1480799184705" expanded="true" signature="44:77" ph="{...}" />
334
-            <marker date="1480799184705" expanded="true" signature="97:258" ph="{...}" />
335
-            <marker date="1480799184705" expanded="true" signature="301:551" ph="{...}" />
336
-            <marker date="1480799184705" expanded="true" signature="324:547" ph="{...}" />
337
-            <marker date="1480799184705" expanded="true" signature="348:461" ph="{...}" />
338
-            <marker date="1480799184705" expanded="true" signature="383:453" ph="{...}" />
339
-            <marker date="1480799184705" expanded="true" signature="480:541" ph="[...]" />
619
+            <marker date="1480806619918" expanded="true" signature="6:207" ph="..." />
620
+            <marker date="1480806619918" expanded="true" signature="235:2400" ph="{...}" />
621
+            <marker date="1480806619918" expanded="true" signature="277:2398" ph="{...}" />
622
+            <marker date="1480806619918" expanded="true" signature="329:1000" ph="{...}" />
623
+            <marker date="1480806619918" expanded="true" signature="1048:1502" ph="{...}" />
624
+            <marker date="1480806619918" expanded="true" signature="1550:1940" ph="{...}" />
625
+            <marker date="1480806619918" expanded="true" signature="1988:2392" ph="{...}" />
340 626
           </folding>
341 627
         </state>
342 628
       </provider>

+ 38
- 4
Luticate2.Auth/DataAccess/LuDatabaseContext.cs View File

@@ -5,24 +5,57 @@ namespace Luticate2.Auth.DataAccess
5 5
 {
6 6
     public partial class LuDatabaseContext : DbContext
7 7
     {
8
+        private readonly string _connectionString;
9
+
10
+        public LuDatabaseContext()
11
+        {
12
+        }
13
+
14
+        public LuDatabaseContext(string connectionString)
15
+        {
16
+            _connectionString = connectionString;
17
+        }
18
+
8 19
         public LuDatabaseContext(DbContextOptions options) :base(options)
9 20
         {
10 21
         }
11 22
 
23
+        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
24
+        {
25
+            if (_connectionString != null) {
26
+                optionsBuilder.UseNpgsql(_connectionString);
27
+            }
28
+        }
29
+
12 30
         protected override void OnModelCreating(ModelBuilder modelBuilder)
13 31
         {
14 32
             
15 33
             modelBuilder.Entity<lu_authentication_sources>()
16 34
                 .HasKey(c => new { c.id });
17 35
             
36
+            modelBuilder.Entity<lu_authentication_sources>()
37
+                .Property(e => e.id)
38
+                .HasDefaultValueSql("get_uuid()");
39
+            
40
+            
18 41
             
19 42
             modelBuilder.Entity<lu_groups>()
20 43
                 .HasKey(c => new { c.id });
21 44
             
45
+            modelBuilder.Entity<lu_groups>()
46
+                .Property(e => e.id)
47
+                .HasDefaultValueSql("get_uuid()");
48
+            
49
+            
22 50
             
23 51
             modelBuilder.Entity<lu_users>()
24 52
                 .HasKey(c => new { c.id });
25 53
             
54
+            modelBuilder.Entity<lu_users>()
55
+                .Property(e => e.id)
56
+                .HasDefaultValueSql("get_uuid()");
57
+            
58
+            
26 59
             modelBuilder.Entity<lu_users>()
27 60
                 .HasOne(e => e.fk_lu_authentication_sources)
28 61
                 .WithMany(e => e.lu_users_fk)
@@ -33,6 +66,7 @@ namespace Luticate2.Auth.DataAccess
33 66
             modelBuilder.Entity<lu_verb_users_groups>()
34 67
                 .HasKey(c => new { c.user_id, c.group_id });
35 68
             
69
+            
36 70
             modelBuilder.Entity<lu_verb_users_groups>()
37 71
                 .HasOne(e => e.fk_lu_users)
38 72
                 .WithMany(e => e.lu_verb_users_groups_fk)
@@ -48,13 +82,13 @@ namespace Luticate2.Auth.DataAccess
48 82
             
49 83
         }
50 84
         
51
-        public DbSet<lu_authentication_sources> lu_authentication_sources { get; set; }
85
+        public virtual DbSet<lu_authentication_sources> lu_authentication_sources { get; set; }
52 86
         
53
-        public DbSet<lu_groups> lu_groups { get; set; }
87
+        public virtual DbSet<lu_groups> lu_groups { get; set; }
54 88
         
55
-        public DbSet<lu_users> lu_users { get; set; }
89
+        public virtual DbSet<lu_users> lu_users { get; set; }
56 90
         
57
-        public DbSet<lu_verb_users_groups> lu_verb_users_groups { get; set; }
91
+        public virtual DbSet<lu_verb_users_groups> lu_verb_users_groups { get; set; }
58 92
         
59 93
     }
60 94
 }

+ 1
- 1
Luticate2.Auth/DataAccess/Models/lu_authentication_sources.cs View File

@@ -18,7 +18,7 @@ namespace Luticate2.Auth.DataAccess.Models
18 18
         
19 19
         
20 20
         
21
-        public ICollection<lu_users> lu_users_fk { get; set; }
21
+        public virtual ICollection<lu_users> lu_users_fk { get; set; }
22 22
         
23 23
     }
24 24
 }

+ 1
- 1
Luticate2.Auth/DataAccess/Models/lu_groups.cs View File

@@ -14,7 +14,7 @@ namespace Luticate2.Auth.DataAccess.Models
14 14
         
15 15
         
16 16
         
17
-        public ICollection<lu_verb_users_groups> lu_verb_users_groups_fk { get; set; }
17
+        public virtual ICollection<lu_verb_users_groups> lu_verb_users_groups_fk { get; set; }
18 18
         
19 19
     }
20 20
 }

+ 2
- 2
Luticate2.Auth/DataAccess/Models/lu_users.cs View File

@@ -19,10 +19,10 @@ namespace Luticate2.Auth.DataAccess.Models
19 19
         public string salt { get; set; }
20 20
         
21 21
         
22
-        public lu_authentication_sources fk_lu_authentication_sources { get; set; }
22
+        public virtual lu_authentication_sources fk_lu_authentication_sources { get; set; }
23 23
         
24 24
         
25
-        public ICollection<lu_verb_users_groups> lu_verb_users_groups_fk { get; set; }
25
+        public virtual ICollection<lu_verb_users_groups> lu_verb_users_groups_fk { get; set; }
26 26
         
27 27
     }
28 28
 }

+ 2
- 2
Luticate2.Auth/DataAccess/Models/lu_verb_users_groups.cs View File

@@ -13,9 +13,9 @@ namespace Luticate2.Auth.DataAccess.Models
13 13
         public Guid group_id { get; set; }
14 14
         
15 15
         
16
-        public lu_users fk_lu_users { get; set; }
16
+        public virtual lu_users fk_lu_users { get; set; }
17 17
         
18
-        public lu_groups fk_lu_groups { get; set; }
18
+        public virtual lu_groups fk_lu_groups { get; set; }
19 19
         
20 20
         
21 21
     }

+ 24
- 1
Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig View File

@@ -5,15 +5,38 @@ namespace Luticate2.Auth.DataAccess
5 5
 {
6 6
     public partial class LuDatabaseContext : DbContext
7 7
     {
8
+        private readonly string _connectionString;
9
+
10
+        public LuDatabaseContext()
11
+        {
12
+        }
13
+
14
+        public LuDatabaseContext(string connectionString)
15
+        {
16
+            _connectionString = connectionString;
17
+        }
18
+
8 19
         public LuDatabaseContext(DbContextOptions options) :base(options)
9 20
         {
10 21
         }
11 22
 
23
+        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
24
+        {
25
+            if (_connectionString != null) {
26
+                optionsBuilder.UseNpgsql(_connectionString);
27
+            }
28
+        }
29
+
12 30
         protected override void OnModelCreating(ModelBuilder modelBuilder)
13 31
         {
14 32
             {% for table in dataSource.getTables() %}{% if (table.hasAny()) %}
15 33
             modelBuilder.Entity<{{ table.getName() }}>()
16 34
                 .HasKey(c => new { {% for column in table.getPrimaryKeys() %}{% if (column.isSelected()) %}c.{{ column.getName() }}{% if not (loop.last) %}, {% endif %}{% endif %}{% endfor %} });
35
+            {% for column in table.getPrimaryKeys() %}{% if (column.isSelected()) and (column.hasDefaultValue()) %}
36
+            modelBuilder.Entity<{{ table.getName() }}>()
37
+                .Property(e => e.{{ column.getName() }})
38
+                .HasDefaultValueSql("{{ column.getDefaultValueEscaped() }}");
39
+            {% endif %}{% endfor %}
17 40
             {% for fk in table.getSourceForeignKeys() %}
18 41
             modelBuilder.Entity<{{ fk.getSourceTable().getName() }}>()
19 42
                 .HasOne(e => e.{{ fk.getSourceForeignKeyName() }})
@@ -24,7 +47,7 @@ namespace Luticate2.Auth.DataAccess
24 47
             {% endif %}{% endfor %}
25 48
         }
26 49
         {% for table in dataSource.getTables() %}{% if (table.hasAny()) %}
27
-        public DbSet<{{ table.getName() }}> {{ table.getName() }} { get; set; }
50
+        public virtual DbSet<{{ table.getName() }}> {{ table.getName() }} { get; set; }
28 51
         {% endif %}{% endfor %}
29 52
     }
30 53
 }

+ 2
- 2
Luticate2.Auth/DataAccess/code-from-ds/Models.twig View File

@@ -11,10 +11,10 @@ namespace Luticate2.Auth.DataAccess.Models
11 11
         public {{ column.getType() }}{% if (not (column.isNotNull()) and (column.isTypeNotNull())) %}?{% endif %} {{ column.getName() }} { get; set; }
12 12
         {% endif %}{% endfor %}
13 13
         {% for fk in table.getSourceForeignKeys() %}{% if (fk.isSelected()) %}
14
-        public {{ fk.getTargetTable().getName() }} {{ fk.getSourceForeignKeyName() }} { get; set; }
14
+        public virtual {{ fk.getTargetTable().getName() }} {{ fk.getSourceForeignKeyName() }} { get; set; }
15 15
         {% endif %}{% endfor %}
16 16
         {% for fk in table.getTargetForeignKeys() %}{% if (fk.isSelected()) %}
17
-        public ICollection<{{ fk.getSourceTable().getName() }}> {{ fk.getTargetForeignKeyName() }} { get; set; }
17
+        public virtual ICollection<{{ fk.getSourceTable().getName() }}> {{ fk.getTargetForeignKeyName() }} { get; set; }
18 18
         {% endif %}{% endfor %}
19 19
     }
20 20
 }

+ 55
- 2
Luticate2.Utils/DataAccess/LuEfCrudDataAccess.cs View File

@@ -1,4 +1,6 @@
1 1
 using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
2 4
 using System.Linq.Expressions;
3 5
 using Luticate2.Utils.Dbo;
4 6
 using Microsoft.EntityFrameworkCore;
@@ -34,11 +36,29 @@ namespace Luticate2.Utils.DataAccess
34 36
             });
35 37
         }
36 38
 
37
-        public LuResult<string> AddId(TDboCreate obj)
39
+        public LuResult<Guid> AddGuid(TDboCreate obj)
38 40
         {
39 41
             var param = Expression.Parameter(typeof(TModel), "x");
40 42
             var exp = Expression.Property(param, "id");
41
-            var lambda = Expression.Lambda<Func<TModel, string>>(exp, param);
43
+            var lambda = Expression.Lambda<Func<TModel, Guid>>(exp, param);
44
+            return Add(obj, lambda);
45
+        }
46
+
47
+        public LuResult<string> AddGuidStr(TDboCreate obj)
48
+        {
49
+            var res = AddGuid(obj);
50
+            if (!res)
51
+            {
52
+                return res.To<string>();
53
+            }
54
+            return LuResult<string>.Ok(res.Data.ToString());
55
+        }
56
+
57
+        public LuResult<long> AddId(TDboCreate obj)
58
+        {
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);
42 62
             return Add(obj, lambda);
43 63
         }
44 64
 
@@ -46,5 +66,38 @@ namespace Luticate2.Utils.DataAccess
46 66
         {
47 67
             return Add(obj, model => GetDboFromModel(model));
48 68
         }
69
+
70
+        public LuResult<TDboRead> GetSingle(Expression<Func<TModel, bool>> predicate)
71
+        {
72
+            return Execute(() =>
73
+            {
74
+                var model = Table.FirstOrDefault(predicate);
75
+                if (model == null)
76
+                {
77
+                    return LuResult<TDboRead>.Error(LuStatus.NotFound, typeof(TModel).Name + ": Value not found", "");
78
+                }
79
+                return LuResult<TDboRead>.Ok(GetDboFromModel(model));
80
+            });
81
+        }
82
+
83
+        public LuResult<TDboRead> GetSingleByKeys(params KeyValuePair<string, object>[] keys)
84
+        {
85
+            return GetSingle(GetExpression(keys));
86
+        }
87
+
88
+        public LuResult<TDboRead> GetSingleByGuid(Guid id)
89
+        {
90
+            return GetSingleByKeys(new KeyValuePair<string, object>("id", id));
91
+        }
92
+
93
+        public LuResult<TDboRead> GetSingleByGuidStr(string id)
94
+        {
95
+            return GetSingleByGuid(new Guid(id));
96
+        }
97
+
98
+        public LuResult<TDboRead> GetSingleById(long id)
99
+        {
100
+            return GetSingleByKeys(new KeyValuePair<string, object>("id", id));
101
+        }
49 102
     }
50 103
 }

+ 15
- 0
Luticate2.Utils/DataAccess/LuEfDataAccess.cs View File

@@ -1,4 +1,6 @@
1 1
 using System;
2
+using System.Collections.Generic;
3
+using System.Linq.Expressions;
2 4
 using Luticate2.Utils.Dbo;
3 5
 using Microsoft.EntityFrameworkCore;
4 6
 
@@ -29,5 +31,18 @@ namespace Luticate2.Utils.DataAccess
29 31
                 return LuResult<T>.Error(LuStatus.DbError, e);
30 32
             }
31 33
         }
34
+
35
+        public static Expression<Func<TModel, bool>> GetExpression(params KeyValuePair<string, object>[] keys)
36
+        {
37
+            var param = Expression.Parameter(typeof(TModel), "x");
38
+            Expression totalExp = null;
39
+            foreach (var pair in keys)
40
+            {
41
+                var equalExp = Expression.Equal(Expression.Property(param, pair.Key), Expression.Constant(pair.Value));
42
+                totalExp = totalExp == null ? equalExp : Expression.And(equalExp, totalExp);
43
+            }
44
+            return Expression.Lambda<Func<TModel, bool>>(totalExp, param);
45
+        }
46
+
32 47
     }
33 48
 }

+ 8
- 1
Luticate2.Utils/Dbo/LuResult.cs View File

@@ -45,7 +45,14 @@ namespace Luticate2.Utils.Dbo
45 45
 
46 46
         public static LuResult<T> Error(LuStatus status, Exception e, string publicDetails = null)
47 47
         {
48
-            return Error(status, e.ToString(), publicDetails);
48
+            return new LuResult<T>
49
+            {
50
+                PublicDetails = publicDetails,
51
+                PrivateDetails = e.ToString(),
52
+                StackTrace = new Exception().StackTrace,
53
+                Exception = e,
54
+                Status = status
55
+            };
49 56
         }
50 57
 
51 58
         public static LuResult<T> Error<T2>(LuResult<T2> other)

+ 85
- 0
Test/Auth/Groups/LuGroupsDataAccessTest.cs View File

@@ -0,0 +1,85 @@
1
+using System;
2
+using Luticate2.Auth.DataAccess;
3
+using Luticate2.Auth.DataAccess.Models;
4
+using Luticate2.Auth.Dbo.Groups;
5
+using Luticate2.Utils.Dbo;
6
+using Microsoft.EntityFrameworkCore;
7
+using Moq;
8
+using Xunit;
9
+
10
+namespace Test.Auth.Groups
11
+{
12
+    public class LuGroupsDataAccessTest
13
+    {
14
+        [Fact]
15
+        public void TestMock()
16
+        {
17
+            var mockSet = new Mock<DbSet<lu_groups>>();
18
+
19
+            var mockContext = new Mock<LuDatabaseContext>();
20
+            mockContext.Setup(m => m.lu_groups).Returns(mockSet.Object);
21
+
22
+            var service = new LuGroupsDataAccess(mockContext.Object);
23
+            var res = service.AddDbo(new LuGroupsAddDbo {Name = "Test."});
24
+            Assert.Equal(LuStatus.Success, res.Status);
25
+            Assert.Equal(new Guid().ToString(), res.Data.Id);
26
+            Assert.Equal("Test.", res.Data.Name);
27
+
28
+            mockSet.Verify(m => m.Add(It.IsAny<lu_groups>()), Times.Once());
29
+            mockContext.Verify(m => m.SaveChanges(), Times.Once());
30
+        }
31
+
32
+        [Fact]
33
+        public void TestReal1()
34
+        {
35
+            Tests.TestRealDb(context =>
36
+            {
37
+                const string name = "Test.";
38
+                var service = new LuGroupsDataAccess(context);
39
+                var res = service.AddDbo(new LuGroupsAddDbo {Name = name});
40
+                Assert.Equal(LuStatus.Success, res.Status);
41
+                Assert.NotEqual(new Guid().ToString(), res.Data.Id);
42
+                Assert.Equal(name, res.Data.Name);
43
+
44
+                var get = service.GetSingleByGuidStr(res.Data.Id);
45
+                Assert.Equal(LuStatus.Success, get.Status);
46
+                Assert.Equal(name, get.Data.Name);
47
+                Assert.Equal(res.Data.Id, get.Data.Id);
48
+            });
49
+        }
50
+
51
+        [Fact]
52
+        public void TestReal2()
53
+        {
54
+            Tests.TestRealDb(context =>
55
+            {
56
+                const string name = "Test.";
57
+                var service = new LuGroupsDataAccess(context);
58
+                var res = service.AddGuid(new LuGroupsAddDbo {Name = name});
59
+                Assert.Equal(LuStatus.Success, res.Status);
60
+                Assert.NotEqual(new Guid(), res.Data);
61
+
62
+                var get = service.GetSingleByGuid(res.Data);
63
+                Assert.Equal(LuStatus.Success, get.Status);
64
+                Assert.Equal(name, get.Data.Name);
65
+            });
66
+        }
67
+
68
+        [Fact]
69
+        public void TestReal3()
70
+        {
71
+            Tests.TestRealDb(context =>
72
+            {
73
+                const string name = "Test.";
74
+                var service = new LuGroupsDataAccess(context);
75
+                var res = service.AddGuidStr(new LuGroupsAddDbo {Name = name});
76
+                Assert.Equal(LuStatus.Success, res.Status);
77
+                Assert.NotEqual(new Guid().ToString(), res.Data);
78
+
79
+                var get = service.GetSingleByGuidStr(res.Data);
80
+                Assert.Equal(LuStatus.Success, get.Status);
81
+                Assert.Equal(name, get.Data.Name);
82
+            });
83
+        }
84
+    }
85
+}

+ 13
- 4
Test/Tests.cs View File

@@ -1,14 +1,23 @@
1 1
 using System;
2
-using Xunit;
2
+using Luticate2.Auth.DataAccess;
3 3
 
4 4
 namespace Test
5 5
 {
6 6
     public class Tests
7 7
     {
8
-        [Fact]
9
-        public void Test1()
8
+        public static LuDatabaseContext GetDataBaseContext()
10 9
         {
11
-            Assert.True(true);
10
+            return
11
+                new LuDatabaseContext(
12
+                    "User ID=dev;Password=dev;Host=localhost;Port=5432;Database=luticate2;Pooling=true;");
13
+        }
14
+
15
+        public static void TestRealDb(Action<LuDatabaseContext> func)
16
+        {
17
+            var dbContext = GetDataBaseContext();
18
+            dbContext.Database.BeginTransaction();
19
+            func(dbContext);
20
+            dbContext.Database.RollbackTransaction();
12 21
         }
13 22
     }
14 23
 }

+ 5
- 4
Test/project.json View File

@@ -1,13 +1,14 @@
1
-{
1
+{
2 2
   "version": "1.0.0-*",
3 3
   "buildOptions": {
4 4
     "debugType": "portable"
5 5
   },
6 6
   "dependencies": {
7
+    "dotnet-test-xunit": "1.0.0-rc2-192208-24",
7 8
     "Luticate2.Auth": "1.0.*",
9
+    "Moq": "4.6.38-alpha",
8 10
     "System.Runtime.Serialization.Primitives": "4.1.1",
9
-    "xunit": "2.1.0",
10
-    "dotnet-test-xunit": "1.0.0-rc2-192208-24"
11
+    "xunit": "2.1.0"
11 12
   },
12 13
   "testRunner": "xunit",
13 14
   "frameworks": {
@@ -24,4 +25,4 @@
24 25
       ]
25 26
     }
26 27
   }
27
-}
28
+}

+ 267
- 2
Test/project.lock.json View File

@@ -3,6 +3,40 @@
3 3
   "version": 2,
4 4
   "targets": {
5 5
     ".NETCoreApp,Version=v1.0": {
6
+      "Castle.Core/4.0.0-beta001": {
7
+        "type": "package",
8
+        "dependencies": {
9
+          "System.AppContext": "4.1.0",
10
+          "System.Collections.Specialized": "4.0.1",
11
+          "System.ComponentModel.TypeConverter": "4.0.1",
12
+          "System.Console": "4.0.0",
13
+          "System.Diagnostics.Debug": "4.0.11",
14
+          "System.Diagnostics.Tools": "4.0.1",
15
+          "System.Diagnostics.TraceSource": "4.0.0",
16
+          "System.Dynamic.Runtime": "4.0.11",
17
+          "System.Globalization": "4.0.11",
18
+          "System.IO.FileSystem": "4.0.1",
19
+          "System.Linq": "4.1.0",
20
+          "System.ObjectModel": "4.0.12",
21
+          "System.Reflection": "4.1.0",
22
+          "System.Reflection.Emit": "4.0.1",
23
+          "System.Reflection.Emit.Lightweight": "4.0.1",
24
+          "System.Reflection.Extensions": "4.0.1",
25
+          "System.Reflection.TypeExtensions": "4.1.0",
26
+          "System.Resources.ResourceManager": "4.0.1",
27
+          "System.Runtime.Extensions": "4.1.0",
28
+          "System.Runtime.InteropServices": "4.1.0",
29
+          "System.Threading": "4.0.11",
30
+          "System.Xml.XmlDocument": "4.0.1",
31
+          "System.Xml.XmlSerializer": "4.0.11"
32
+        },
33
+        "compile": {
34
+          "lib/netstandard1.3/Castle.Core.dll": {}
35
+        },
36
+        "runtime": {
37
+          "lib/netstandard1.3/Castle.Core.dll": {}
38
+        }
39
+      },
6 40
       "dotnet-test-xunit/1.0.0-rc2-build10015": {
7 41
         "type": "package",
8 42
         "dependencies": {
@@ -1246,6 +1280,38 @@
1246 1280
           }
1247 1281
         }
1248 1282
       },
1283
+      "Moq/4.6.38-alpha": {
1284
+        "type": "package",
1285
+        "dependencies": {
1286
+          "Castle.Core": "4.0.0-beta001",
1287
+          "System.Collections": "4.0.11",
1288
+          "System.Collections.Concurrent": "4.0.12",
1289
+          "System.Diagnostics.Debug": "4.0.11",
1290
+          "System.Diagnostics.Tools": "4.0.1",
1291
+          "System.Globalization": "4.0.11",
1292
+          "System.Linq": "4.1.0",
1293
+          "System.Linq.Expressions": "4.1.0",
1294
+          "System.Linq.Queryable": "4.0.1",
1295
+          "System.Reflection": "4.1.0",
1296
+          "System.Reflection.Emit": "4.0.1",
1297
+          "System.Reflection.Emit.ILGeneration": "4.0.1",
1298
+          "System.Reflection.Extensions": "4.0.1",
1299
+          "System.Reflection.Primitives": "4.0.1",
1300
+          "System.Reflection.TypeExtensions": "4.1.0",
1301
+          "System.Resources.ResourceManager": "4.0.1",
1302
+          "System.Runtime": "4.1.0",
1303
+          "System.Runtime.Extensions": "4.1.0",
1304
+          "System.Text.RegularExpressions": "4.1.0",
1305
+          "System.Threading": "4.0.11",
1306
+          "System.Threading.Tasks": "4.0.11"
1307
+        },
1308
+        "compile": {
1309
+          "lib/netstandard1.3/Moq.dll": {}
1310
+        },
1311
+        "runtime": {
1312
+          "lib/netstandard1.3/Moq.dll": {}
1313
+        }
1314
+      },
1249 1315
       "NETStandard.Library/1.6.1": {
1250 1316
         "type": "package",
1251 1317
         "dependencies": {
@@ -1809,7 +1875,7 @@
1809 1875
           "System.Threading": "4.0.11"
1810 1876
         },
1811 1877
         "compile": {
1812
-          "ref/netstandard1.3/_._": {}
1878
+          "ref/netstandard1.3/System.Collections.Specialized.dll": {}
1813 1879
         },
1814 1880
         "runtime": {
1815 1881
           "lib/netstandard1.3/System.Collections.Specialized.dll": {}
@@ -2064,6 +2130,33 @@
2064 2130
           "lib/portable-net45+win8+wp8+wpa81/_._": {}
2065 2131
         }
2066 2132
       },
2133
+      "System.Diagnostics.TraceSource/4.0.0": {
2134
+        "type": "package",
2135
+        "dependencies": {
2136
+          "Microsoft.NETCore.Platforms": "1.0.1",
2137
+          "System.Collections": "4.0.11",
2138
+          "System.Diagnostics.Debug": "4.0.11",
2139
+          "System.Globalization": "4.0.11",
2140
+          "System.Resources.ResourceManager": "4.0.1",
2141
+          "System.Runtime": "4.1.0",
2142
+          "System.Runtime.Extensions": "4.1.0",
2143
+          "System.Threading": "4.0.11",
2144
+          "runtime.native.System": "4.0.0"
2145
+        },
2146
+        "compile": {
2147
+          "ref/netstandard1.3/System.Diagnostics.TraceSource.dll": {}
2148
+        },
2149
+        "runtimeTargets": {
2150
+          "runtimes/unix/lib/netstandard1.3/System.Diagnostics.TraceSource.dll": {
2151
+            "assetType": "runtime",
2152
+            "rid": "unix"
2153
+          },
2154
+          "runtimes/win/lib/netstandard1.3/System.Diagnostics.TraceSource.dll": {
2155
+            "assetType": "runtime",
2156
+            "rid": "win"
2157
+          }
2158
+        }
2159
+      },
2067 2160
       "System.Diagnostics.Tracing/4.3.0": {
2068 2161
         "type": "package",
2069 2162
         "dependencies": {
@@ -3636,12 +3729,40 @@
3636 3729
           "System.Xml.ReaderWriter": "4.0.11"
3637 3730
         },
3638 3731
         "compile": {
3639
-          "ref/netstandard1.3/_._": {}
3732
+          "ref/netstandard1.3/System.Xml.XmlDocument.dll": {}
3640 3733
         },
3641 3734
         "runtime": {
3642 3735
           "lib/netstandard1.3/System.Xml.XmlDocument.dll": {}
3643 3736
         }
3644 3737
       },
3738
+      "System.Xml.XmlSerializer/4.0.11": {
3739
+        "type": "package",
3740
+        "dependencies": {
3741
+          "System.Collections": "4.0.11",
3742
+          "System.Globalization": "4.0.11",
3743
+          "System.IO": "4.1.0",
3744
+          "System.Linq": "4.1.0",
3745
+          "System.Reflection": "4.1.0",
3746
+          "System.Reflection.Emit": "4.0.1",
3747
+          "System.Reflection.Emit.ILGeneration": "4.0.1",
3748
+          "System.Reflection.Extensions": "4.0.1",
3749
+          "System.Reflection.Primitives": "4.0.1",
3750
+          "System.Reflection.TypeExtensions": "4.1.0",
3751
+          "System.Resources.ResourceManager": "4.0.1",
3752
+          "System.Runtime": "4.1.0",
3753
+          "System.Runtime.Extensions": "4.1.0",
3754
+          "System.Text.RegularExpressions": "4.1.0",
3755
+          "System.Threading": "4.0.11",
3756
+          "System.Xml.ReaderWriter": "4.0.11",
3757
+          "System.Xml.XmlDocument": "4.0.1"
3758
+        },
3759
+        "compile": {
3760
+          "ref/netstandard1.3/System.Xml.XmlSerializer.dll": {}
3761
+        },
3762
+        "runtime": {
3763
+          "lib/netstandard1.3/System.Xml.XmlSerializer.dll": {}
3764
+        }
3765
+      },
3645 3766
       "System.Xml.XPath/4.0.1": {
3646 3767
         "type": "package",
3647 3768
         "dependencies": {
@@ -3857,6 +3978,28 @@
3857 3978
     }
3858 3979
   },
3859 3980
   "libraries": {
3981
+    "Castle.Core/4.0.0-beta001": {
3982
+      "sha512": "AhlzkJEGZddWgUj2Vub2h2p171eETkQzymd4ZSgcxQBZaxgsFSJjQ7I6fLs86nS39+xxsZR3eXaH86DWVrfurA==",
3983
+      "type": "package",
3984
+      "path": "castle.core/4.0.0-beta001",
3985
+      "files": [
3986
+        "ASL - Apache Software Foundation License.txt",
3987
+        "BreakingChanges.txt",
3988
+        "Changes.txt",
3989
+        "License.txt",
3990
+        "castle.core.4.0.0-beta001.nupkg.sha512",
3991
+        "castle.core.nuspec",
3992
+        "lib/net35/Castle.Core.dll",
3993
+        "lib/net35/Castle.Core.xml",
3994
+        "lib/net40-client/Castle.Core.dll",
3995
+        "lib/net40-client/Castle.Core.xml",
3996
+        "lib/net45/Castle.Core.dll",
3997
+        "lib/net45/Castle.Core.xml",
3998
+        "lib/netstandard1.3/Castle.Core.dll",
3999
+        "lib/netstandard1.3/Castle.Core.xml",
4000
+        "readme.txt"
4001
+      ]
4002
+    },
3860 4003
     "dotnet-test-xunit/1.0.0-rc2-build10015": {
3861 4004
       "sha512": "2traZWYeJiFzau+1j9HcnSZ3rQLDyIrqKyYKCTbPPmu6lsQAtaOG5q+fuKS9Vaxczmh0IcvZ2hdWEuYmtVb9zw==",
3862 4005
       "type": "package",
@@ -4930,6 +5073,19 @@
4930 5073
         "runtimes/win/lib/netstandard1.3/Microsoft.Win32.Registry.dll"
4931 5074
       ]
4932 5075
     },
5076
+    "Moq/4.6.38-alpha": {
5077
+      "sha512": "avMAfImICo7K8kkSqZDnwS7qvwyyNzNDQQFtnsI4CxAgi+ESOLFr1j5ucAE2hGoG1k5A0B1+3zfNYhHkozW1EA==",
5078
+      "type": "package",
5079
+      "path": "moq/4.6.38-alpha",
5080
+      "files": [
5081
+        "lib/net45/Moq.dll",
5082
+        "lib/net45/Moq.xml",
5083
+        "lib/netstandard1.3/Moq.dll",
5084
+        "lib/netstandard1.3/Moq.xml",
5085
+        "moq.4.6.38-alpha.nupkg.sha512",
5086
+        "moq.nuspec"
5087
+      ]
5088
+    },
4933 5089
     "NETStandard.Library/1.6.1": {
4934 5090
       "sha512": "xKGn5Y57yyimfRm6sKI2Yg/ZJ7oGcvR9+lpfZZI6StFCJqhS8JdRkT+qTZOTl37Trh7rLN5X5qFgbOfAlbPQrQ==",
4935 5091
       "type": "package",
@@ -6242,6 +6398,45 @@
6242 6398
         "ref/xamarinwatchos10/_._"
6243 6399
       ]
6244 6400
     },
6401
+    "System.Diagnostics.TraceSource/4.0.0": {
6402
+      "sha512": "6WVCczFZKXwpWpzd/iJkYnsmWTSFFiU24Xx/YdHXBcu+nFI/ehTgeqdJQFbtRPzbrO3KtRNjvkhtj4t5/WwWsA==",
6403
+      "type": "package",
6404
+      "path": "system.diagnostics.tracesource/4.0.0",
6405
+      "files": [
6406
+        "ThirdPartyNotices.txt",
6407
+        "dotnet_library_license.txt",
6408
+        "lib/MonoAndroid10/_._",
6409
+        "lib/MonoTouch10/_._",
6410
+        "lib/net46/System.Diagnostics.TraceSource.dll",
6411
+        "lib/xamarinios10/_._",
6412
+        "lib/xamarinmac20/_._",
6413
+        "lib/xamarintvos10/_._",
6414
+        "lib/xamarinwatchos10/_._",
6415
+        "ref/MonoAndroid10/_._",
6416
+        "ref/MonoTouch10/_._",
6417
+        "ref/net46/System.Diagnostics.TraceSource.dll",
6418
+        "ref/netstandard1.3/System.Diagnostics.TraceSource.dll",
6419
+        "ref/netstandard1.3/System.Diagnostics.TraceSource.xml",
6420
+        "ref/netstandard1.3/de/System.Diagnostics.TraceSource.xml",
6421
+        "ref/netstandard1.3/es/System.Diagnostics.TraceSource.xml",
6422
+        "ref/netstandard1.3/fr/System.Diagnostics.TraceSource.xml",
6423
+        "ref/netstandard1.3/it/System.Diagnostics.TraceSource.xml",
6424
+        "ref/netstandard1.3/ja/System.Diagnostics.TraceSource.xml",
6425
+        "ref/netstandard1.3/ko/System.Diagnostics.TraceSource.xml",
6426
+        "ref/netstandard1.3/ru/System.Diagnostics.TraceSource.xml",
6427
+        "ref/netstandard1.3/zh-hans/System.Diagnostics.TraceSource.xml",
6428
+        "ref/netstandard1.3/zh-hant/System.Diagnostics.TraceSource.xml",
6429
+        "ref/xamarinios10/_._",
6430
+        "ref/xamarinmac20/_._",
6431
+        "ref/xamarintvos10/_._",
6432
+        "ref/xamarinwatchos10/_._",
6433
+        "runtimes/unix/lib/netstandard1.3/System.Diagnostics.TraceSource.dll",
6434
+        "runtimes/win/lib/net46/System.Diagnostics.TraceSource.dll",
6435
+        "runtimes/win/lib/netstandard1.3/System.Diagnostics.TraceSource.dll",
6436
+        "system.diagnostics.tracesource.4.0.0.nupkg.sha512",
6437
+        "system.diagnostics.tracesource.nuspec"
6438
+      ]
6439
+    },
6245 6440
     "System.Diagnostics.Tracing/4.3.0": {
6246 6441
       "sha512": "i7hxQeTRMSYS9CMuWyldbzRkVpIy0VOZVwGkzuhF4NK3y3xd6zr97o0+q1VJ7xDNSa/h1ytwP7N2hd82IqRmLQ==",
6247 6442
       "type": "package",
@@ -9932,6 +10127,75 @@
9932 10127
         "ref/xamarinwatchos10/_._"
9933 10128
       ]
9934 10129
     },
10130
+    "System.Xml.XmlSerializer/4.0.11": {
10131
+      "sha512": "FrazwwqfIXTfq23mfv4zH+BjqkSFNaNFBtjzu3I9NRmG8EELYyrv/fJnttCIwRMFRR/YKXF1hmsMmMEnl55HGw==",
10132
+      "type": "package",
10133
+      "path": "system.xml.xmlserializer/4.0.11",
10134
+      "files": [
10135
+        "ThirdPartyNotices.txt",
10136
+        "dotnet_library_license.txt",
10137
+        "lib/MonoAndroid10/_._",
10138
+        "lib/MonoTouch10/_._",
10139
+        "lib/net45/_._",
10140
+        "lib/netcore50/System.Xml.XmlSerializer.dll",
10141
+        "lib/netstandard1.3/System.Xml.XmlSerializer.dll",
10142
+        "lib/portable-net45+win8+wp8+wpa81/_._",
10143
+        "lib/win8/_._",
10144
+        "lib/wp80/_._",
10145
+        "lib/wpa81/_._",
10146
+        "lib/xamarinios10/_._",
10147
+        "lib/xamarinmac20/_._",
10148
+        "lib/xamarintvos10/_._",
10149
+        "lib/xamarinwatchos10/_._",
10150
+        "ref/MonoAndroid10/_._",
10151
+        "ref/MonoTouch10/_._",
10152
+        "ref/net45/_._",
10153
+        "ref/netcore50/System.Xml.XmlSerializer.dll",
10154
+        "ref/netcore50/System.Xml.XmlSerializer.xml",
10155
+        "ref/netcore50/de/System.Xml.XmlSerializer.xml",
10156
+        "ref/netcore50/es/System.Xml.XmlSerializer.xml",
10157
+        "ref/netcore50/fr/System.Xml.XmlSerializer.xml",
10158
+        "ref/netcore50/it/System.Xml.XmlSerializer.xml",
10159
+        "ref/netcore50/ja/System.Xml.XmlSerializer.xml",
10160
+        "ref/netcore50/ko/System.Xml.XmlSerializer.xml",
10161
+        "ref/netcore50/ru/System.Xml.XmlSerializer.xml",
10162
+        "ref/netcore50/zh-hans/System.Xml.XmlSerializer.xml",
10163
+        "ref/netcore50/zh-hant/System.Xml.XmlSerializer.xml",
10164
+        "ref/netstandard1.0/System.Xml.XmlSerializer.dll",
10165
+        "ref/netstandard1.0/System.Xml.XmlSerializer.xml",
10166
+        "ref/netstandard1.0/de/System.Xml.XmlSerializer.xml",
10167
+        "ref/netstandard1.0/es/System.Xml.XmlSerializer.xml",
10168
+        "ref/netstandard1.0/fr/System.Xml.XmlSerializer.xml",
10169
+        "ref/netstandard1.0/it/System.Xml.XmlSerializer.xml",
10170
+        "ref/netstandard1.0/ja/System.Xml.XmlSerializer.xml",
10171
+        "ref/netstandard1.0/ko/System.Xml.XmlSerializer.xml",
10172
+        "ref/netstandard1.0/ru/System.Xml.XmlSerializer.xml",
10173
+        "ref/netstandard1.0/zh-hans/System.Xml.XmlSerializer.xml",
10174
+        "ref/netstandard1.0/zh-hant/System.Xml.XmlSerializer.xml",
10175
+        "ref/netstandard1.3/System.Xml.XmlSerializer.dll",
10176
+        "ref/netstandard1.3/System.Xml.XmlSerializer.xml",
10177
+        "ref/netstandard1.3/de/System.Xml.XmlSerializer.xml",
10178
+        "ref/netstandard1.3/es/System.Xml.XmlSerializer.xml",
10179
+        "ref/netstandard1.3/fr/System.Xml.XmlSerializer.xml",
10180
+        "ref/netstandard1.3/it/System.Xml.XmlSerializer.xml",
10181
+        "ref/netstandard1.3/ja/System.Xml.XmlSerializer.xml",
10182
+        "ref/netstandard1.3/ko/System.Xml.XmlSerializer.xml",
10183
+        "ref/netstandard1.3/ru/System.Xml.XmlSerializer.xml",
10184
+        "ref/netstandard1.3/zh-hans/System.Xml.XmlSerializer.xml",
10185
+        "ref/netstandard1.3/zh-hant/System.Xml.XmlSerializer.xml",
10186
+        "ref/portable-net45+win8+wp8+wpa81/_._",
10187
+        "ref/win8/_._",
10188
+        "ref/wp80/_._",
10189
+        "ref/wpa81/_._",
10190
+        "ref/xamarinios10/_._",
10191
+        "ref/xamarinmac20/_._",
10192
+        "ref/xamarintvos10/_._",
10193
+        "ref/xamarinwatchos10/_._",
10194
+        "runtimes/aot/lib/netcore50/System.Xml.XmlSerializer.dll",
10195
+        "system.xml.xmlserializer.4.0.11.nupkg.sha512",
10196
+        "system.xml.xmlserializer.nuspec"
10197
+      ]
10198
+    },
9935 10199
     "System.Xml.XPath/4.0.1": {
9936 10200
       "sha512": "fNMrSYKz66pOCUqBLLmd3sBXCULopHsu78uU1NgMHn/SOMpXdYyIbfY+ed8O7WgzNrPDoxXXS5qxPDWagBBYWw==",
9937 10201
       "type": "package",
@@ -10170,6 +10434,7 @@
10170 10434
   "projectFileDependencyGroups": {
10171 10435
     "": [
10172 10436
       "Luticate2.Auth >= 1.0.*",
10437
+      "Moq >= 4.6.38-alpha",
10173 10438
       "System.Runtime.Serialization.Primitives >= 4.1.1",
10174 10439
       "dotnet-test-xunit >= 1.0.0-rc2-192208-24",
10175 10440
       "xunit >= 2.1.0"

Loading…
Cancel
Save