Robin Thoni преди 8 години
ревизия
981b9aa98f
променени са 53 файла, в които са добавени 29986 реда и са изтрити 0 реда
  1. 47
    0
      .gitignore
  2. 1
    0
      .idea/.idea.luticate2/.idea/.name
  3. 435
    0
      .idea/.idea.luticate2/.idea/dataSources.ids
  4. 11
    0
      .idea/.idea.luticate2/.idea/dataSources.local.xml
  5. 11
    0
      .idea/.idea.luticate2/.idea/dataSources.xml
  6. 8
    0
      .idea/.idea.luticate2/.idea/modules.xml
  7. 731
    0
      .idea/.idea.luticate2/.idea/workspace.xml
  8. 18
    0
      .idea/.idea.luticate2/riderModule.iml
  9. 20
    0
      Luticate2.Auth/Business/LuGroupsBusiness.cs
  10. 22
    0
      Luticate2.Auth/Controllers/LuGroupsController.cs
  11. 35
    0
      Luticate2.Auth/Controllers/LuticateExtensions.cs
  12. 60
    0
      Luticate2.Auth/DataAccess/LuDatabaseContext.cs
  13. 24
    0
      Luticate2.Auth/DataAccess/LuGroupsDataAccess.cs
  14. 24
    0
      Luticate2.Auth/DataAccess/Models/lu_authentication_sources.cs
  15. 20
    0
      Luticate2.Auth/DataAccess/Models/lu_groups.cs
  16. 28
    0
      Luticate2.Auth/DataAccess/Models/lu_users.cs
  17. 22
    0
      Luticate2.Auth/DataAccess/Models/lu_verb_users_groups.cs
  18. 30
    0
      Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig
  19. 20
    0
      Luticate2.Auth/DataAccess/code-from-ds/Models.twig
  20. 85
    0
      Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json
  21. 69
    0
      Luticate2.Auth/DataAccess/code-from-ds/types-cast.json
  22. 9
    0
      Luticate2.Auth/Dbo/Groups/LuGroupAddDbo.cs
  23. 11
    0
      Luticate2.Auth/Dbo/Groups/LuGroupDbo.cs
  24. 9
    0
      Luticate2.Auth/Dbo/Users/UsersDbo.cs
  25. 22
    0
      Luticate2.Auth/Luticate2.Auth.xproj
  26. 20
    0
      Luticate2.Auth/Middlewares/LuAuthMiddleware.cs
  27. 26
    0
      Luticate2.Auth/Properties/AssemblyInfo.cs
  28. 17
    0
      Luticate2.Auth/project.json
  29. 9461
    0
      Luticate2.Auth/project.lock.json
  30. 7
    0
      Luticate2.Utils/Business/LuBusiness.cs
  31. 11
    0
      Luticate2.Utils/Class1.cs
  32. 15
    0
      Luticate2.Utils/Controllers/LuController.cs
  33. 15
    0
      Luticate2.Utils/DataAccess/LuCrudDataAccess.cs
  34. 6
    0
      Luticate2.Utils/DataAccess/LuDataAccess.cs
  35. 35
    0
      Luticate2.Utils/DataAccess/LuEfDataAccess.cs
  36. 7
    0
      Luticate2.Utils/Dbo/LuBoxedValueDbo.cs
  37. 7
    0
      Luticate2.Utils/Dbo/LuDbo.cs
  38. 7
    0
      Luticate2.Utils/Dbo/LuPaginatedDbo.cs
  39. 73
    0
      Luticate2.Utils/Dbo/LuResult.cs
  40. 13
    0
      Luticate2.Utils/Dbo/LuStatus.cs
  41. 22
    0
      Luticate2.Utils/Luticate2.Utils.xproj
  42. 26
    0
      Luticate2.Utils/Properties/AssemblyInfo.cs
  43. 21
    0
      Luticate2.Utils/project.json
  44. 7867
    0
      Luticate2.Utils/project.lock.json
  45. 25
    0
      WebTest/Program.cs
  46. 26
    0
      WebTest/Properties/AssemblyInfo.cs
  47. 59
    0
      WebTest/Startup.cs
  48. 22
    0
      WebTest/WebTest.xproj
  49. 10
    0
      WebTest/appsettings.json
  50. 55
    0
      WebTest/project.json
  51. 10313
    0
      WebTest/project.lock.json
  52. 14
    0
      WebTest/web.config
  53. 34
    0
      luticate2.sln

+ 47
- 0
.gitignore Целия файл

@@ -0,0 +1,47 @@
1
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
2
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
3
+
4
+# User-specific stuff:
5
+.idea/workspace.xml
6
+.idea/tasks.xml
7
+
8
+# Sensitive or high-churn files:
9
+.idea/dataSources/
10
+.idea/dataSources.ids
11
+.idea/dataSources.xml
12
+.idea/dataSources.local.xml
13
+.idea/sqlDataSources.xml
14
+.idea/dynamic.xml
15
+.idea/uiDesigner.xml
16
+
17
+# Gradle:
18
+.idea/gradle.xml
19
+.idea/libraries
20
+
21
+# Mongo Explorer plugin:
22
+.idea/mongoSettings.xml
23
+
24
+## File-based project format:
25
+*.iws
26
+
27
+## Plugin-specific files:
28
+
29
+# IntelliJ
30
+/out/
31
+
32
+# mpeltonen/sbt-idea plugin
33
+.idea_modules/
34
+
35
+# JIRA plugin
36
+atlassian-ide-plugin.xml
37
+
38
+# Crashlytics plugin (for Android Studio and IntelliJ)
39
+com_crashlytics_export_strings.xml
40
+crashlytics.properties
41
+crashlytics-build.properties
42
+fabric.properties
43
+
44
+bin
45
+obj
46
+*.dll
47
+*.pdb

+ 1
- 0
.idea/.idea.luticate2/.idea/.name Целия файл

@@ -0,0 +1 @@
1
+luticate2

+ 435
- 0
.idea/.idea.luticate2/.idea/dataSources.ids Целия файл

@@ -0,0 +1,435 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<component name="dataSourceStorage">
3
+  <data-source name="luticate2" uuid="59db5cb3-1384-48b4-b150-098bb18d4efe">
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-02.17:02:12.419</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 Целия файл

@@ -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="59db5cb3-1384-48b4-b150-098bb18d4efe">
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 Целия файл

@@ -0,0 +1,11 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="DataSourceManagerImpl" format="xml" hash="3248011970">
4
+    <data-source source="LOCAL" name="luticate2" uuid="59db5cb3-1384-48b4-b150-098bb18d4efe">
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>

+ 8
- 0
.idea/.idea.luticate2/.idea/modules.xml Целия файл

@@ -0,0 +1,8 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ProjectModuleManager">
4
+    <modules>
5
+      <module fileurl="file://$PROJECT_DIR$/riderModule.iml" filepath="$PROJECT_DIR$/riderModule.iml" />
6
+    </modules>
7
+  </component>
8
+</project>

+ 731
- 0
.idea/.idea.luticate2/.idea/workspace.xml Целия файл

@@ -0,0 +1,731 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<project version="4">
3
+  <component name="ChangeListManager">
4
+    <list default="true" id="29a7ee47-c356-4fa2-8bc0-0b8016a1599b" name="Default" comment="" />
5
+    <ignored path="luticate2.iws" />
6
+    <ignored path=".idea/workspace.xml" />
7
+    <ignored path=".idea/dataSources.local.xml" />
8
+    <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
9
+    <option name="TRACKING_ENABLED" value="true" />
10
+    <option name="SHOW_DIALOG" value="false" />
11
+    <option name="HIGHLIGHT_CONFLICTS" value="true" />
12
+    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
13
+    <option name="LAST_RESOLUTION" value="IGNORE" />
14
+  </component>
15
+  <component name="CreatePatchCommitExecutor">
16
+    <option name="PATCH_PATH" value="" />
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>
26
+  <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
27
+  <component name="FavoritesManager">
28
+    <favorites_list name="luticate2" />
29
+  </component>
30
+  <component name="FileEditorManager">
31
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
32
+      <file leaf-file-name="LuController.cs" pinned="false" current-in-tab="false">
33
+        <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Controllers/LuController.cs">
34
+          <provider selected="true" editor-type-id="text-editor">
35
+            <state relative-caret-position="108">
36
+              <caret line="6" column="41" selection-start-line="6" selection-start-column="41" selection-end-line="6" selection-end-column="41" />
37
+              <folding>
38
+                <marker date="1480745606818" expanded="true" signature="6:116" ph="..." />
39
+                <marker date="1480745606818" expanded="true" signature="155:500" ph="{...}" />
40
+                <marker date="1480745606818" expanded="true" signature="209:498" ph="{...}" />
41
+              </folding>
42
+            </state>
43
+          </provider>
44
+        </entry>
45
+      </file>
46
+      <file leaf-file-name="project.json" pinned="false" current-in-tab="false">
47
+        <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/project.json">
48
+          <provider selected="true" editor-type-id="text-editor">
49
+            <state relative-caret-position="90">
50
+              <caret line="5" column="21" selection-start-line="5" selection-start-column="21" selection-end-line="5" selection-end-column="21" />
51
+              <folding>
52
+                <marker date="1480746033050" expanded="true" signature="0:595" ph="{...}" />
53
+                <marker date="1480746033050" expanded="true" signature="46:85" ph="{...}" />
54
+                <marker date="1480746033050" expanded="true" signature="107:423" ph="{...}" />
55
+                <marker date="1480746033050" expanded="true" signature="443:593" ph="{...}" />
56
+                <marker date="1480746033050" expanded="true" signature="470:587" ph="{...}" />
57
+                <marker date="1480746033050" expanded="true" signature="495:577" ph="[...]" />
58
+                <marker date="1480746033050" expanded="true" signature="590:593" ph="{...}" />
59
+              </folding>
60
+            </state>
61
+          </provider>
62
+        </entry>
63
+      </file>
64
+      <file leaf-file-name="project.json" pinned="false" current-in-tab="false">
65
+        <entry file="file://$PROJECT_DIR$/../../WebTest/project.json">
66
+          <provider selected="true" editor-type-id="text-editor">
67
+            <state relative-caret-position="0">
68
+              <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
69
+              <folding>
70
+                <marker date="1480746052534" expanded="true" signature="0:1749" ph="{...}" />
71
+                <marker date="1480746052534" expanded="true" signature="22:886" ph="{...}" />
72
+                <marker date="1480746052534" expanded="true" signature="806:880" ph="{...}" />
73
+                <marker date="1480746052534" expanded="true" signature="901:991" ph="{...}" />
74
+                <marker date="1480746052534" expanded="true" signature="1011:1161" ph="{...}" />
75
+                <marker date="1480746052534" expanded="true" signature="1038:1155" ph="{...}" />
76
+                <marker date="1480746052534" expanded="true" signature="1063:1145" ph="[...]" />
77
+                <marker date="1480746052534" expanded="true" signature="1183:1298" ph="{...}" />
78
+                <marker date="1480746052534" expanded="true" signature="1322:1406" ph="{...}" />
79
+                <marker date="1480746052534" expanded="true" signature="1352:1400" ph="{...}" />
80
+                <marker date="1480746052534" expanded="true" signature="1430:1575" ph="{...}" />
81
+                <marker date="1480746052534" expanded="true" signature="1451:1569" ph="[...]" />
82
+                <marker date="1480746052534" expanded="true" signature="1592:1747" ph="{...}" />
83
+                <marker date="1480746052534" expanded="true" signature="1617:1741" ph="[...]" />
84
+              </folding>
85
+            </state>
86
+          </provider>
87
+        </entry>
88
+      </file>
89
+      <file leaf-file-name="LuticateExtensions.cs" pinned="false" current-in-tab="true">
90
+        <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Controllers/LuticateExtensions.cs">
91
+          <provider selected="true" editor-type-id="text-editor">
92
+            <state relative-caret-position="162">
93
+              <caret line="9" column="5" selection-start-line="9" selection-start-column="5" selection-end-line="9" selection-end-column="5" />
94
+              <folding>
95
+                <marker date="1480746365318" expanded="true" signature="6:181" ph="..." />
96
+                <marker date="1480746365318" expanded="true" signature="219:1075" ph="{...}" />
97
+                <marker date="1480746365318" expanded="true" signature="264:1073" ph="{...}" />
98
+                <marker date="1480746365318" expanded="true" signature="357:633" ph="{...}" />
99
+                <marker date="1480746365318" expanded="true" signature="706:887" ph="{...}" />
100
+                <marker date="1480746365318" expanded="true" signature="717:849" ph="/* builder.AddApplicationPart(typeof(LuController).GetTypeInfo().Assembly) ... */" />
101
+                <marker date="1480746365318" expanded="true" signature="972:1067" ph="{...}" />
102
+              </folding>
103
+            </state>
104
+          </provider>
105
+        </entry>
106
+      </file>
107
+      <file leaf-file-name="project.json" pinned="false" current-in-tab="false">
108
+        <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/project.json">
109
+          <provider selected="true" editor-type-id="text-editor">
110
+            <state relative-caret-position="0">
111
+              <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
112
+              <folding>
113
+                <marker date="1480745331422" expanded="true" signature="0:321" ph="{...}" />
114
+                <marker date="1480745331422" expanded="true" signature="46:85" ph="{...}" />
115
+                <marker date="1480745331422" expanded="true" signature="107:149" ph="{...}" />
116
+                <marker date="1480745331422" expanded="true" signature="169:319" ph="{...}" />
117
+                <marker date="1480745331422" expanded="true" signature="196:313" ph="{...}" />
118
+                <marker date="1480745331422" expanded="true" signature="221:303" ph="[...]" />
119
+              </folding>
120
+            </state>
121
+          </provider>
122
+        </entry>
123
+      </file>
124
+    </leaf>
125
+  </component>
126
+  <component name="IdeDocumentHistory">
127
+    <option name="CHANGED_PATHS">
128
+      <list>
129
+        <option value="$PROJECT_DIR$/../../luticate2/DataAccess/Utils/LuDataAccess.cs" />
130
+        <option value="$PROJECT_DIR$/../../luticate2/Business/LuBusiness.cs" />
131
+        <option value="$PROJECT_DIR$/../../luticate2/DataAccess/Utils/LuCrudDataAccess.cs" />
132
+        <option value="$PROJECT_DIR$/../../luticate2/DBO/LuPaginatedDbo.cs" />
133
+        <option value="$PROJECT_DIR$/../../luticate2/DBO/LuBoxedValueDbo.cs" />
134
+        <option value="$PROJECT_DIR$/../../luticate2/DBO/Utils/LuPaginatedDbo.cs" />
135
+        <option value="$PROJECT_DIR$/../../luticate2/DBO/Utils/LuBoxedValueDbo.cs" />
136
+        <option value="$PROJECT_DIR$/../../luticate2/DBO/Utils/LuDbo.cs" />
137
+        <option value="$PROJECT_DIR$/../../luticate2/DBO/Utils/LuResult.cs" />
138
+        <option value="$PROJECT_DIR$/../../luticate2/DataAccess/Utils/LuEfDataAccess.cs" />
139
+        <option value="$PROJECT_DIR$/../../luticate2.utils/Class1.cs" />
140
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/Business/LuBusiness.cs" />
141
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/Models.twig" />
142
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/Utils/LuCrudDataAccess.cs" />
143
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/Utils/LuDataAccess.cs" />
144
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DBO/Users/UsersDbo.cs" />
145
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DBO/Utils/LuBoxedValueDbo.cs" />
146
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DBO/Utils/LuDbo.cs" />
147
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DBO/Utils/LuPaginatedDbo.cs" />
148
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DBO/Utils/LuResult.cs" />
149
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DBO/Utils/LuStatus.cs" />
150
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/Middlewares/LuAuthMiddleware.cs" />
151
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/Utils/LuEfDataAccess.cs" />
152
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DBO/Groups/LuGroupAddDbo.cs" />
153
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DBO/Groups/LuGroupDbo.cs" />
154
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/Controllers/LuController.cs" />
155
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs" />
156
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig" />
157
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Business/LuBusiness.cs" />
158
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/Business/LuGroupsBusiness.cs" />
159
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/Controllers/LuGroupsController.cs" />
160
+        <option value="$PROJECT_DIR$/../../WebTest/Startup.cs" />
161
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuCrudDataAccess.cs" />
162
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuDataAccess.cs" />
163
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuBoxedValueDbo.cs" />
164
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuDbo.cs" />
165
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuPaginatedDbo.cs" />
166
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuResult.cs" />
167
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuStatus.cs" />
168
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs" />
169
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuGroupsDataAccess.cs" />
170
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Users/UsersDbo.cs" />
171
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Groups/LuGroupAddDbo.cs" />
172
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Groups/LuGroupDbo.cs" />
173
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/project.json" />
174
+        <option value="$PROJECT_DIR$/../../Test/project.json" />
175
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/Controllers/LuController.cs" />
176
+        <option value="$USER_HOME$/.config/NuGet/NuGet.Config" />
177
+        <option value="$PROJECT_DIR$/../../Luticate2.Utils/project.json" />
178
+        <option value="$PROJECT_DIR$/../../WebTest/project.json" />
179
+        <option value="$PROJECT_DIR$/../../Luticate2.Auth/Controllers/LuticateExtensions.cs" />
180
+      </list>
181
+    </option>
182
+  </component>
183
+  <component name="ProjectFrameBounds">
184
+    <option name="width" value="1920" />
185
+    <option name="height" value="1061" />
186
+  </component>
187
+  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
188
+    <OptionsSetting value="true" id="Add" />
189
+    <OptionsSetting value="true" id="Remove" />
190
+    <OptionsSetting value="true" id="Checkout" />
191
+    <OptionsSetting value="true" id="Update" />
192
+    <OptionsSetting value="true" id="Status" />
193
+    <OptionsSetting value="true" id="Edit" />
194
+    <ConfirmationsSetting value="0" id="Add" />
195
+    <ConfirmationsSetting value="0" id="Remove" />
196
+  </component>
197
+  <component name="ProjectView">
198
+    <navigator currentView="SolutionExplorer" proportions="" version="1">
199
+      <flattenPackages />
200
+      <showMembers />
201
+      <showModules />
202
+      <showLibraryContents />
203
+      <hideEmptyPackages />
204
+      <abbreviatePackageNames />
205
+      <autoscrollToSource />
206
+      <autoscrollFromSource />
207
+      <sortByType />
208
+      <manualOrder />
209
+      <foldersAlwaysOnTop value="true" />
210
+    </navigator>
211
+    <panes>
212
+      <pane id="SolutionExplorer">
213
+        <subPane>
214
+          <PATH>
215
+            <PATH_ELEMENT>
216
+              <option name="myItemId" />
217
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
218
+            </PATH_ELEMENT>
219
+            <PATH_ELEMENT>
220
+              <option name="myItemId" value="luticate2 (3 projects)" />
221
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
222
+            </PATH_ELEMENT>
223
+          </PATH>
224
+        </subPane>
225
+        <option name="show-file-system" value="false" />
226
+        <option name="show-all-items" value="false" />
227
+      </pane>
228
+    </panes>
229
+  </component>
230
+  <component name="PropertiesComponent">
231
+    <property name="settings.editor.selected.configurable" value="preferences.pluginManager" />
232
+    <property name="settings.editor.splitter.proportion" value="0.2" />
233
+    <property name="com.intellij.database.dataSource.DataSourceTemplate" value="PostgreSQL" />
234
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/../../luticate2/DataAccess/Models/lu_authentication_sources.cs" />
235
+    <property name="restartRequiresConfirmation" value="false" />
236
+    <property name="RiderNuGetCacheManager.AutoClear.http-cache" value="2" />
237
+    <property name="RiderNuGetCacheManager.AutoClear.packages-cache" value="2" />
238
+    <property name="RiderNuGetCacheManager.AutoClear.global-packages" value="2" />
239
+    <property name="RiderNuGetCacheManager.AutoClear.temp" value="1" />
240
+  </component>
241
+  <component name="RunManager" selected=".NET Project.WebTest">
242
+    <configuration default="false" name="WebTest" type="DotNetProject" factoryName=".NET Project" temporary="true">
243
+      <option name="PROJECT_PATH" value="$PROJECT_DIR$/../../WebTest/WebTest.xproj" />
244
+      <option name="PROJECT_KIND" value="DotNetCore" />
245
+      <option name="PROJECT_TFM" value=".NETCoreApp,Version=v1.0" />
246
+      <option name="EXE_PATH" value="$PROJECT_DIR$/../../WebTest/bin/Debug/netcoreapp1.0/WebTest.dll" />
247
+      <option name="PROGRAM_PARAMETERS" value="" />
248
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/../../WebTest" />
249
+      <option name="USE_MONO" value="0" />
250
+      <option name="USE_EXTERNAL_CONSOLE" value="0" />
251
+      <envs />
252
+      <method />
253
+    </configuration>
254
+    <configuration default="true" type="DotNetProject" factoryName=".NET Project">
255
+      <option name="PROJECT_PATH" value="" />
256
+      <option name="PROJECT_KIND" value="None" />
257
+      <option name="PROJECT_TFM" value="" />
258
+      <option name="EXE_PATH" value="" />
259
+      <option name="PROGRAM_PARAMETERS" value="" />
260
+      <option name="WORKING_DIRECTORY" value="" />
261
+      <option name="USE_MONO" value="0" />
262
+      <option name="USE_EXTERNAL_CONSOLE" value="0" />
263
+      <envs />
264
+      <method />
265
+    </configuration>
266
+    <configuration default="false" name="Default" type="DotNetProject" factoryName=".NET Project">
267
+      <option name="PROJECT_PATH" value="$PROJECT_DIR$/../../WebTest/WebTest.xproj" />
268
+      <option name="PROJECT_KIND" value="DotNetCore" />
269
+      <option name="PROJECT_TFM" value=".NETCoreApp,Version=v1.0" />
270
+      <option name="EXE_PATH" value="$PROJECT_DIR$/../../WebTest/bin/Debug/netcoreapp1.0/WebTest.dll" />
271
+      <option name="PROGRAM_PARAMETERS" value="" />
272
+      <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/../../WebTest" />
273
+      <option name="USE_MONO" value="0" />
274
+      <option name="USE_EXTERNAL_CONSOLE" value="0" />
275
+      <envs>
276
+        <env name="ASPNETCORE_ENVIRONMENT" value="Production" />
277
+        <env name="ASPNETCORE_URLS" value="http://localhost:5000" />
278
+      </envs>
279
+      <method />
280
+    </configuration>
281
+    <list size="2">
282
+      <item index="0" class="java.lang.String" itemvalue=".NET Project.Default" />
283
+      <item index="1" class="java.lang.String" itemvalue=".NET Project.WebTest" />
284
+    </list>
285
+    <recent_temporary>
286
+      <list size="1">
287
+        <item index="0" class="java.lang.String" itemvalue=".NET Project.WebTest" />
288
+      </list>
289
+    </recent_temporary>
290
+  </component>
291
+  <component name="ShelveChangesManager" show_recycled="false">
292
+    <option name="remove_strategy" value="false" />
293
+  </component>
294
+  <component name="SvnConfiguration">
295
+    <configuration />
296
+  </component>
297
+  <component name="TaskManager">
298
+    <task active="true" id="Default" summary="Default task">
299
+      <changelist id="29a7ee47-c356-4fa2-8bc0-0b8016a1599b" name="Default" comment="" />
300
+      <created>1480649084253</created>
301
+      <option name="number" value="Default" />
302
+      <option name="presentableId" value="Default" />
303
+      <updated>1480649084253</updated>
304
+      <workItem from="1480649085345" duration="3930000" />
305
+      <workItem from="1480707654346" duration="2176000" />
306
+      <workItem from="1480713234459" duration="3897000" />
307
+      <workItem from="1480717989935" duration="3474000" />
308
+      <workItem from="1480721491679" duration="15378000" />
309
+      <workItem from="1480742492777" duration="492000" />
310
+      <workItem from="1480743008504" duration="740000" />
311
+      <workItem from="1480743790268" duration="536000" />
312
+      <workItem from="1480744345048" duration="1306000" />
313
+      <workItem from="1480745670176" duration="858000" />
314
+    </task>
315
+    <servers />
316
+  </component>
317
+  <component name="TimeTrackingManager">
318
+    <option name="totallyTimeSpent" value="32787000" />
319
+  </component>
320
+  <component name="TodoView">
321
+    <todo-panel id="selected-file">
322
+      <is-autoscroll-to-source value="true" />
323
+    </todo-panel>
324
+    <todo-panel id="all">
325
+      <are-packages-shown value="true" />
326
+      <is-autoscroll-to-source value="true" />
327
+    </todo-panel>
328
+  </component>
329
+  <component name="ToolWindowManager">
330
+    <frame x="0" y="0" width="1920" height="1061" extended-state="0" />
331
+    <editor active="false" />
332
+    <layout>
333
+      <window_info id="TODO" 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="6" side_tool="false" content_ui="tabs" />
334
+      <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" />
335
+      <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.32954547" sideWeight="0.5151357" order="7" side_tool="true" content_ui="tabs" />
336
+      <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" />
337
+      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.23140496" sideWeight="0.49425888" order="2" side_tool="false" content_ui="tabs" />
338
+      <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.49582464" order="9" side_tool="false" content_ui="tabs" />
339
+      <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.21177685" sideWeight="0.4874739" order="10" side_tool="false" content_ui="tabs" />
340
+      <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.513048" order="13" side_tool="false" content_ui="tabs" />
341
+      <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="11" side_tool="true" content_ui="tabs" />
342
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.16231732" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
343
+      <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.4848643" order="12" side_tool="false" content_ui="tabs" />
344
+      <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.17014614" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
345
+      <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" />
346
+      <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" />
347
+      <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.49686846" order="3" side_tool="false" content_ui="tabs" />
348
+      <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" />
349
+      <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" />
350
+      <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" />
351
+      <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" />
352
+      <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" />
353
+      <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" />
354
+    </layout>
355
+  </component>
356
+  <component name="VcsContentAnnotationSettings">
357
+    <option name="myLimit" value="2678400000" />
358
+  </component>
359
+  <component name="XDebuggerManager">
360
+    <breakpoint-manager>
361
+      <option name="time" value="3" />
362
+    </breakpoint-manager>
363
+    <watches-manager />
364
+  </component>
365
+  <component name="editorHistoryManager">
366
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs">
367
+      <provider selected="true" editor-type-id="text-editor">
368
+        <state relative-caret-position="0">
369
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
370
+        </state>
371
+      </provider>
372
+    </entry>
373
+    <entry file="file://$PROJECT_DIR$/../../luticate2/project.json" />
374
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Controllers/LuController.cs">
375
+      <provider selected="true" editor-type-id="text-editor">
376
+        <state relative-caret-position="216">
377
+          <caret line="12" column="74" selection-start-line="12" selection-start-column="74" selection-end-line="12" selection-end-column="74" />
378
+        </state>
379
+      </provider>
380
+    </entry>
381
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Business/LuBusiness.cs">
382
+      <provider selected="true" editor-type-id="text-editor">
383
+        <state relative-caret-position="72">
384
+          <caret line="4" column="0" selection-start-line="4" selection-start-column="0" selection-end-line="4" selection-end-column="0" />
385
+        </state>
386
+      </provider>
387
+    </entry>
388
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuDataAccess.cs">
389
+      <provider selected="true" editor-type-id="text-editor">
390
+        <state relative-caret-position="0">
391
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
392
+        </state>
393
+      </provider>
394
+    </entry>
395
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs">
396
+      <provider selected="true" editor-type-id="text-editor">
397
+        <state relative-caret-position="72">
398
+          <caret line="4" column="34" selection-start-line="4" selection-start-column="17" selection-end-line="4" selection-end-column="34" />
399
+        </state>
400
+      </provider>
401
+    </entry>
402
+    <entry file="file://$PROJECT_DIR$/../../luticate2/Class1.cs" />
403
+    <entry file="file://$APPLICATION_CONFIG_DIR$/consoles/db/59db5cb3-1384-48b4-b150-098bb18d4efe/console.sql">
404
+      <provider selected="true" editor-type-id="text-editor">
405
+        <state relative-caret-position="0">
406
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
407
+        </state>
408
+      </provider>
409
+    </entry>
410
+    <entry file="file://$PROJECT_DIR$/../../Test1/Tests.cs" />
411
+    <entry file="file://$PROJECT_DIR$/../../luticate2/Properties/AssemblyInfo.cs" />
412
+    <entry file="file://$PROJECT_DIR$/../../WebTest/Controllers/HomeController.cs" />
413
+    <entry file="file://$PROJECT_DIR$/../../WebTest/Program.cs">
414
+      <provider selected="true" editor-type-id="text-editor">
415
+        <state relative-caret-position="288">
416
+          <caret line="16" column="49" selection-start-line="16" selection-start-column="49" selection-end-line="16" selection-end-column="49" />
417
+        </state>
418
+      </provider>
419
+    </entry>
420
+    <entry file="file://$PROJECT_DIR$/../../WebTest/Controllers/ValuesController.cs" />
421
+    <entry file="file://$PROJECT_DIR$/../../Test/Tests.cs">
422
+      <provider selected="true" editor-type-id="text-editor">
423
+        <state relative-caret-position="126">
424
+          <caret line="7" column="5" selection-start-line="7" selection-start-column="5" selection-end-line="12" selection-end-column="9" />
425
+        </state>
426
+      </provider>
427
+    </entry>
428
+    <entry file="file://$USER_HOME$/.local/share/JetBrains/Shared/v07/DecompilerCache/decompiler/A11FB02B-10E0-4F88-8311-3B5389CC1B4F/82/2e06f111/DbSet`1.cs">
429
+      <provider selected="true" editor-type-id="text-editor">
430
+        <state relative-caret-position="288">
431
+          <caret line="16" column="10" selection-start-line="16" selection-start-column="10" selection-end-line="16" selection-end-column="39" />
432
+        </state>
433
+      </provider>
434
+    </entry>
435
+    <entry file="file://$USER_HOME$/.local/share/JetBrains/Shared/v07/DecompilerCache/decompiler/840DEC66-09A9-43BA-92B5-EA8E4D456014/41/0880009c/Exception.cs">
436
+      <provider selected="true" editor-type-id="text-editor">
437
+        <state relative-caret-position="333">
438
+          <caret line="95" column="34" selection-start-line="95" selection-start-column="34" selection-end-line="95" selection-end-column="34" />
439
+        </state>
440
+      </provider>
441
+    </entry>
442
+    <entry file="file://$PROJECT_DIR$/../../luticate2.utils/Class1.cs" />
443
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Class1.cs">
444
+      <provider selected="true" editor-type-id="text-editor">
445
+        <state relative-caret-position="0">
446
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
447
+        </state>
448
+      </provider>
449
+    </entry>
450
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Class1.cs" />
451
+    <entry file="file://$PROJECT_DIR$/../../luticate2/project.json" />
452
+    <entry file="file://$PROJECT_DIR$/../../Test/DataAccess/LuGroupDataAccessTest.cs">
453
+      <provider selected="true" editor-type-id="text-editor">
454
+        <state relative-caret-position="342">
455
+          <caret line="19" column="24" selection-start-line="19" selection-start-column="24" selection-end-line="19" selection-end-column="24" />
456
+        </state>
457
+      </provider>
458
+    </entry>
459
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json">
460
+      <provider selected="true" editor-type-id="text-editor">
461
+        <state relative-caret-position="0">
462
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
463
+        </state>
464
+      </provider>
465
+    </entry>
466
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/types-cast.json">
467
+      <provider selected="true" editor-type-id="text-editor">
468
+        <state relative-caret-position="0">
469
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
470
+        </state>
471
+      </provider>
472
+    </entry>
473
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/Models.twig">
474
+      <provider selected="true" editor-type-id="text-editor">
475
+        <state relative-caret-position="0">
476
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
477
+        </state>
478
+      </provider>
479
+    </entry>
480
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/Models/lu_authentication_sources.cs">
481
+      <provider selected="true" editor-type-id="text-editor">
482
+        <state relative-caret-position="0">
483
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
484
+        </state>
485
+      </provider>
486
+    </entry>
487
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Middlewares/LuAuthMiddleware.cs">
488
+      <provider selected="true" editor-type-id="text-editor">
489
+        <state relative-caret-position="54">
490
+          <caret line="3" column="24" selection-start-line="3" selection-start-column="24" selection-end-line="3" selection-end-column="24" />
491
+        </state>
492
+      </provider>
493
+    </entry>
494
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Business/LuBusiness.cs">
495
+      <provider selected="true" editor-type-id="text-editor">
496
+        <state relative-caret-position="0">
497
+          <caret line="0" column="25" selection-start-line="0" selection-start-column="20" selection-end-line="0" selection-end-column="25" />
498
+        </state>
499
+      </provider>
500
+    </entry>
501
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs">
502
+      <provider selected="true" editor-type-id="text-editor">
503
+        <state relative-caret-position="0">
504
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="6" />
505
+        </state>
506
+      </provider>
507
+    </entry>
508
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig">
509
+      <provider selected="true" editor-type-id="text-editor">
510
+        <state relative-caret-position="18">
511
+          <caret line="1" column="39" selection-start-line="1" selection-start-column="39" selection-end-line="1" selection-end-column="39" />
512
+        </state>
513
+      </provider>
514
+    </entry>
515
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Business/LuGroupsBusiness.cs">
516
+      <provider selected="true" editor-type-id="text-editor">
517
+        <state relative-caret-position="90">
518
+          <caret line="5" column="36" selection-start-line="5" selection-start-column="36" selection-end-line="5" selection-end-column="36" />
519
+        </state>
520
+      </provider>
521
+    </entry>
522
+    <entry file="file://$PROJECT_DIR$/../../WebTest/Startup.cs">
523
+      <provider selected="true" editor-type-id="text-editor">
524
+        <state relative-caret-position="0">
525
+          <caret line="0" column="20" selection-start-line="0" selection-start-column="20" selection-end-line="0" selection-end-column="20" />
526
+        </state>
527
+      </provider>
528
+    </entry>
529
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuCrudDataAccess.cs">
530
+      <provider selected="true" editor-type-id="text-editor">
531
+        <state relative-caret-position="0">
532
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
533
+        </state>
534
+      </provider>
535
+    </entry>
536
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuDataAccess.cs">
537
+      <provider selected="true" editor-type-id="text-editor">
538
+        <state relative-caret-position="0">
539
+          <caret line="0" column="36" selection-start-line="0" selection-start-column="36" selection-end-line="0" selection-end-column="36" />
540
+        </state>
541
+      </provider>
542
+    </entry>
543
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuResult.cs">
544
+      <provider selected="true" editor-type-id="text-editor">
545
+        <state relative-caret-position="0">
546
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
547
+          <folding>
548
+            <marker date="1480744486114" expanded="true" signature="75:1944" ph="{...}" />
549
+            <marker date="1480744486114" expanded="true" signature="454:474" ph="{...}" />
550
+            <marker date="1480744486114" expanded="true" signature="520:732" ph="{...}" />
551
+            <marker date="1480744486114" expanded="true" signature="578:721" ph="{...}" />
552
+            <marker date="1480744486114" expanded="true" signature="842:1150" ph="{...}" />
553
+            <marker date="1480744486114" expanded="true" signature="900:1139" ph="{...}" />
554
+            <marker date="1480744486114" expanded="true" signature="1250:1333" ph="{...}" />
555
+            <marker date="1480744486114" expanded="true" signature="1398:1720" ph="{...}" />
556
+            <marker date="1480744486114" expanded="true" signature="1456:1709" ph="{...}" />
557
+            <marker date="1480744486114" expanded="true" signature="1758:1823" ph="{...}" />
558
+            <marker date="1480744486114" expanded="true" signature="1886:1938" ph="{...}" />
559
+          </folding>
560
+        </state>
561
+      </provider>
562
+    </entry>
563
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuBoxedValueDbo.cs">
564
+      <provider selected="true" editor-type-id="text-editor">
565
+        <state relative-caret-position="54">
566
+          <caret line="3" column="5" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="5" />
567
+        </state>
568
+      </provider>
569
+    </entry>
570
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuDbo.cs">
571
+      <provider selected="true" editor-type-id="text-editor">
572
+        <state relative-caret-position="0">
573
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
574
+        </state>
575
+      </provider>
576
+    </entry>
577
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuPaginatedDbo.cs">
578
+      <provider selected="true" editor-type-id="text-editor">
579
+        <state relative-caret-position="0">
580
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
581
+        </state>
582
+      </provider>
583
+    </entry>
584
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Dbo/LuStatus.cs">
585
+      <provider selected="true" editor-type-id="text-editor">
586
+        <state relative-caret-position="0">
587
+          <caret line="0" column="29" selection-start-line="0" selection-start-column="29" selection-end-line="0" selection-end-column="29" />
588
+        </state>
589
+      </provider>
590
+    </entry>
591
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/DataAccess/LuEfDataAccess.cs">
592
+      <provider selected="true" editor-type-id="text-editor">
593
+        <state relative-caret-position="295">
594
+          <caret line="22" column="15" selection-start-line="22" selection-start-column="15" selection-end-line="22" selection-end-column="15" />
595
+        </state>
596
+      </provider>
597
+    </entry>
598
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/DataAccess/LuGroupsDataAccess.cs">
599
+      <provider selected="true" editor-type-id="text-editor">
600
+        <state relative-caret-position="72">
601
+          <caret line="4" column="38" selection-start-line="4" selection-start-column="38" selection-end-line="4" selection-end-column="38" />
602
+        </state>
603
+      </provider>
604
+    </entry>
605
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Groups/LuGroupAddDbo.cs">
606
+      <provider selected="true" editor-type-id="text-editor">
607
+        <state relative-caret-position="72">
608
+          <caret line="4" column="33" selection-start-line="4" selection-start-column="33" selection-end-line="4" selection-end-column="33" />
609
+        </state>
610
+      </provider>
611
+    </entry>
612
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Groups/LuGroupDbo.cs">
613
+      <provider selected="true" editor-type-id="text-editor">
614
+        <state relative-caret-position="72">
615
+          <caret line="4" column="30" selection-start-line="4" selection-start-column="30" selection-end-line="4" selection-end-column="30" />
616
+        </state>
617
+      </provider>
618
+    </entry>
619
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Dbo/Users/UsersDbo.cs">
620
+      <provider selected="true" editor-type-id="text-editor">
621
+        <state relative-caret-position="72">
622
+          <caret line="4" column="28" selection-start-line="4" selection-start-column="28" selection-end-line="4" selection-end-column="28" />
623
+        </state>
624
+      </provider>
625
+    </entry>
626
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Controllers/LuGroupsController.cs">
627
+      <provider selected="true" editor-type-id="text-editor">
628
+        <state relative-caret-position="108">
629
+          <caret line="6" column="5" selection-start-line="6" selection-start-column="5" selection-end-line="6" selection-end-column="5" />
630
+        </state>
631
+      </provider>
632
+    </entry>
633
+    <entry file="file://$PROJECT_DIR$/../../Test/project.json">
634
+      <provider selected="true" editor-type-id="text-editor">
635
+        <state relative-caret-position="252">
636
+          <caret line="14" column="44" selection-start-line="14" selection-start-column="44" selection-end-line="14" selection-end-column="44" />
637
+        </state>
638
+      </provider>
639
+    </entry>
640
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/Controllers/LuController.cs">
641
+      <provider selected="true" editor-type-id="text-editor">
642
+        <state relative-caret-position="108">
643
+          <caret line="6" column="41" selection-start-line="6" selection-start-column="41" selection-end-line="6" selection-end-column="41" />
644
+          <folding>
645
+            <marker date="1480745606818" expanded="true" signature="6:116" ph="..." />
646
+            <marker date="1480745606818" expanded="true" signature="155:500" ph="{...}" />
647
+            <marker date="1480745606818" expanded="true" signature="209:498" ph="{...}" />
648
+          </folding>
649
+        </state>
650
+      </provider>
651
+    </entry>
652
+    <entry file="file://$USER_HOME$/.config/NuGet/NuGet.Config">
653
+      <provider selected="true" editor-type-id="text-editor">
654
+        <state relative-caret-position="54">
655
+          <caret line="3" column="91" selection-start-line="3" selection-start-column="91" selection-end-line="3" selection-end-column="91" />
656
+          <folding />
657
+        </state>
658
+      </provider>
659
+    </entry>
660
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/project.json">
661
+      <provider selected="true" editor-type-id="text-editor">
662
+        <state relative-caret-position="0">
663
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
664
+          <folding>
665
+            <marker date="1480745331422" expanded="true" signature="0:321" ph="{...}" />
666
+            <marker date="1480745331422" expanded="true" signature="46:85" ph="{...}" />
667
+            <marker date="1480745331422" expanded="true" signature="107:149" ph="{...}" />
668
+            <marker date="1480745331422" expanded="true" signature="169:319" ph="{...}" />
669
+            <marker date="1480745331422" expanded="true" signature="196:313" ph="{...}" />
670
+            <marker date="1480745331422" expanded="true" signature="221:303" ph="[...]" />
671
+          </folding>
672
+        </state>
673
+      </provider>
674
+    </entry>
675
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Utils/project.json">
676
+      <provider selected="true" editor-type-id="text-editor">
677
+        <state relative-caret-position="90">
678
+          <caret line="5" column="21" selection-start-line="5" selection-start-column="21" selection-end-line="5" selection-end-column="21" />
679
+          <folding>
680
+            <marker date="1480746033050" expanded="true" signature="0:595" ph="{...}" />
681
+            <marker date="1480746033050" expanded="true" signature="46:85" ph="{...}" />
682
+            <marker date="1480746033050" expanded="true" signature="107:423" ph="{...}" />
683
+            <marker date="1480746033050" expanded="true" signature="443:593" ph="{...}" />
684
+            <marker date="1480746033050" expanded="true" signature="470:587" ph="{...}" />
685
+            <marker date="1480746033050" expanded="true" signature="495:577" ph="[...]" />
686
+            <marker date="1480746033050" expanded="true" signature="590:593" ph="{...}" />
687
+          </folding>
688
+        </state>
689
+      </provider>
690
+    </entry>
691
+    <entry file="file://$PROJECT_DIR$/../../WebTest/project.json">
692
+      <provider selected="true" editor-type-id="text-editor">
693
+        <state relative-caret-position="0">
694
+          <caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
695
+          <folding>
696
+            <marker date="1480746052534" expanded="true" signature="0:1749" ph="{...}" />
697
+            <marker date="1480746052534" expanded="true" signature="22:886" ph="{...}" />
698
+            <marker date="1480746052534" expanded="true" signature="806:880" ph="{...}" />
699
+            <marker date="1480746052534" expanded="true" signature="901:991" ph="{...}" />
700
+            <marker date="1480746052534" expanded="true" signature="1011:1161" ph="{...}" />
701
+            <marker date="1480746052534" expanded="true" signature="1038:1155" ph="{...}" />
702
+            <marker date="1480746052534" expanded="true" signature="1063:1145" ph="[...]" />
703
+            <marker date="1480746052534" expanded="true" signature="1183:1298" ph="{...}" />
704
+            <marker date="1480746052534" expanded="true" signature="1322:1406" ph="{...}" />
705
+            <marker date="1480746052534" expanded="true" signature="1352:1400" ph="{...}" />
706
+            <marker date="1480746052534" expanded="true" signature="1430:1575" ph="{...}" />
707
+            <marker date="1480746052534" expanded="true" signature="1451:1569" ph="[...]" />
708
+            <marker date="1480746052534" expanded="true" signature="1592:1747" ph="{...}" />
709
+            <marker date="1480746052534" expanded="true" signature="1617:1741" ph="[...]" />
710
+          </folding>
711
+        </state>
712
+      </provider>
713
+    </entry>
714
+    <entry file="file://$PROJECT_DIR$/../../Luticate2.Auth/Controllers/LuticateExtensions.cs">
715
+      <provider selected="true" editor-type-id="text-editor">
716
+        <state relative-caret-position="162">
717
+          <caret line="9" column="5" selection-start-line="9" selection-start-column="5" selection-end-line="9" selection-end-column="5" />
718
+          <folding>
719
+            <marker date="1480746365318" expanded="true" signature="6:181" ph="..." />
720
+            <marker date="1480746365318" expanded="true" signature="219:1075" ph="{...}" />
721
+            <marker date="1480746365318" expanded="true" signature="264:1073" ph="{...}" />
722
+            <marker date="1480746365318" expanded="true" signature="357:633" ph="{...}" />
723
+            <marker date="1480746365318" expanded="true" signature="706:887" ph="{...}" />
724
+            <marker date="1480746365318" expanded="true" signature="717:849" ph="/* builder.AddApplicationPart(typeof(LuController).GetTypeInfo().Assembly) ... */" />
725
+            <marker date="1480746365318" expanded="true" signature="972:1067" ph="{...}" />
726
+          </folding>
727
+        </state>
728
+      </provider>
729
+    </entry>
730
+  </component>
731
+</project>

+ 18
- 0
.idea/.idea.luticate2/riderModule.iml Целия файл

@@ -0,0 +1,18 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<module type="RIDER_MODULE" version="4">
3
+  <component name="NewModuleRootManager">
4
+    <content url="file://$MODULE_DIR$/../..">
5
+      <sourceFolder url="file://$MODULE_DIR$/../../Luticate2.Auth" isTestSource="false" />
6
+      <sourceFolder url="file://$MODULE_DIR$/../../Luticate2.Utils" isTestSource="false" />
7
+      <sourceFolder url="file://$MODULE_DIR$/../../WebTest" isTestSource="false" />
8
+      <excludeFolder url="file://$MODULE_DIR$/../../Luticate2.Auth/bin" />
9
+      <excludeFolder url="file://$MODULE_DIR$/../../Luticate2.Auth/obj" />
10
+      <excludeFolder url="file://$MODULE_DIR$/../../Luticate2.Utils/bin" />
11
+      <excludeFolder url="file://$MODULE_DIR$/../../Luticate2.Utils/obj" />
12
+      <excludeFolder url="file://$MODULE_DIR$/../../WebTest/bin" />
13
+      <excludeFolder url="file://$MODULE_DIR$/../../WebTest/obj" />
14
+      <excludeFolder url="file://$MODULE_DIR$/../../packages" />
15
+    </content>
16
+    <orderEntry type="sourceFolder" forTests="false" />
17
+  </component>
18
+</module>

+ 20
- 0
Luticate2.Auth/Business/LuGroupsBusiness.cs Целия файл

@@ -0,0 +1,20 @@
1
+using Luticate2.Auth.DataAccess;
2
+using Luticate2.Utils.Business;
3
+
4
+namespace Luticate2.Auth.Business
5
+{
6
+    public class LuGroupsBusiness : LuBusiness
7
+    {
8
+        private readonly LuGroupsDataAccess _luGroupsDataAccess;
9
+
10
+        public LuGroupsBusiness(LuGroupsDataAccess dataAccess)
11
+        {
12
+            _luGroupsDataAccess = dataAccess;
13
+        }
14
+
15
+        public string Get()
16
+        {
17
+            return _luGroupsDataAccess.Get();
18
+        }
19
+    }
20
+}

+ 22
- 0
Luticate2.Auth/Controllers/LuGroupsController.cs Целия файл

@@ -0,0 +1,22 @@
1
+using Luticate2.Auth.Business;
2
+using Luticate2.Utils.Controllers;
3
+using Microsoft.AspNetCore.Mvc;
4
+
5
+namespace Luticate2.Auth.Controllers
6
+{
7
+    [Route("luticate/groups")]
8
+    public class LuGroupsController : LuController
9
+    {
10
+        private readonly LuGroupsBusiness _luGroupsBusiness;
11
+
12
+        public LuGroupsController(LuGroupsBusiness luGroupsBusiness)
13
+        {
14
+            _luGroupsBusiness = luGroupsBusiness;
15
+        }
16
+
17
+        public string Get()
18
+        {
19
+            return _luGroupsBusiness.Get();
20
+        }
21
+    }
22
+}

+ 35
- 0
Luticate2.Auth/Controllers/LuticateExtensions.cs Целия файл

@@ -0,0 +1,35 @@
1
+using Luticate2.Auth.Business;
2
+using Luticate2.Auth.DataAccess;
3
+using Luticate2.Auth.Middlewares;
4
+using Microsoft.AspNetCore.Builder;
5
+using Microsoft.Extensions.DependencyInjection;
6
+
7
+namespace Luticate2.Auth.Controllers
8
+{
9
+    public static class LuticateExtensions
10
+    {
11
+        public static IServiceCollection AddLuticate(this IServiceCollection services)
12
+        {
13
+            services.AddSingleton<LuGroupsController>();
14
+            services.AddSingleton<LuGroupsBusiness>();
15
+            services.AddSingleton<LuGroupsDataAccess>();
16
+
17
+            services.AddDbContext<LuDatabaseContext>();
18
+
19
+            return services;
20
+        }
21
+
22
+        public static IMvcBuilder AddLuticate(this IMvcBuilder builder)
23
+        {
24
+//            builder.AddApplicationPart(typeof(LuController).GetTypeInfo().Assembly)
25
+//                .AddControllersAsServices();
26
+            return builder;
27
+        }
28
+
29
+        public static IApplicationBuilder UseLuticate(this IApplicationBuilder app)
30
+        {
31
+            app.UseMiddleware<LuAuthMiddleware>();
32
+            return app;
33
+        }
34
+    }
35
+}

+ 60
- 0
Luticate2.Auth/DataAccess/LuDatabaseContext.cs Целия файл

@@ -0,0 +1,60 @@
1
+using Microsoft.EntityFrameworkCore;
2
+using Luticate2.Auth.DataAccess.Models;
3
+
4
+namespace Luticate2.Auth.DataAccess
5
+{
6
+    public partial class LuDatabaseContext : DbContext
7
+    {
8
+        public LuDatabaseContext(DbContextOptions options) :base(options)
9
+        {
10
+        }
11
+
12
+        protected override void OnModelCreating(ModelBuilder modelBuilder)
13
+        {
14
+            
15
+            modelBuilder.Entity<lu_authentication_sources>()
16
+                .HasKey(c => new { c.id });
17
+            
18
+            
19
+            modelBuilder.Entity<lu_groups>()
20
+                .HasKey(c => new { c.id });
21
+            
22
+            
23
+            modelBuilder.Entity<lu_users>()
24
+                .HasKey(c => new { c.id });
25
+            
26
+            modelBuilder.Entity<lu_users>()
27
+                .HasOne(e => e.fk_lu_authentication_sources)
28
+                .WithMany(e => e.lu_users_fk)
29
+                .HasForeignKey("authentication_source_id")
30
+                .HasConstraintName("lu_users_authentication_source_id_fkey");
31
+            
32
+            
33
+            modelBuilder.Entity<lu_verb_users_groups>()
34
+                .HasKey(c => new { c.user_id, c.group_id });
35
+            
36
+            modelBuilder.Entity<lu_verb_users_groups>()
37
+                .HasOne(e => e.fk_lu_users)
38
+                .WithMany(e => e.lu_verb_users_groups_fk)
39
+                .HasForeignKey("user_id")
40
+                .HasConstraintName("lu_verb_users_groups_user_id_fkey");
41
+            
42
+            modelBuilder.Entity<lu_verb_users_groups>()
43
+                .HasOne(e => e.fk_lu_groups)
44
+                .WithMany(e => e.lu_verb_users_groups_fk)
45
+                .HasForeignKey("group_id")
46
+                .HasConstraintName("lu_verb_users_groups_group_id_fkey");
47
+            
48
+            
49
+        }
50
+        
51
+        public DbSet<lu_authentication_sources> lu_authentication_sources { get; set; }
52
+        
53
+        public DbSet<lu_groups> lu_groups { get; set; }
54
+        
55
+        public DbSet<lu_users> lu_users { get; set; }
56
+        
57
+        public DbSet<lu_verb_users_groups> lu_verb_users_groups { get; set; }
58
+        
59
+    }
60
+}

+ 24
- 0
Luticate2.Auth/DataAccess/LuGroupsDataAccess.cs Целия файл

@@ -0,0 +1,24 @@
1
+using Luticate2.Utils.DataAccess;
2
+
3
+namespace Luticate2.Auth.DataAccess
4
+{
5
+    public class LuGroupsDataAccess : LuDataAccess
6
+    {
7
+        private readonly LuDatabaseContext _db;
8
+
9
+        public LuGroupsDataAccess(LuDatabaseContext db)
10
+        {
11
+            _db = db;
12
+        }
13
+
14
+//        public LuGroupDbo Add(LuGroupAddDbo groupAddDbo)
15
+//        {
16
+////            _db.lu_groups.Add()
17
+//        }
18
+
19
+        public string Get()
20
+        {
21
+            return "groups";
22
+        }
23
+    }
24
+}

+ 24
- 0
Luticate2.Auth/DataAccess/Models/lu_authentication_sources.cs Целия файл

@@ -0,0 +1,24 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel.DataAnnotations;
4
+using System.ComponentModel.DataAnnotations.Schema;
5
+
6
+namespace Luticate2.Auth.DataAccess.Models
7
+{
8
+    public partial class lu_authentication_sources
9
+    {
10
+        
11
+        public Guid id { get; set; }
12
+        
13
+        public string name { get; set; }
14
+        
15
+        public string type { get; set; }
16
+        
17
+        public string data { get; set; }
18
+        
19
+        
20
+        
21
+        public ICollection<lu_users> lu_users_fk { get; set; }
22
+        
23
+    }
24
+}

+ 20
- 0
Luticate2.Auth/DataAccess/Models/lu_groups.cs Целия файл

@@ -0,0 +1,20 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel.DataAnnotations;
4
+using System.ComponentModel.DataAnnotations.Schema;
5
+
6
+namespace Luticate2.Auth.DataAccess.Models
7
+{
8
+    public partial class lu_groups
9
+    {
10
+        
11
+        public Guid id { get; set; }
12
+        
13
+        public string name { get; set; }
14
+        
15
+        
16
+        
17
+        public ICollection<lu_verb_users_groups> lu_verb_users_groups_fk { get; set; }
18
+        
19
+    }
20
+}

+ 28
- 0
Luticate2.Auth/DataAccess/Models/lu_users.cs Целия файл

@@ -0,0 +1,28 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel.DataAnnotations;
4
+using System.ComponentModel.DataAnnotations.Schema;
5
+
6
+namespace Luticate2.Auth.DataAccess.Models
7
+{
8
+    public partial class lu_users
9
+    {
10
+        
11
+        public Guid id { get; set; }
12
+        
13
+        public Guid authentication_source_id { get; set; }
14
+        
15
+        public string username { get; set; }
16
+        
17
+        public string password { get; set; }
18
+        
19
+        public string salt { get; set; }
20
+        
21
+        
22
+        public lu_authentication_sources fk_lu_authentication_sources { get; set; }
23
+        
24
+        
25
+        public ICollection<lu_verb_users_groups> lu_verb_users_groups_fk { get; set; }
26
+        
27
+    }
28
+}

+ 22
- 0
Luticate2.Auth/DataAccess/Models/lu_verb_users_groups.cs Целия файл

@@ -0,0 +1,22 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel.DataAnnotations;
4
+using System.ComponentModel.DataAnnotations.Schema;
5
+
6
+namespace Luticate2.Auth.DataAccess.Models
7
+{
8
+    public partial class lu_verb_users_groups
9
+    {
10
+        
11
+        public Guid user_id { get; set; }
12
+        
13
+        public Guid group_id { get; set; }
14
+        
15
+        
16
+        public lu_users fk_lu_users { get; set; }
17
+        
18
+        public lu_groups fk_lu_groups { get; set; }
19
+        
20
+        
21
+    }
22
+}

+ 30
- 0
Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig Целия файл

@@ -0,0 +1,30 @@
1
+using Microsoft.EntityFrameworkCore;
2
+using Luticate2.Auth.DataAccess.Models;
3
+
4
+namespace Luticate2.Auth.DataAccess
5
+{
6
+    public partial class LuDatabaseContext : DbContext
7
+    {
8
+        public LuDatabaseContext(DbContextOptions options) :base(options)
9
+        {
10
+        }
11
+
12
+        protected override void OnModelCreating(ModelBuilder modelBuilder)
13
+        {
14
+            {% for table in dataSource.getTables() %}{% if (table.hasAny()) %}
15
+            modelBuilder.Entity<{{ table.getName() }}>()
16
+                .HasKey(c => new { {% for column in table.getPrimaryKeys() %}{% if (column.isSelected()) %}c.{{ column.getName() }}{% if not (loop.last) %}, {% endif %}{% endif %}{% endfor %} });
17
+            {% for fk in table.getSourceForeignKeys() %}
18
+            modelBuilder.Entity<{{ fk.getSourceTable().getName() }}>()
19
+                .HasOne(e => e.{{ fk.getSourceForeignKeyName() }})
20
+                .WithMany(e => e.{{ fk.getTargetForeignKeyName() }})
21
+                .HasForeignKey("{% for column in fk.getSourceColumns() %}{{ column.getName }}{% if not (loop.last) %}, {% endif %}{% endfor %}")
22
+                .HasConstraintName("{{ fk.getName() }}");
23
+            {% endfor %}
24
+            {% endif %}{% endfor %}
25
+        }
26
+        {% for table in dataSource.getTables() %}{% if (table.hasAny()) %}
27
+        public DbSet<{{ table.getName() }}> {{ table.getName() }} { get; set; }
28
+        {% endif %}{% endfor %}
29
+    }
30
+}

+ 20
- 0
Luticate2.Auth/DataAccess/code-from-ds/Models.twig Целия файл

@@ -0,0 +1,20 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.ComponentModel.DataAnnotations;
4
+using System.ComponentModel.DataAnnotations.Schema;
5
+
6
+namespace Luticate2.Auth.DataAccess.Models
7
+{
8
+    public partial class {{ table.getName() }}
9
+    {
10
+        {% for column in table.getColumns() %}{% if (column.isSelected()) %}
11
+        public {{ column.getType() }}{% if (not (column.isNotNull()) and (column.isTypeNotNull())) %}?{% endif %} {{ column.getName() }} { get; set; }
12
+        {% endif %}{% endfor %}
13
+        {% for fk in table.getSourceForeignKeys() %}{% if (fk.isSelected()) %}
14
+        public {{ fk.getTargetTable().getName() }} {{ fk.getSourceForeignKeyName() }} { get; set; }
15
+        {% endif %}{% endfor %}
16
+        {% for fk in table.getTargetForeignKeys() %}{% if (fk.isSelected()) %}
17
+        public ICollection<{{ fk.getSourceTable().getName() }}> {{ fk.getTargetForeignKeyName() }} { get; set; }
18
+        {% endif %}{% endfor %}
19
+    }
20
+}

+ 85
- 0
Luticate2.Auth/DataAccess/code-from-ds/code-from-ds.json Целия файл

@@ -0,0 +1,85 @@
1
+{
2
+    "castFileRelativePath": "../../Luticate2.Auth/DataAccess/code-from-ds/types-cast.json",
3
+    "dataSourceRelativePath": "../../Luticate2.Auth/DataAccess/LuDatabaseContext.cs",
4
+    "modelsRelativePath": "../../Luticate2.Auth/DataAccess/Models",
5
+    "selection": {
6
+        "tables": [
7
+            {
8
+                "columns": [
9
+                    {
10
+                        "column": "id",
11
+                        "selected": true
12
+                    },
13
+                    {
14
+                        "column": "name",
15
+                        "selected": true
16
+                    },
17
+                    {
18
+                        "column": "type",
19
+                        "selected": true
20
+                    },
21
+                    {
22
+                        "column": "data",
23
+                        "selected": true
24
+                    }
25
+                ],
26
+                "table": "lu_authentication_sources"
27
+            },
28
+            {
29
+                "columns": [
30
+                    {
31
+                        "column": "id",
32
+                        "selected": true
33
+                    },
34
+                    {
35
+                        "column": "name",
36
+                        "selected": true
37
+                    }
38
+                ],
39
+                "table": "lu_groups"
40
+            },
41
+            {
42
+                "columns": [
43
+                    {
44
+                        "column": "id",
45
+                        "selected": true
46
+                    },
47
+                    {
48
+                        "column": "authentication_source_id",
49
+                        "selected": true
50
+                    },
51
+                    {
52
+                        "column": "username",
53
+                        "selected": true
54
+                    },
55
+                    {
56
+                        "column": "password",
57
+                        "selected": true
58
+                    },
59
+                    {
60
+                        "column": "salt",
61
+                        "selected": true
62
+                    }
63
+                ],
64
+                "table": "lu_users"
65
+            },
66
+            {
67
+                "columns": [
68
+                    {
69
+                        "column": "user_id",
70
+                        "selected": true
71
+                    },
72
+                    {
73
+                        "column": "group_id",
74
+                        "selected": true
75
+                    }
76
+                ],
77
+                "table": "lu_verb_users_groups"
78
+            }
79
+        ],
80
+        "source": "luticate2"
81
+    },
82
+    "dataSourceTemplateRelativePath": "../../Luticate2.Auth/DataAccess/code-from-ds/DataSource.twig",
83
+    "filesExtension": "cs",
84
+    "modelsTemplateRelativePath": "../../Luticate2.Auth/DataAccess/code-from-ds/Models.twig"
85
+}

+ 69
- 0
Luticate2.Auth/DataAccess/code-from-ds/types-cast.json Целия файл

@@ -0,0 +1,69 @@
1
+{
2
+    "arrayTemplate": "Array",
3
+    "non-nullable-types": [
4
+        "bool",
5
+        "char",
6
+        "short",
7
+        "int",
8
+        "long",
9
+        "float",
10
+        "double",
11
+        "decimal",
12
+        "NpgsqlTypes.NpgsqlPoint",
13
+        "NpgsqlTypes.NpgsqlLSeg",
14
+        "NpgsqlTypes.NpgsqlPath",
15
+        "NpgsqlTypes.NpgsqlPolygon",
16
+        "NpgsqlTypes.NpgsqlLine",
17
+        "NpgsqlTypes.NpgsqlCircle",
18
+        "NpgsqlTypes.NpgsqlBox",
19
+        "NpgsqlTypes.NpgsqlInet",
20
+        "Guid",
21
+        "DateTime",
22
+        "TimeSpan",
23
+        "DateTimeOffset"
24
+    ],
25
+    "types": {
26
+        "boolean": "bool",
27
+        "smallint": "short",
28
+        "integer": "int",
29
+        "bigint": "long",
30
+        "real": "float",
31
+        "double precision": "double",
32
+        "numeric": "decimal",
33
+        "money": "decimal",
34
+        "text": "string",
35
+        "varchar": "string",
36
+        "json": "string",
37
+        "jsonb": "string",
38
+        "xml": "string",
39
+        "point": "NpgsqlTypes.NpgsqlPoint",
40
+        "lseg": "NpgsqlTypes.NpgsqlLSeg",
41
+        "path": "NpgsqlTypes.NpgsqlPath",
42
+        "polygon": "NpgsqlTypes.NpgsqlPolygon",
43
+        "line": "NpgsqlTypes.NpgsqlLine",
44
+        "circle": "NpgsqlTypes.NpgsqlCircle",
45
+        "box": "NpgsqlTypes.NpgsqlBox",
46
+        "bit": {
47
+            "-1": "bool",
48
+            "1": "bool",
49
+            "*": "System.Collections.BitArray"
50
+        },
51
+        "bit varying": "System.Collections.BitArray",
52
+        "uuid": "Guid",
53
+        "cidr": "NpgsqlTypes.NpgsqlInet",
54
+        "inet": "System.Net.IPAddress",
55
+        "macaddr": "System.Net.NetworkInformation.PhysicalAddress",
56
+        "tsquery": "NpgsqlTypes.NpgsqlTsQuery",
57
+        "tsvector": "NpgsqlTypes.NpgsqlTsVector",
58
+        "date": "DateTime",
59
+        "interval": "TimeSpan",
60
+        "timestamp": "DateTime",
61
+        "timestamp with time zone": "DateTime",
62
+        "time": "TimeSpan",
63
+        "time with time zone": "DateTimeOffset",
64
+        "bytea": "byte[]",
65
+        "name": "string",
66
+        "\"char\"": "char",
67
+        "char": "char"
68
+    }
69
+}

+ 9
- 0
Luticate2.Auth/Dbo/Groups/LuGroupAddDbo.cs Целия файл

@@ -0,0 +1,9 @@
1
+using Luticate2.Utils.Dbo;
2
+
3
+namespace Luticate2.Auth.Dbo.Groups
4
+{
5
+    public class LuGroupAddDbo : LuDbo
6
+    {
7
+        public string Name { get; set; }
8
+    }
9
+}

+ 11
- 0
Luticate2.Auth/Dbo/Groups/LuGroupDbo.cs Целия файл

@@ -0,0 +1,11 @@
1
+using Luticate2.Utils.Dbo;
2
+
3
+namespace Luticate2.Auth.Dbo.Groups
4
+{
5
+    public class LuGroupDbo : LuDbo
6
+    {
7
+        public string Id { get; set; }
8
+
9
+        public string Name { get; set; }
10
+    }
11
+}

+ 9
- 0
Luticate2.Auth/Dbo/Users/UsersDbo.cs Целия файл

@@ -0,0 +1,9 @@
1
+using Luticate2.Utils.Dbo;
2
+
3
+namespace Luticate2.Auth.DBO.Users
4
+{
5
+    public class UsersDbo : LuDbo
6
+    {
7
+
8
+    }
9
+}

+ 22
- 0
Luticate2.Auth/Luticate2.Auth.xproj Целия файл

@@ -0,0 +1,22 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+  <PropertyGroup>
4
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
5
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
6
+  </PropertyGroup>
7
+
8
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
9
+  <PropertyGroup Label="Globals">
10
+    <ProjectGuid>{26DC4FA0-789D-434B-A342-79D9440D4B10}</ProjectGuid>
11
+    <ProjectTypeGuids>{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}</ProjectTypeGuids>
12
+    <RootNamespace>Luticate2.Auth</RootNamespace>
13
+    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
14
+    <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
15
+    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
16
+  </PropertyGroup>
17
+
18
+  <PropertyGroup>
19
+    <SchemaVersion>2.0</SchemaVersion>
20
+  </PropertyGroup>
21
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
22
+</Project>

+ 20
- 0
Luticate2.Auth/Middlewares/LuAuthMiddleware.cs Целия файл

@@ -0,0 +1,20 @@
1
+using System.Threading.Tasks;
2
+using Microsoft.AspNetCore.Http;
3
+
4
+namespace Luticate2.Auth.Middlewares
5
+{
6
+    public class LuAuthMiddleware
7
+    {
8
+        private readonly RequestDelegate _next;
9
+
10
+        public LuAuthMiddleware(RequestDelegate next)
11
+        {
12
+            _next = next;
13
+        }
14
+
15
+        public async Task Invoke(HttpContext context)
16
+        {
17
+            await _next.Invoke(context);
18
+        }
19
+    }
20
+}

+ 26
- 0
Luticate2.Auth/Properties/AssemblyInfo.cs Целия файл

@@ -0,0 +1,26 @@
1
+using System.Reflection;
2
+using System.Runtime.CompilerServices;
3
+using System.Runtime.InteropServices;
4
+
5
+// General Information about an assembly is controlled through the following
6
+// set of attributes. Change these attribute values to modify the information
7
+// associated with an assembly.
8
+
9
+[assembly: AssemblyTitle("Luticate2.Auth")]
10
+[assembly: AssemblyDescription("")]
11
+[assembly: AssemblyConfiguration("")]
12
+[assembly: AssemblyCompany("")]
13
+[assembly: AssemblyProduct("Luticate2.Auth")]
14
+[assembly: AssemblyCopyright("Copyright ©  2016")]
15
+[assembly: AssemblyTrademark("")]
16
+[assembly: AssemblyCulture("")]
17
+
18
+// Setting ComVisible to false makes the types in this assembly not visible
19
+// to COM components.  If you need to access a type in this assembly from
20
+// COM, set the ComVisible attribute to true on that type.
21
+
22
+[assembly: ComVisible(false)]
23
+
24
+// The following GUID is for the ID of the typelib if this project is exposed to COM
25
+
26
+[assembly: Guid("26DC4FA0-789D-434B-A342-79D9440D4B10")]

+ 17
- 0
Luticate2.Auth/project.json Целия файл

@@ -0,0 +1,17 @@
1
+{
2
+    "version": "1.0.0",
3
+    "buildOptions": {
4
+        "debugType": "portable"
5
+    },
6
+    "dependencies": {
7
+        "Luticate2.Utils": "1.0.*"
8
+    },
9
+    "frameworks": {
10
+        "netcoreapp1.0": {
11
+            "imports": [
12
+                "dotnet5.6",
13
+                "portable-net45+win8"
14
+            ]
15
+        }
16
+    }
17
+}

+ 9461
- 0
Luticate2.Auth/project.lock.json
Файловите разлики са ограничени, защото са твърде много
Целия файл


+ 7
- 0
Luticate2.Utils/Business/LuBusiness.cs Целия файл

@@ -0,0 +1,7 @@
1
+namespace Luticate2.Utils.Business
2
+{
3
+    public abstract class LuBusiness
4
+    {
5
+
6
+    }
7
+}

+ 11
- 0
Luticate2.Utils/Class1.cs Целия файл

@@ -0,0 +1,11 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Threading.Tasks;
5
+
6
+namespace Luticate2.Utils
7
+{    
8
+    public class Class1
9
+    {
10
+    }
11
+}

+ 15
- 0
Luticate2.Utils/Controllers/LuController.cs Целия файл

@@ -0,0 +1,15 @@
1
+using System.Collections.Generic;
2
+using Microsoft.AspNetCore.Mvc;
3
+using Microsoft.AspNetCore.SignalR.Infrastructure;
4
+
5
+namespace Luticate2.Utils.Controllers
6
+{
7
+    public abstract class LuController : Controller
8
+    {
9
+        protected IConnectionManager ConnectionManager { get; set; }
10
+
11
+        protected IDictionary<object, object> LuItems => (IDictionary<object, object>) HttpContext.Items["luticateItems"];
12
+
13
+//        protected UsersDbo LuCurrentUser => (UsersDbo) LuItems["luticateItems"];
14
+    }
15
+}

+ 15
- 0
Luticate2.Utils/DataAccess/LuCrudDataAccess.cs Целия файл

@@ -0,0 +1,15 @@
1
+using Microsoft.EntityFrameworkCore;
2
+
3
+namespace Luticate2.Utils.DataAccess
4
+{
5
+    public class LuCrudDataAccess<TModel, TDbo, TDbContext> : LuEfDataAccess<TModel, TDbo, TDbContext>
6
+        where TModel : class
7
+        where TDbo : class
8
+        where TDbContext : DbContext, new()
9
+    {
10
+        protected LuCrudDataAccess(TDbContext db, DbSet<TModel> table) : base(db, table)
11
+        {
12
+
13
+        }
14
+    }
15
+}

+ 6
- 0
Luticate2.Utils/DataAccess/LuDataAccess.cs Целия файл

@@ -0,0 +1,6 @@
1
+namespace Luticate2.Utils.DataAccess
2
+{
3
+    public abstract class LuDataAccess
4
+    {
5
+    }
6
+}

+ 35
- 0
Luticate2.Utils/DataAccess/LuEfDataAccess.cs Целия файл

@@ -0,0 +1,35 @@
1
+using System;
2
+using Luticate2.Utils.Dbo;
3
+using Microsoft.EntityFrameworkCore;
4
+using Microsoft.Extensions.Logging;
5
+
6
+namespace Luticate2.Utils.DataAccess
7
+{
8
+    public class LuEfDataAccess<TModel, TDbo, TDbContext> : LuDataAccess
9
+        where TModel : class
10
+        where TDbo : class
11
+        where TDbContext : DbContext, new()
12
+    {
13
+        protected readonly TDbContext Db;
14
+
15
+        protected readonly DbSet<TModel> Table;
16
+
17
+        protected LuEfDataAccess(TDbContext db, DbSet<TModel> table)
18
+        {
19
+            Db = db;
20
+            Table = table;
21
+        }
22
+
23
+        public LuResult<T> Execute<T>(Func<TDbContext, DbSet<TModel>, LuResult<T>> func)
24
+        {
25
+            try
26
+            {
27
+                return func(Db, Table);
28
+            }
29
+            catch (Exception e)
30
+            {
31
+                return LuResult<T>.Error(LuStatus.DbError, e);
32
+            }
33
+        }
34
+    }
35
+}

+ 7
- 0
Luticate2.Utils/Dbo/LuBoxedValueDbo.cs Целия файл

@@ -0,0 +1,7 @@
1
+namespace Luticate2.Utils.Dbo
2
+{
3
+    public class LuBoxedValueDbo<T> : LuDbo
4
+    {
5
+        public T Value { get; set; }
6
+    }
7
+}

+ 7
- 0
Luticate2.Utils/Dbo/LuDbo.cs Целия файл

@@ -0,0 +1,7 @@
1
+namespace Luticate2.Utils.Dbo
2
+{
3
+    public class LuDbo
4
+    {
5
+
6
+    }
7
+}

+ 7
- 0
Luticate2.Utils/Dbo/LuPaginatedDbo.cs Целия файл

@@ -0,0 +1,7 @@
1
+namespace Luticate2.Utils.Dbo
2
+{
3
+    public class LuPaginatedDbo : LuDbo
4
+    {
5
+
6
+    }
7
+}

+ 73
- 0
Luticate2.Utils/Dbo/LuResult.cs Целия файл

@@ -0,0 +1,73 @@
1
+using System;
2
+
3
+namespace Luticate2.Utils.Dbo
4
+{
5
+    public class LuResult<T>
6
+    {
7
+        public LuStatus Status { get; set; }
8
+
9
+        public bool Success => Status == LuStatus.Success;
10
+
11
+        public string PublicDetails { get; set; }
12
+
13
+        public string PrivateDetails { get; set; }
14
+
15
+        public string StackTrace { get; set; }
16
+
17
+        public Exception Exception { get; set; }
18
+
19
+        public T Data { get; set; }
20
+
21
+        protected LuResult()
22
+        {
23
+        }
24
+
25
+        public static LuResult<T> Ok(T data)
26
+        {
27
+            return new LuResult<T>
28
+            {
29
+                StackTrace = new Exception().StackTrace,
30
+                Data = data,
31
+                Status = LuStatus.Success
32
+            };
33
+        }
34
+
35
+        public static LuResult<T> Error(LuStatus status, string privateDetails, string publicDetails = null)
36
+        {
37
+            return new LuResult<T>
38
+            {
39
+                PublicDetails = publicDetails == "" ? privateDetails : publicDetails,
40
+                PrivateDetails = privateDetails,
41
+                StackTrace = new Exception().StackTrace,
42
+                Status = status
43
+            };
44
+        }
45
+
46
+        public static LuResult<T> Error(LuStatus status, Exception e, string publicDetails = null)
47
+        {
48
+            return Error(status, e.ToString(), publicDetails);
49
+        }
50
+
51
+        public static LuResult<T> Error<T2>(LuResult<T2> other)
52
+        {
53
+            return new LuResult<T>
54
+            {
55
+                Status = other.Status,
56
+                PublicDetails = other.PublicDetails,
57
+                PrivateDetails = other.PrivateDetails,
58
+                StackTrace = other.StackTrace,
59
+                Exception = other.Exception
60
+            };
61
+        }
62
+
63
+        public LuResult<T2> To<T2>()
64
+        {
65
+            return LuResult<T2>.Error(this);
66
+        }
67
+
68
+        public static implicit operator bool(LuResult<T> res)
69
+        {
70
+            return res.Success;
71
+        }
72
+    }
73
+}

+ 13
- 0
Luticate2.Utils/Dbo/LuStatus.cs Целия файл

@@ -0,0 +1,13 @@
1
+namespace Luticate2.Utils.Dbo
2
+{
3
+    public enum LuStatus
4
+    {
5
+        Success,
6
+        InputError,
7
+        DbError,
8
+        PermissionError,
9
+        LoginError,
10
+        NotFound,
11
+        InternalError
12
+    }
13
+}

+ 22
- 0
Luticate2.Utils/Luticate2.Utils.xproj Целия файл

@@ -0,0 +1,22 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+  <PropertyGroup>
4
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
5
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
6
+  </PropertyGroup>
7
+
8
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
9
+  <PropertyGroup Label="Globals">
10
+    <ProjectGuid>{CE136C74-4DA6-4EAE-A132-E9AF4C84F616}</ProjectGuid>
11
+    <ProjectTypeGuids>{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}</ProjectTypeGuids>
12
+    <RootNamespace>Luticate2.Utils</RootNamespace>
13
+    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
14
+    <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
15
+    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
16
+  </PropertyGroup>
17
+
18
+  <PropertyGroup>
19
+    <SchemaVersion>2.0</SchemaVersion>
20
+  </PropertyGroup>
21
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
22
+</Project>

+ 26
- 0
Luticate2.Utils/Properties/AssemblyInfo.cs Целия файл

@@ -0,0 +1,26 @@
1
+using System.Reflection;
2
+using System.Runtime.CompilerServices;
3
+using System.Runtime.InteropServices;
4
+
5
+// General Information about an assembly is controlled through the following
6
+// set of attributes. Change these attribute values to modify the information
7
+// associated with an assembly.
8
+
9
+[assembly: AssemblyTitle("Luticate2.Utils")]
10
+[assembly: AssemblyDescription("")]
11
+[assembly: AssemblyConfiguration("")]
12
+[assembly: AssemblyCompany("")]
13
+[assembly: AssemblyProduct("Luticate2.Utils")]
14
+[assembly: AssemblyCopyright("Copyright ©  2016")]
15
+[assembly: AssemblyTrademark("")]
16
+[assembly: AssemblyCulture("")]
17
+
18
+// Setting ComVisible to false makes the types in this assembly not visible
19
+// to COM components.  If you need to access a type in this assembly from
20
+// COM, set the ComVisible attribute to true on that type.
21
+
22
+[assembly: ComVisible(false)]
23
+
24
+// The following GUID is for the ID of the typelib if this project is exposed to COM
25
+
26
+[assembly: Guid("CE136C74-4DA6-4EAE-A132-E9AF4C84F616")]

+ 21
- 0
Luticate2.Utils/project.json Целия файл

@@ -0,0 +1,21 @@
1
+{
2
+    "version": "1.0.0",
3
+    "buildOptions": {
4
+        "debugType": "portable"
5
+    },
6
+    "dependencies": {
7
+        "Gray.Microsoft.AspNetCore.SignalR.Server": "0.2.0-alpha1",
8
+        "Microsoft.ApplicationInsights.AspNetCore": "1.0.2",
9
+        "Microsoft.AspNetCore.WebSockets": "1.0.0",
10
+        "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
11
+        "Npgsql.EntityFrameworkCore.PostgreSQL": "1.1.0"
12
+    },
13
+    "frameworks": {
14
+        "netcoreapp1.0": {
15
+            "imports": [
16
+                "dotnet5.6",
17
+                "portable-net45+win8"
18
+            ]
19
+        }
20
+    }
21
+}

+ 7867
- 0
Luticate2.Utils/project.lock.json
Файловите разлики са ограничени, защото са твърде много
Целия файл


+ 25
- 0
WebTest/Program.cs Целия файл

@@ -0,0 +1,25 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.IO;
4
+using System.Linq;
5
+using System.Threading.Tasks;
6
+using Microsoft.AspNetCore.Hosting;
7
+
8
+namespace WebTest
9
+{
10
+    public class Program
11
+    {
12
+        public static void Main(string[] args)
13
+        {
14
+            var host = new WebHostBuilder()
15
+                .UseKestrel()
16
+                .UseContentRoot(Directory.GetCurrentDirectory())
17
+                .UseUrls("http://localhost:8080")
18
+                .UseIISIntegration()
19
+                .UseStartup<Startup>()
20
+                .Build();
21
+
22
+            host.Run();
23
+        }
24
+    }
25
+}

+ 26
- 0
WebTest/Properties/AssemblyInfo.cs Целия файл

@@ -0,0 +1,26 @@
1
+using System.Reflection;
2
+using System.Runtime.CompilerServices;
3
+using System.Runtime.InteropServices;
4
+
5
+// General Information about an assembly is controlled through the following
6
+// set of attributes. Change these attribute values to modify the information
7
+// associated with an assembly.
8
+
9
+[assembly: AssemblyTitle("WebTest")]
10
+[assembly: AssemblyDescription("")]
11
+[assembly: AssemblyConfiguration("")]
12
+[assembly: AssemblyCompany("")]
13
+[assembly: AssemblyProduct("WebTest")]
14
+[assembly: AssemblyCopyright("Copyright ©  2016")]
15
+[assembly: AssemblyTrademark("")]
16
+[assembly: AssemblyCulture("")]
17
+
18
+// Setting ComVisible to false makes the types in this assembly not visible
19
+// to COM components.  If you need to access a type in this assembly from
20
+// COM, set the ComVisible attribute to true on that type.
21
+
22
+[assembly: ComVisible(false)]
23
+
24
+// The following GUID is for the ID of the typelib if this project is exposed to COM
25
+
26
+[assembly: Guid("8D0762F6-BA83-416A-9A1E-5B310B0996CD")]

+ 59
- 0
WebTest/Startup.cs Целия файл

@@ -0,0 +1,59 @@
1
+using Luticate2.Auth.Controllers;
2
+using Microsoft.AspNetCore.Builder;
3
+using Microsoft.AspNetCore.Hosting;
4
+using Microsoft.Extensions.Configuration;
5
+using Microsoft.Extensions.DependencyInjection;
6
+using Microsoft.Extensions.Logging;
7
+
8
+namespace WebTest
9
+{
10
+    public class Startup
11
+    {
12
+        public Startup(IHostingEnvironment env)
13
+        {
14
+            var builder = new ConfigurationBuilder()
15
+                .SetBasePath(env.ContentRootPath)
16
+                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
17
+                .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
18
+
19
+            if (env.IsEnvironment("Development"))
20
+            {
21
+                // This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately.
22
+                builder.AddApplicationInsightsSettings(developerMode: true);
23
+            }
24
+
25
+            builder.AddEnvironmentVariables();
26
+            Configuration = builder.Build();
27
+        }
28
+
29
+        public IConfigurationRoot Configuration { get; }
30
+
31
+        // This method gets called by the runtime. Use this method to add services to the container
32
+        public void ConfigureServices(IServiceCollection services)
33
+        {
34
+            // Add framework services.
35
+            services.AddApplicationInsightsTelemetry(Configuration);
36
+
37
+            services.AddLuticate();
38
+
39
+            services.AddMvc()
40
+                .AddLuticate();
41
+
42
+        }
43
+
44
+        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline
45
+        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
46
+        {
47
+            loggerFactory.AddConsole(Configuration.GetSection("Logging"));
48
+            loggerFactory.AddDebug();
49
+
50
+            app.UseApplicationInsightsRequestTelemetry();
51
+
52
+            app.UseApplicationInsightsExceptionTelemetry();
53
+
54
+            app.UseMvc();
55
+
56
+            app.UseLuticate();
57
+        }
58
+    }
59
+}

+ 22
- 0
WebTest/WebTest.xproj Целия файл

@@ -0,0 +1,22 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
+  <PropertyGroup>
4
+    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
5
+    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
6
+  </PropertyGroup>
7
+
8
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.Props" Condition="'$(VSToolsPath)' != ''" />
9
+  <PropertyGroup Label="Globals">
10
+    <ProjectGuid>{8D0762F6-BA83-416A-9A1E-5B310B0996CD}</ProjectGuid>
11
+    <ProjectTypeGuids>{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}</ProjectTypeGuids>
12
+    <RootNamespace>WebTest</RootNamespace>
13
+    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">.\obj</BaseIntermediateOutputPath>
14
+    <OutputPath Condition="'$(OutputPath)'=='' ">.\bin\</OutputPath>
15
+    <TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
16
+  </PropertyGroup>
17
+
18
+  <PropertyGroup>
19
+    <SchemaVersion>2.0</SchemaVersion>
20
+  </PropertyGroup>
21
+  <Import Project="$(VSToolsPath)\DotNet\Microsoft.DotNet.targets" Condition="'$(VSToolsPath)' != ''" />
22
+</Project>

+ 10
- 0
WebTest/appsettings.json Целия файл

@@ -0,0 +1,10 @@
1
+{
2
+  "Logging": {
3
+    "IncludeScopes": false,
4
+    "LogLevel": {
5
+      "Default": "Debug",
6
+      "System": "Information",
7
+      "Microsoft": "Information"
8
+    }
9
+  }
10
+}

+ 55
- 0
WebTest/project.json Целия файл

@@ -0,0 +1,55 @@
1
+{
2
+    "dependencies": {
3
+        "Luticate2.Auth": "1.0.*",
4
+        "Microsoft.ApplicationInsights.AspNetCore": "1.0.2",
5
+        "Microsoft.AspNetCore.Mvc": "1.1.0",
6
+        "Microsoft.AspNetCore.Routing": "1.1.0",
7
+        "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
8
+        "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
9
+        "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
10
+        "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
11
+        "Microsoft.Extensions.Configuration.Json": "1.1.0",
12
+        "Microsoft.Extensions.Logging": "1.1.0",
13
+        "Microsoft.Extensions.Logging.Console": "1.1.0",
14
+        "Microsoft.Extensions.Logging.Debug": "1.1.0",
15
+        "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
16
+        "Microsoft.NETCore.App": {
17
+            "version": "1.0.1",
18
+            "type": "platform"
19
+        }
20
+    },
21
+    "tools": {
22
+        "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
23
+    },
24
+    "frameworks": {
25
+        "netcoreapp1.0": {
26
+            "imports": [
27
+                "dotnet5.6",
28
+                "portable-net45+win8"
29
+            ]
30
+        }
31
+    },
32
+    "buildOptions": {
33
+        "emitEntryPoint": true,
34
+        "debugType": "portable",
35
+        "preserveCompilationContext": true
36
+    },
37
+    "runtimeOptions": {
38
+        "configProperties": {
39
+            "System.GC.Server": true
40
+        }
41
+    },
42
+    "publishOptions": {
43
+        "include": [
44
+            "wwwroot",
45
+            "**/*.cshtml",
46
+            "appsettings.json",
47
+            "web.config"
48
+        ]
49
+    },
50
+    "scripts": {
51
+        "postpublish": [
52
+            "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%"
53
+        ]
54
+    }
55
+}

+ 10313
- 0
WebTest/project.lock.json
Файловите разлики са ограничени, защото са твърде много
Целия файл


+ 14
- 0
WebTest/web.config Целия файл

@@ -0,0 +1,14 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<configuration>
3
+
4
+  <!--
5
+    Configure your application settings in appsettings.json. Learn more at http://go.microsoft.com/fwlink/?LinkId=786380
6
+  -->
7
+
8
+  <system.webServer>
9
+    <handlers>
10
+      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified"/>
11
+    </handlers>
12
+    <aspNetCore processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
13
+  </system.webServer>
14
+</configuration>

+ 34
- 0
luticate2.sln Целия файл

@@ -0,0 +1,34 @@
1
+
2
+Microsoft Visual Studio Solution File, Format Version 12.00
3
+# Visual Studio 2013
4
+VisualStudioVersion = 12.0.0.0
5
+MinimumVisualStudioVersion = 10.0.0.1
6
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "WebTest", "WebTest\WebTest.xproj", "{8D0762F6-BA83-416A-9A1E-5B310B0996CD}"
7
+EndProject
8
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Luticate2.Utils", "Luticate2.Utils\Luticate2.Utils.xproj", "{CE136C74-4DA6-4EAE-A132-E9AF4C84F616}"
9
+EndProject
10
+Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "Luticate2.Auth", "Luticate2.Auth\Luticate2.Auth.xproj", "{26DC4FA0-789D-434B-A342-79D9440D4B10}"
11
+EndProject
12
+Global
13
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
14
+		Debug|Any CPU = Debug|Any CPU
15
+		Release|Any CPU = Release|Any CPU
16
+	EndGlobalSection
17
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
18
+		{8D0762F6-BA83-416A-9A1E-5B310B0996CD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
19
+		{8D0762F6-BA83-416A-9A1E-5B310B0996CD}.Debug|Any CPU.Build.0 = Debug|Any CPU
20
+		{8D0762F6-BA83-416A-9A1E-5B310B0996CD}.Release|Any CPU.ActiveCfg = Release|Any CPU
21
+		{8D0762F6-BA83-416A-9A1E-5B310B0996CD}.Release|Any CPU.Build.0 = Release|Any CPU
22
+		{CE136C74-4DA6-4EAE-A132-E9AF4C84F616}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
23
+		{CE136C74-4DA6-4EAE-A132-E9AF4C84F616}.Debug|Any CPU.Build.0 = Debug|Any CPU
24
+		{CE136C74-4DA6-4EAE-A132-E9AF4C84F616}.Release|Any CPU.ActiveCfg = Release|Any CPU
25
+		{CE136C74-4DA6-4EAE-A132-E9AF4C84F616}.Release|Any CPU.Build.0 = Release|Any CPU
26
+		{26DC4FA0-789D-434B-A342-79D9440D4B10}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
27
+		{26DC4FA0-789D-434B-A342-79D9440D4B10}.Debug|Any CPU.Build.0 = Debug|Any CPU
28
+		{26DC4FA0-789D-434B-A342-79D9440D4B10}.Release|Any CPU.ActiveCfg = Release|Any CPU
29
+		{26DC4FA0-789D-434B-A342-79D9440D4B10}.Release|Any CPU.Build.0 = Release|Any CPU
30
+	EndGlobalSection
31
+	GlobalSection(SolutionProperties) = preSolution
32
+		HideSolutionNode = FALSE
33
+	EndGlobalSection
34
+EndGlobal

Loading…
Отказ
Запис