소스 검색

added rss feed

tags/v2.0^0
Robin Thoni 7 년 전
부모
커밋
111045b13b

+ 305
- 356
backend/WebSem/.idea/.idea.WebSem/.idea/workspace.xml 파일 보기

@@ -2,12 +2,15 @@
2 2
 <project version="4">
3 3
   <component name="ChangeListManager">
4 4
     <list default="true" id="8d054e21-e284-419c-acba-f672639639a4" name="Default" comment="">
5
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/.idea.WebSem/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/.idea.WebSem/.idea/workspace.xml" />
5 6
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/WebApiWebSem/Business/ArticlesBusiness.cs" afterPath="$PROJECT_DIR$/WebApiWebSem/Business/ArticlesBusiness.cs" />
6
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/WebApiWebSem/DataAccess/ArticlesDataAccess.cs" afterPath="$PROJECT_DIR$/WebApiWebSem/DataAccess/ArticlesDataAccess.cs" />
7
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/WebApiWebSem/DataAccess/DbPediaDataAccess.cs" afterPath="$PROJECT_DIR$/WebApiWebSem/DataAccess/DbPediaDataAccess.cs" />
8
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/WebApiWebSem/DataAccess/ModelsDbo.cs" afterPath="$PROJECT_DIR$/WebApiWebSem/DataAccess/ModelsDbo.cs" />
9
-      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/WebApiWebSem/Dbo/Articles/ArticlesDbo.cs" afterPath="$PROJECT_DIR$/WebApiWebSem/Dbo/Articles/ArticlesDbo.cs" />
7
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/WebApiWebSem/Dbo/AppConfigDbo.cs" afterPath="$PROJECT_DIR$/WebApiWebSem/Dbo/AppConfigDbo.cs" />
10 8
       <change type="MODIFICATION" beforePath="$PROJECT_DIR$/WebApiWebSem/Startup.cs" afterPath="$PROJECT_DIR$/WebApiWebSem/Startup.cs" />
9
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/WebApiWebSem/appsettings.json" afterPath="$PROJECT_DIR$/WebApiWebSem/appsettings.json" />
10
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../frontend/WebSem/app/app.js" afterPath="$PROJECT_DIR$/../../frontend/WebSem/app/app.js" />
11
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../frontend/WebSem/app/controllers/home.controller.js" afterPath="$PROJECT_DIR$/../../frontend/WebSem/app/controllers/home.controller.js" />
12
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../frontend/WebSem/app/index.html" afterPath="$PROJECT_DIR$/../../frontend/WebSem/app/index.html" />
13
+      <change type="MODIFICATION" beforePath="$PROJECT_DIR$/../../frontend/WebSem/app/views/home.html" afterPath="$PROJECT_DIR$/../../frontend/WebSem/app/views/home.html" />
11 14
     </list>
12 15
     <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
13 16
     <option name="TRACKING_ENABLED" value="true" />
@@ -39,83 +42,7 @@
39 42
   </component>
40 43
   <component name="ExecutionTargetManager" SELECTED_TARGET="default_target" />
41 44
   <component name="FileEditorManager">
42
-    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
43
-      <file leaf-file-name="ArticlesBusiness.cs" pinned="false" current-in-tab="false">
44
-        <entry file="file://$PROJECT_DIR$/WebApiWebSem/Business/ArticlesBusiness.cs">
45
-          <provider selected="true" editor-type-id="text-editor">
46
-            <state relative-caret-position="396">
47
-              <caret line="22" column="59" lean-forward="false" selection-start-line="22" selection-start-column="59" selection-end-line="22" selection-end-column="59" />
48
-              <folding>
49
-                <marker date="1489888100823" expanded="true" signature="6:240" ph="..." />
50
-                <marker date="1489888100823" expanded="true" signature="273:1202" ph="{...}" />
51
-                <marker date="1489888100823" expanded="true" signature="400:1200" ph="{...}" />
52
-                <marker date="1489888100823" expanded="true" signature="660:769" ph="{...}" />
53
-                <marker date="1489888100823" expanded="true" signature="875:1194" ph="{...}" />
54
-                <marker date="1489888100823" expanded="true" signature="946:1184" ph="/* var result = _dbPediaDataAccess.GetMultiple(request); ... */" />
55
-              </folding>
56
-            </state>
57
-          </provider>
58
-        </entry>
59
-      </file>
60
-      <file leaf-file-name="DbPediaDataAccess.cs" pinned="false" current-in-tab="true">
61
-        <entry file="file://$PROJECT_DIR$/WebApiWebSem/DataAccess/DbPediaDataAccess.cs">
62
-          <provider selected="true" editor-type-id="text-editor">
63
-            <state relative-caret-position="463">
64
-              <caret line="134" column="12" lean-forward="true" selection-start-line="134" selection-start-column="12" selection-end-line="134" selection-end-column="12" />
65
-              <folding>
66
-                <marker date="1489890980119" expanded="true" signature="6:327" ph="..." />
67
-                <marker date="1489890980119" expanded="true" signature="362:5964" ph="{...}" />
68
-                <marker date="1489890980119" expanded="true" signature="399:5962" ph="{...}" />
69
-                <marker date="1489890980119" expanded="true" signature="1211:1319" ph="{...}" />
70
-                <marker date="1489890980119" expanded="true" signature="1370:1451" ph="{...}" />
71
-                <marker date="1489890980119" expanded="true" signature="1516:1906" ph="{...}" />
72
-                <marker date="1489890980119" expanded="true" signature="1585:1754" ph="{...}" />
73
-                <marker date="1489890980119" expanded="true" signature="1786:1896" ph="{...}" />
74
-                <marker date="1489890980119" expanded="true" signature="1969:3220" ph="{...}" />
75
-                <marker date="1489890980119" expanded="true" signature="2030:2100" ph="{...}" />
76
-                <marker date="1489890980119" expanded="true" signature="2156:3186" ph="{...}" />
77
-                <marker date="1489890980119" expanded="true" signature="2279:2371" ph="{...}" />
78
-                <marker date="1489890980119" expanded="true" signature="2409:2498" ph="{...}" />
79
-                <marker date="1489890980119" expanded="true" signature="2547:2620" ph="{...}" />
80
-                <marker date="1489890980119" expanded="true" signature="2671:2750" ph="{...}" />
81
-                <marker date="1489890980119" expanded="true" signature="2802:2885" ph="{...}" />
82
-                <marker date="1489890980119" expanded="true" signature="2906:3172" ph="{...}" />
83
-                <marker date="1489890980119" expanded="true" signature="3002:3152" ph="{...}" />
84
-                <marker date="1489890980119" expanded="true" signature="3317:5956" ph="{...}" />
85
-                <marker date="1489890980119" expanded="true" signature="3586:4021" ph="{...}" />
86
-                <marker date="1489890980119" expanded="true" signature="4061:4741" ph="{...}" />
87
-                <marker date="1489890980119" expanded="true" signature="5018:5110" ph="{...}" />
88
-                <marker date="1489890980119" expanded="true" signature="5423:5513" ph="{...}" />
89
-                <marker date="1489890980119" expanded="true" signature="5584:5875" ph="{...}" />
90
-                <marker date="1489890980119" expanded="true" signature="5746:5851" ph="{...}" />
91
-              </folding>
92
-            </state>
93
-          </provider>
94
-        </entry>
95
-      </file>
96
-      <file leaf-file-name="ModelsDbo.cs" pinned="false" current-in-tab="false">
97
-        <entry file="file://$PROJECT_DIR$/WebApiWebSem/DataAccess/ModelsDbo.cs">
98
-          <provider selected="true" editor-type-id="text-editor">
99
-            <state relative-caret-position="535">
100
-              <caret line="50" column="20" lean-forward="false" selection-start-line="50" selection-start-column="20" selection-end-line="50" selection-end-column="20" />
101
-              <folding>
102
-                <marker date="1489889072103" expanded="true" signature="6:192" ph="..." />
103
-                <marker date="1489889072103" expanded="true" signature="227:1629" ph="{...}" />
104
-                <marker date="1489889072103" expanded="true" signature="263:1627" ph="{...}" />
105
-                <marker date="1489889072103" expanded="true" signature="343:635" ph="{...}" />
106
-                <marker date="1489889072103" expanded="true" signature="384:441" ph="{...}" />
107
-                <marker date="1489889072103" expanded="true" signature="495:624" ph="{...}" />
108
-                <marker date="1489889072103" expanded="true" signature="697:1309" ph="{...}" />
109
-                <marker date="1489889072103" expanded="true" signature="738:795" ph="{...}" />
110
-                <marker date="1489889072103" expanded="true" signature="843:1298" ph="{...}" />
111
-                <marker date="1489889072103" expanded="true" signature="1384:1621" ph="{...}" />
112
-                <marker date="1489889072103" expanded="true" signature="1462:1608" ph="{...}" />
113
-              </folding>
114
-            </state>
115
-          </provider>
116
-        </entry>
117
-      </file>
118
-    </leaf>
45
+    <leaf SIDE_TABS_SIZE_LIMIT_KEY="300" />
119 46
   </component>
120 47
   <component name="FindInProjectRecents">
121 48
     <findStrings>
@@ -133,11 +60,9 @@
133 60
       <list>
134 61
         <option value="$PROJECT_DIR$/WebApiWebSem/DataAccess/code-from-ds/Models.twig" />
135 62
         <option value="$PROJECT_DIR$/WebApiWebSem/DataAccess/code-from-ds/DataSource.twig" />
136
-        <option value="$PROJECT_DIR$/WebApiWebSem/appsettings.json" />
137 63
         <option value="$APPLICATION_CONFIG_DIR$/consoles/db/044a321a-e68c-472c-91d9-0bc10ddf1c6d/console.sql" />
138 64
         <option value="$PROJECT_DIR$/WebApiWebSem/DataAccess/WsDbContext.cs" />
139 65
         <option value="$PROJECT_DIR$/WebApiWebSem/Middleware/SleepMiddleware.cs" />
140
-        <option value="$PROJECT_DIR$/WebApiWebSem/Dbo/AppConfigDbo.cs" />
141 66
         <option value="$PROJECT_DIR$/WebApiWebSem/Program.cs" />
142 67
         <option value="$PROJECT_DIR$/WebApiWebSem/project.json" />
143 68
         <option value="$PROJECT_DIR$/Test/project.json" />
@@ -161,17 +86,29 @@
161 86
         <option value="$PROJECT_DIR$/WebApiWebSem/DataAccess/WsDbContextPartial.cs" />
162 87
         <option value="$PROJECT_DIR$/WebApiWebSem/appsettings.Development.json" />
163 88
         <option value="$PROJECT_DIR$/WebApiWebSem/NuGet.Config" />
164
-        <option value="$PROJECT_DIR$/WebApiWebSem/Startup.cs" />
165 89
         <option value="$PROJECT_DIR$/WebApiWebSem/DataAccess/ArticlesDataAccess.cs" />
166 90
         <option value="$PROJECT_DIR$/WebApiWebSem/Dbo/Articles/ArticlesDbo.cs" />
167 91
         <option value="$USER_HOME$/.local/share/JetBrains/Shared/v08/DecompilerCache/decompiler/B35BB51A-DB6B-4A78-AE4D-837CEB0DDFE7/aa/d49fb44e/ValuedNodeExtensions.cs" />
168
-        <option value="$PROJECT_DIR$/WebApiWebSem/Business/ArticlesBusiness.cs" />
169 92
         <option value="$USER_HOME$/.local/share/JetBrains/Shared/v08/DecompilerCache/decompiler/68A505D3-EE90-4B2D-8432-759050F70CC3/02/1172cde1/LuOrderByDbo.cs" />
170 93
         <option value="$PROJECT_DIR$/WebApiWebSem/DataAccess/ModelsDbo.cs" />
171 94
         <option value="$PROJECT_DIR$/WebApiWebSem/DataAccess/DbPediaDataAccess.cs" />
95
+        <option value="$PROJECT_DIR$/WebApiWebSem/Dbo/Feed/FeedDbo.cs" />
96
+        <option value="$PROJECT_DIR$/WebApiWebSem/Dbo/AppConfigDbo.cs" />
97
+        <option value="$PROJECT_DIR$/WebApiWebSem/Business/FeedBusiness.cs" />
98
+        <option value="$PROJECT_DIR$/WebApiWebSem/Controllers/FeedController.cs" />
99
+        <option value="$PROJECT_DIR$/WebApiWebSem/Startup.cs" />
100
+        <option value="$PROJECT_DIR$/WebApiWebSem/Business/ArticlesBusiness.cs" />
101
+        <option value="$PROJECT_DIR$/WebApiWebSem/DataAccess/FeedDataAccess.cs" />
102
+        <option value="$PROJECT_DIR$/WebApiWebSem/appsettings.json" />
172 103
       </list>
173 104
     </option>
174 105
   </component>
106
+  <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
107
+  <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
108
+  <component name="JsGulpfileManager">
109
+    <detection-done>true</detection-done>
110
+    <sorting>DEFINITION_ORDER</sorting>
111
+  </component>
175 112
   <component name="ProjectFrameBounds">
176 113
     <option name="width" value="1920" />
177 114
     <option name="height" value="1061" />
@@ -210,6 +147,24 @@
210 147
               <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
211 148
             </PATH_ELEMENT>
212 149
           </PATH>
150
+          <PATH>
151
+            <PATH_ELEMENT>
152
+              <option name="myItemId" />
153
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
154
+            </PATH_ELEMENT>
155
+            <PATH_ELEMENT>
156
+              <option name="myItemId" value="WebSem (2 projects)" />
157
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
158
+            </PATH_ELEMENT>
159
+            <PATH_ELEMENT>
160
+              <option name="myItemId" value="WebApiWebSem" />
161
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
162
+            </PATH_ELEMENT>
163
+            <PATH_ELEMENT>
164
+              <option name="myItemId" value="Dbo" />
165
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
166
+            </PATH_ELEMENT>
167
+          </PATH>
213 168
           <PATH>
214 169
             <PATH_ELEMENT>
215 170
               <option name="myItemId" />
@@ -228,6 +183,24 @@
228 183
               <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
229 184
             </PATH_ELEMENT>
230 185
           </PATH>
186
+          <PATH>
187
+            <PATH_ELEMENT>
188
+              <option name="myItemId" />
189
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerViewPane$ProjectViewPaneTreeStructure$createRoot$1" />
190
+            </PATH_ELEMENT>
191
+            <PATH_ELEMENT>
192
+              <option name="myItemId" value="WebSem (2 projects)" />
193
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
194
+            </PATH_ELEMENT>
195
+            <PATH_ELEMENT>
196
+              <option name="myItemId" value="WebApiWebSem" />
197
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
198
+            </PATH_ELEMENT>
199
+            <PATH_ELEMENT>
200
+              <option name="myItemId" value="Controllers" />
201
+              <option name="myItemType" value="com.jetbrains.resharper.projectView.solutionExplorer.SolutionExplorerNodeRider" />
202
+            </PATH_ELEMENT>
203
+          </PATH>
231 204
           <PATH>
232 205
             <PATH_ELEMENT>
233 206
               <option name="myItemId" />
@@ -271,6 +244,18 @@
271 244
     <property name="RiderNuGetCacheManager.AutoClear.global-packages" value="2" />
272 245
     <property name="RiderNuGetCacheManager.AutoClear.temp" value="1" />
273 246
   </component>
247
+  <component name="RunDashboard">
248
+    <option name="ruleStates">
249
+      <list>
250
+        <RuleState>
251
+          <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
252
+        </RuleState>
253
+        <RuleState>
254
+          <option name="name" value="StatusDashboardGroupingRule" />
255
+        </RuleState>
256
+      </list>
257
+    </option>
258
+  </component>
274 259
   <component name="RunManager" selected=".NET Project.Default">
275 260
     <configuration default="true" type="DotNetProject" factoryName=".NET Project">
276 261
       <option name="PROJECT_PATH" value="" />
@@ -284,6 +269,25 @@
284 269
       <envs />
285 270
       <method />
286 271
     </configuration>
272
+    <configuration default="true" type="JavaScriptTestRunnerProtractor" factoryName="Protractor">
273
+      <config-file value="" />
274
+      <node-interpreter value="project" />
275
+      <envs />
276
+      <method />
277
+    </configuration>
278
+    <configuration default="true" type="JavascriptDebugType" factoryName="JavaScript Debug">
279
+      <method />
280
+    </configuration>
281
+    <configuration default="true" type="js.build_tools.gulp" factoryName="Gulp.js">
282
+      <method />
283
+    </configuration>
284
+    <configuration default="true" type="js.build_tools.npm" factoryName="npm">
285
+      <command value="run" />
286
+      <scripts />
287
+      <node-interpreter value="project" />
288
+      <envs />
289
+      <method />
290
+    </configuration>
287 291
     <configuration default="false" name="Default" type="DotNetProject" factoryName=".NET Project">
288 292
       <option name="PROJECT_PATH" value="$PROJECT_DIR$/WebApiWebSem/WebApiWebSem.xproj" />
289 293
       <option name="PROJECT_KIND" value="DotNetCore" />
@@ -331,12 +335,18 @@
331 335
       <workItem from="1487441650798" duration="14018000" />
332 336
       <workItem from="1487528667649" duration="13931000" />
333 337
       <workItem from="1487802391451" duration="10532000" />
334
-      <workItem from="1489874619333" duration="10934000" />
338
+      <workItem from="1489874619333" duration="11956000" />
339
+      <workItem from="1490201975293" duration="17000" />
340
+      <workItem from="1490359051533" duration="625000" />
341
+      <workItem from="1490359748422" duration="270000" />
342
+      <workItem from="1490372219333" duration="10000" />
343
+      <workItem from="1490476170256" duration="5961000" />
344
+      <workItem from="1492179432978" duration="5890000" />
335 345
     </task>
336 346
     <servers />
337 347
   </component>
338 348
   <component name="TimeTrackingManager">
339
-    <option name="totallyTimeSpent" value="62263000" />
349
+    <option name="totallyTimeSpent" value="76058000" />
340 350
   </component>
341 351
   <component name="TodoView">
342 352
     <todo-panel id="selected-file">
@@ -349,20 +359,20 @@
349 359
   </component>
350 360
   <component name="ToolWindowManager">
351 361
     <frame x="0" y="0" width="1920" height="1061" extended-state="0" />
352
-    <editor active="true" />
353 362
     <layout>
354 363
       <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32908705" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
355 364
       <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.32976446" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
365
+      <window_info id="Run Dashboard" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
356 366
       <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="9" side_tool="true" content_ui="tabs" />
357 367
       <window_info id="Unit Tests" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.26963907" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
358
-      <window_info id="Run Dashboard" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
368
+      <window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.3195329" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
359 369
       <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="10" side_tool="false" content_ui="tabs" />
360
-      <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.2282378" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
361 370
       <window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.19745223" sideWeight="0.5" order="12" side_tool="false" content_ui="tabs" />
362 371
       <window_info id="NuGet" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.24203822" sideWeight="0.5" order="13" side_tool="false" content_ui="tabs" />
363 372
       <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="7" side_tool="true" content_ui="tabs" />
364
-      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.20021413" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
373
+      <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.21413276" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
365 374
       <window_info id="Build" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32908705" sideWeight="0.5" order="8" side_tool="false" content_ui="tabs" />
375
+      <window_info id="Inspection Results" 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="14" side_tool="true" content_ui="tabs" />
366 376
       <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.21199143" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
367 377
       <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" />
368 378
       <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.39915073" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
@@ -370,98 +380,26 @@
370 380
       <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" />
371 381
       <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" />
372 382
       <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" />
373
-      <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" />
374 383
       <window_info id="UnitTesting" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32908705" sideWeight="0.5" order="11" side_tool="false" content_ui="tabs" />
375 384
       <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" />
376
-      <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" />
377 385
       <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" />
386
+      <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" />
387
+      <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" />
378 388
     </layout>
379 389
   </component>
390
+  <component name="TypeScriptGeneratedFilesManager">
391
+    <option name="processedProjectFiles" value="true" />
392
+  </component>
380 393
   <component name="VcsContentAnnotationSettings">
381 394
     <option name="myLimit" value="2678400000" />
382 395
   </component>
383 396
   <component name="XDebuggerManager">
384 397
     <breakpoint-manager>
385
-      <option name="time" value="4" />
398
+      <option name="time" value="5" />
386 399
     </breakpoint-manager>
387 400
     <watches-manager />
388 401
   </component>
389 402
   <component name="editorHistoryManager">
390
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/NuGet.Config">
391
-      <provider selected="true" editor-type-id="text-editor">
392
-        <state relative-caret-position="108">
393
-          <caret line="6" column="16" lean-forward="true" selection-start-line="6" selection-start-column="16" selection-end-line="6" selection-end-column="16" />
394
-          <folding />
395
-        </state>
396
-      </provider>
397
-    </entry>
398
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/DataAccess/ArticlesDataAccess.cs">
399
-      <provider selected="true" editor-type-id="text-editor">
400
-        <state relative-caret-position="1854">
401
-          <caret line="103" column="17" lean-forward="true" selection-start-line="103" selection-start-column="17" selection-end-line="103" selection-end-column="17" />
402
-          <folding>
403
-            <marker date="1489884464670" expanded="true" signature="6:307" ph="..." />
404
-            <marker date="1489884464670" expanded="true" signature="342:4298" ph="{...}" />
405
-            <marker date="1489884464670" expanded="true" signature="478:4296" ph="{...}" />
406
-            <marker date="1489884464670" expanded="true" signature="684:704" ph="{...}" />
407
-            <marker date="1489884464670" expanded="true" signature="756:799" ph="{...}" />
408
-            <marker date="1489884464670" expanded="true" signature="908:1003" ph="{...}" />
409
-            <marker date="1489884464670" expanded="true" signature="1113:1180" ph="{...}" />
410
-            <marker date="1489884464670" expanded="true" signature="1249:1301" ph="{...}" />
411
-            <marker date="1489884464670" expanded="true" signature="1365:1603" ph="{...}" />
412
-            <marker date="1489884464670" expanded="true" signature="1501:1558" ph="{...}" />
413
-            <marker date="1489884464670" expanded="true" signature="1704:2108" ph="{...}" />
414
-            <marker date="1489884464670" expanded="true" signature="2185:2709" ph="{...}" />
415
-            <marker date="1489884464670" expanded="true" signature="2240:2698" ph="{...}" />
416
-            <marker date="1489884464670" expanded="true" signature="2502:2641" ph="{...}" />
417
-            <marker date="1489884464670" expanded="true" signature="2800:2959" ph="{...}" />
418
-            <marker date="1489884464670" expanded="true" signature="3102:4164" ph="{...}" />
419
-            <marker date="1489884464670" expanded="true" signature="3277:3363" ph="{...}" />
420
-            <marker date="1489884464670" expanded="true" signature="3423:3656" ph="{...}" />
421
-            <marker date="1489884464670" expanded="true" signature="3810:4110" ph="{...}" />
422
-            <marker date="1489884464670" expanded="true" signature="3906:4094" ph="{...}" />
423
-            <marker date="1489884464670" expanded="true" signature="4236:4290" ph="{...}" />
424
-          </folding>
425
-        </state>
426
-      </provider>
427
-    </entry>
428
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/DataAccess/ArticlesDataAccess.cs">
429
-      <provider selected="true" editor-type-id="text-editor">
430
-        <state relative-caret-position="0">
431
-          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
432
-          <folding>
433
-            <marker date="1489884464670" expanded="true" signature="6:307" ph="..." />
434
-            <marker date="1489884464670" expanded="true" signature="342:4298" ph="{...}" />
435
-            <marker date="1489884464670" expanded="true" signature="478:4296" ph="{...}" />
436
-            <marker date="1489884464670" expanded="true" signature="684:704" ph="{...}" />
437
-            <marker date="1489884464670" expanded="true" signature="756:799" ph="{...}" />
438
-            <marker date="1489884464670" expanded="true" signature="908:1003" ph="{...}" />
439
-            <marker date="1489884464670" expanded="true" signature="1113:1180" ph="{...}" />
440
-            <marker date="1489884464670" expanded="true" signature="1249:1301" ph="{...}" />
441
-            <marker date="1489884464670" expanded="true" signature="1365:1603" ph="{...}" />
442
-            <marker date="1489884464670" expanded="true" signature="1501:1558" ph="{...}" />
443
-            <marker date="1489884464670" expanded="true" signature="1704:2108" ph="{...}" />
444
-            <marker date="1489884464670" expanded="true" signature="2185:2709" ph="{...}" />
445
-            <marker date="1489884464670" expanded="true" signature="2240:2698" ph="{...}" />
446
-            <marker date="1489884464670" expanded="true" signature="2502:2641" ph="{...}" />
447
-            <marker date="1489884464670" expanded="true" signature="2800:2959" ph="{...}" />
448
-            <marker date="1489884464670" expanded="true" signature="3102:4164" ph="{...}" />
449
-            <marker date="1489884464670" expanded="true" signature="3277:3363" ph="{...}" />
450
-            <marker date="1489884464670" expanded="true" signature="3423:3656" ph="{...}" />
451
-            <marker date="1489884464670" expanded="true" signature="3810:4110" ph="{...}" />
452
-            <marker date="1489884464670" expanded="true" signature="3906:4094" ph="{...}" />
453
-            <marker date="1489884464670" expanded="true" signature="4236:4290" ph="{...}" />
454
-          </folding>
455
-        </state>
456
-      </provider>
457
-    </entry>
458
-    <entry file="file://$PROJECT_DIR$/Test/DataAccess/ArticlesDataAccessTest.cs">
459
-      <provider selected="true" editor-type-id="text-editor">
460
-        <state relative-caret-position="1566">
461
-          <caret line="87" column="21" lean-forward="false" selection-start-line="87" selection-start-column="21" selection-end-line="87" selection-end-column="21" />
462
-        </state>
463
-      </provider>
464
-    </entry>
465 403
     <entry file="file://$PROJECT_DIR$/Test/Tests.cs">
466 404
       <provider selected="true" editor-type-id="text-editor">
467 405
         <state relative-caret-position="0">
@@ -540,13 +478,6 @@
540 478
         </state>
541 479
       </provider>
542 480
     </entry>
543
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Dbo/AppConfigDbo.cs">
544
-      <provider selected="true" editor-type-id="text-editor">
545
-        <state relative-caret-position="72">
546
-          <caret line="4" column="42" lean-forward="false" selection-start-line="4" selection-start-column="42" selection-end-line="4" selection-end-column="42" />
547
-        </state>
548
-      </provider>
549
-    </entry>
550 481
     <entry file="file://$PROJECT_DIR$/WebApiWebSem/Controllers/ValuesController.cs" />
551 482
     <entry file="file://$PROJECT_DIR$/WebApiWebSem/DataAccess/code-from-ds/DataSource.twig">
552 483
       <provider selected="true" editor-type-id="text-editor">
@@ -597,13 +528,6 @@
597 528
         </state>
598 529
       </provider>
599 530
     </entry>
600
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Controllers/ArticlesController.cs">
601
-      <provider selected="true" editor-type-id="text-editor">
602
-        <state relative-caret-position="216">
603
-          <caret line="12" column="9" lean-forward="false" selection-start-line="12" selection-start-column="9" selection-end-line="12" selection-end-column="9" />
604
-        </state>
605
-      </provider>
606
-    </entry>
607 531
     <entry file="file://$PROJECT_DIR$/WebApiWebSem/Program.cs">
608 532
       <provider selected="true" editor-type-id="text-editor">
609 533
         <state relative-caret-position="0">
@@ -618,13 +542,6 @@
618 542
         </state>
619 543
       </provider>
620 544
     </entry>
621
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Dbo/Articles/ArticlesAddDbo.cs">
622
-      <provider selected="true" editor-type-id="text-editor">
623
-        <state relative-caret-position="144">
624
-          <caret line="8" column="38" lean-forward="true" selection-start-line="8" selection-start-column="38" selection-end-line="8" selection-end-column="38" />
625
-        </state>
626
-      </provider>
627
-    </entry>
628 545
     <entry file="file://$PROJECT_DIR$/WebApiWebSem/Dbo/Articles/ArticlesEditDbo.cs">
629 546
       <provider selected="true" editor-type-id="text-editor">
630 547
         <state relative-caret-position="90">
@@ -653,13 +570,6 @@
653 570
         </state>
654 571
       </provider>
655 572
     </entry>
656
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Dbo/Articles/ArticlesBasicDbo.cs">
657
-      <provider selected="true" editor-type-id="text-editor">
658
-        <state relative-caret-position="144">
659
-          <caret line="8" column="44" lean-forward="false" selection-start-line="8" selection-start-column="44" selection-end-line="8" selection-end-column="44" />
660
-        </state>
661
-      </provider>
662
-    </entry>
663 573
     <entry file="file://$USER_HOME$/.local/share/JetBrains/Shared/v08/DecompilerCache/decompiler/68A505D3-EE90-4B2D-8432-759050F70CC3/8e/cee9fac8/LuResult`1.cs">
664 574
       <provider selected="true" editor-type-id="text-editor">
665 575
         <state relative-caret-position="180">
@@ -685,34 +595,6 @@
685 595
       <provider selected="true" editor-type-id="text-editor">
686 596
         <state relative-caret-position="54">
687 597
           <caret line="3" column="32" lean-forward="false" selection-start-line="3" selection-start-column="32" selection-end-line="3" selection-end-column="32" />
688
-          <folding>
689
-            <marker date="1487965313989" expanded="true" signature="0:1500" ph="{...}" />
690
-            <marker date="1487965313989" expanded="true" signature="20:777" ph="{...}" />
691
-            <marker date="1487965313989" expanded="true" signature="87:155" ph="{...}" />
692
-            <marker date="1487965313989" expanded="true" signature="791:875" ph="{...}" />
693
-            <marker date="1487965313989" expanded="true" signature="894:1006" ph="{...}" />
694
-            <marker date="1487965313989" expanded="true" signature="917:1002" ph="{...}" />
695
-            <marker date="1487965313989" expanded="true" signature="936:996" ph="[...]" />
696
-            <marker date="1487965313989" expanded="true" signature="1027:1128" ph="{...}" />
697
-            <marker date="1487965313989" expanded="true" signature="1151:1219" ph="{...}" />
698
-            <marker date="1487965313989" expanded="true" signature="1177:1215" ph="{...}" />
699
-            <marker date="1487965313989" expanded="true" signature="1242:1353" ph="{...}" />
700
-            <marker date="1487965313989" expanded="true" signature="1259:1349" ph="[...]" />
701
-            <marker date="1487965313989" expanded="true" signature="1369:1498" ph="{...}" />
702
-          </folding>
703
-        </state>
704
-      </provider>
705
-    </entry>
706
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/appsettings.Development.json">
707
-      <provider selected="true" editor-type-id="text-editor">
708
-        <state relative-caret-position="252">
709
-          <caret line="14" column="1" lean-forward="false" selection-start-line="14" selection-start-column="1" selection-end-line="14" selection-end-column="1" />
710
-          <folding>
711
-            <marker date="1487965313989" expanded="true" signature="0:490" ph="{...}" />
712
-            <marker date="1487965313989" expanded="true" signature="17:297" ph="{...}" />
713
-            <marker date="1487965313989" expanded="true" signature="71:291" ph="{...}" />
714
-            <marker date="1487965313989" expanded="true" signature="324:468" ph="{...}" />
715
-          </folding>
716 598
         </state>
717 599
       </provider>
718 600
     </entry>
@@ -720,29 +602,6 @@
720 602
       <provider selected="true" editor-type-id="text-editor">
721 603
         <state relative-caret-position="0">
722 604
           <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
723
-          <folding>
724
-            <marker date="1487965313981" expanded="true" signature="6:212" ph="..." />
725
-            <marker date="1487965313981" expanded="true" signature="239:5555" ph="{...}" />
726
-            <marker date="1487965313981" expanded="true" signature="281:5553" ph="{...}" />
727
-            <marker date="1487965313981" expanded="true" signature="330:1383" ph="{...}" />
728
-            <marker date="1487965313981" expanded="true" signature="399:1371" ph="{...}" />
729
-            <marker date="1487965313981" expanded="true" signature="489:1231" ph="{...}" />
730
-            <marker date="1487965313981" expanded="true" signature="571:844" ph="{...}" />
731
-            <marker date="1487965313981" expanded="true" signature="646:822" ph="{...}" />
732
-            <marker date="1487965313981" expanded="true" signature="1427:2817" ph="{...}" />
733
-            <marker date="1487965313981" expanded="true" signature="1496:2805" ph="{...}" />
734
-            <marker date="1487965313981" expanded="true" signature="1586:2328" ph="{...}" />
735
-            <marker date="1487965313981" expanded="true" signature="1668:1941" ph="{...}" />
736
-            <marker date="1487965313981" expanded="true" signature="1743:1919" ph="{...}" />
737
-            <marker date="1487965313981" expanded="true" signature="2861:5547" ph="{...}" />
738
-            <marker date="1487965313981" expanded="true" signature="2930:5535" ph="{...}" />
739
-            <marker date="1487965313981" expanded="true" signature="3020:3762" ph="{...}" />
740
-            <marker date="1487965313981" expanded="true" signature="3102:3375" ph="{...}" />
741
-            <marker date="1487965313981" expanded="true" signature="3177:3353" ph="{...}" />
742
-            <marker date="1487965313981" expanded="true" signature="4003:4642" ph="{...}" />
743
-            <marker date="1487965313981" expanded="true" signature="4086:4359" ph="{...}" />
744
-            <marker date="1487965313981" expanded="true" signature="4161:4337" ph="{...}" />
745
-          </folding>
746 605
         </state>
747 606
       </provider>
748 607
     </entry>
@@ -750,7 +609,6 @@
750 609
       <provider selected="true" editor-type-id="text-editor">
751 610
         <state relative-caret-position="108">
752 611
           <caret line="6" column="16" lean-forward="false" selection-start-line="6" selection-start-column="16" selection-end-line="6" selection-end-column="16" />
753
-          <folding />
754 612
         </state>
755 613
       </provider>
756 614
     </entry>
@@ -758,45 +616,6 @@
758 616
       <provider selected="true" editor-type-id="text-editor">
759 617
         <state relative-caret-position="90">
760 618
           <caret line="5" column="36" lean-forward="false" selection-start-line="5" selection-start-column="25" selection-end-line="5" selection-end-column="36" />
761
-          <folding>
762
-            <marker date="1487965313985" expanded="true" signature="6:74" ph="..." />
763
-            <marker date="1487965313985" expanded="true" signature="109:1246" ph="{...}" />
764
-            <marker date="1487965313985" expanded="true" signature="160:1244" ph="{...}" />
765
-            <marker date="1487965313985" expanded="true" signature="234:254" ph="{...}" />
766
-            <marker date="1487965313985" expanded="true" signature="330:1073" ph="{...}" />
767
-          </folding>
768
-        </state>
769
-      </provider>
770
-    </entry>
771
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/appsettings.json">
772
-      <provider selected="true" editor-type-id="text-editor">
773
-        <state relative-caret-position="198">
774
-          <caret line="11" column="6" lean-forward="false" selection-start-line="11" selection-start-column="6" selection-end-line="11" selection-end-column="6" />
775
-          <folding>
776
-            <marker date="1487088044437" expanded="true" signature="0:654" ph="{...}" />
777
-            <marker date="1487088044437" expanded="true" signature="17:459" ph="{...}" />
778
-            <marker date="1487088044437" expanded="true" signature="71:453" ph="{...}" />
779
-            <marker date="1487088044437" expanded="true" signature="486:650" ph="{...}" />
780
-          </folding>
781
-        </state>
782
-      </provider>
783
-    </entry>
784
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Startup.cs">
785
-      <provider selected="true" editor-type-id="text-editor">
786
-        <state relative-caret-position="270">
787
-          <caret line="48" column="56" lean-forward="true" selection-start-line="48" selection-start-column="56" selection-end-line="48" selection-end-column="56" />
788
-          <folding>
789
-            <marker date="1489884464634" expanded="true" signature="6:444" ph="..." />
790
-            <marker date="1489884464634" expanded="true" signature="468:3234" ph="{...}" />
791
-            <marker date="1489884464634" expanded="true" signature="495:3232" ph="{...}" />
792
-            <marker date="1489884464634" expanded="true" signature="598:1306" ph="{...}" />
793
-            <marker date="1489884464634" expanded="true" signature="961:1203" ph="{...}" />
794
-            <marker date="1489884464634" expanded="true" signature="1532:2693" ph="{...}" />
795
-            <marker date="1489884464634" expanded="true" signature="2067:2191" ph="{...}" />
796
-            <marker date="1489884464634" expanded="true" signature="2252:2586" ph="{...}" />
797
-            <marker date="1489884464634" expanded="true" signature="2910:3226" ph="{...}" />
798
-            <marker date="1489884464634" expanded="true" signature="3107:3189" ph="{...}" />
799
-          </folding>
800 619
         </state>
801 620
       </provider>
802 621
     </entry>
@@ -804,11 +623,6 @@
804 623
       <provider selected="true" editor-type-id="text-editor">
805 624
         <state relative-caret-position="126">
806 625
           <caret line="7" column="24" lean-forward="false" selection-start-line="7" selection-start-column="24" selection-end-line="7" selection-end-column="24" />
807
-          <folding>
808
-            <marker date="1489886985427" expanded="true" signature="6:52" ph="..." />
809
-            <marker date="1489886985427" expanded="true" signature="89:269" ph="{...}" />
810
-            <marker date="1489886985427" expanded="true" signature="156:267" ph="{...}" />
811
-          </folding>
812 626
         </state>
813 627
       </provider>
814 628
     </entry>
@@ -816,7 +630,6 @@
816 630
       <provider selected="true" editor-type-id="text-editor">
817 631
         <state relative-caret-position="198">
818 632
           <caret line="17" column="30" lean-forward="false" selection-start-line="17" selection-start-column="30" selection-end-line="17" selection-end-column="30" />
819
-          <folding />
820 633
         </state>
821 634
       </provider>
822 635
     </entry>
@@ -824,29 +637,6 @@
824 637
       <provider selected="true" editor-type-id="text-editor">
825 638
         <state relative-caret-position="232">
826 639
           <caret line="13" column="17" lean-forward="false" selection-start-line="13" selection-start-column="17" selection-end-line="13" selection-end-column="17" />
827
-          <folding>
828
-            <marker date="1489884464670" expanded="true" signature="6:307" ph="..." />
829
-            <marker date="1489884464670" expanded="true" signature="342:4298" ph="{...}" />
830
-            <marker date="1489884464670" expanded="true" signature="478:4296" ph="{...}" />
831
-            <marker date="1489884464670" expanded="true" signature="684:704" ph="{...}" />
832
-            <marker date="1489884464670" expanded="true" signature="756:799" ph="{...}" />
833
-            <marker date="1489884464670" expanded="true" signature="908:1003" ph="{...}" />
834
-            <marker date="1489884464670" expanded="true" signature="1113:1180" ph="{...}" />
835
-            <marker date="1489884464670" expanded="true" signature="1249:1301" ph="{...}" />
836
-            <marker date="1489884464670" expanded="true" signature="1365:1603" ph="{...}" />
837
-            <marker date="1489884464670" expanded="true" signature="1501:1558" ph="{...}" />
838
-            <marker date="1489884464670" expanded="true" signature="1704:2108" ph="{...}" />
839
-            <marker date="1489884464670" expanded="true" signature="2185:2709" ph="{...}" />
840
-            <marker date="1489884464670" expanded="true" signature="2240:2698" ph="{...}" />
841
-            <marker date="1489884464670" expanded="true" signature="2502:2641" ph="{...}" />
842
-            <marker date="1489884464670" expanded="true" signature="2800:2959" ph="{...}" />
843
-            <marker date="1489884464670" expanded="true" signature="3102:4164" ph="{...}" />
844
-            <marker date="1489884464670" expanded="true" signature="3277:3363" ph="{...}" />
845
-            <marker date="1489884464670" expanded="true" signature="3423:3656" ph="{...}" />
846
-            <marker date="1489884464670" expanded="true" signature="3810:4110" ph="{...}" />
847
-            <marker date="1489884464670" expanded="true" signature="3906:4094" ph="{...}" />
848
-            <marker date="1489884464670" expanded="true" signature="4236:4290" ph="{...}" />
849
-          </folding>
850 640
         </state>
851 641
       </provider>
852 642
     </entry>
@@ -854,32 +644,26 @@
854 644
       <provider selected="true" editor-type-id="text-editor">
855 645
         <state relative-caret-position="198">
856 646
           <caret line="11" column="15" lean-forward="false" selection-start-line="11" selection-start-column="15" selection-end-line="11" selection-end-column="15" />
857
-          <folding />
858 647
         </state>
859 648
       </provider>
860 649
     </entry>
861
-    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Business/ArticlesBusiness.cs">
650
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Dbo/Articles/ArticlesBasicDbo.cs">
862 651
       <provider selected="true" editor-type-id="text-editor">
863
-        <state relative-caret-position="396">
864
-          <caret line="22" column="59" lean-forward="false" selection-start-line="22" selection-start-column="59" selection-end-line="22" selection-end-column="59" />
652
+        <state relative-caret-position="144">
653
+          <caret line="8" column="24" lean-forward="false" selection-start-line="8" selection-start-column="24" selection-end-line="8" selection-end-column="24" />
865 654
           <folding>
866
-            <marker date="1489888100823" expanded="true" signature="6:240" ph="..." />
867
-            <marker date="1489888100823" expanded="true" signature="273:1202" ph="{...}" />
868
-            <marker date="1489888100823" expanded="true" signature="400:1200" ph="{...}" />
869
-            <marker date="1489888100823" expanded="true" signature="660:769" ph="{...}" />
870
-            <marker date="1489888100823" expanded="true" signature="875:1194" ph="{...}" />
871
-            <marker date="1489888100823" expanded="true" signature="946:1184" ph="/* var result = _dbPediaDataAccess.GetMultiple(request); ... */" />
655
+            <marker date="1487965313985" expanded="true" signature="6:78" ph="..." />
656
+            <marker date="1487965313985" expanded="true" signature="154:391" ph="{...}" />
872 657
           </folding>
873 658
         </state>
874 659
       </provider>
875 660
     </entry>
876 661
     <entry file="file://$PROJECT_DIR$/WebApiWebSem/DataAccess/ModelsDbo.cs">
877 662
       <provider selected="true" editor-type-id="text-editor">
878
-        <state relative-caret-position="535">
663
+        <state relative-caret-position="900">
879 664
           <caret line="50" column="20" lean-forward="false" selection-start-line="50" selection-start-column="20" selection-end-line="50" selection-end-column="20" />
880 665
           <folding>
881 666
             <marker date="1489889072103" expanded="true" signature="6:192" ph="..." />
882
-            <marker date="1489889072103" expanded="true" signature="227:1629" ph="{...}" />
883 667
             <marker date="1489889072103" expanded="true" signature="263:1627" ph="{...}" />
884 668
             <marker date="1489889072103" expanded="true" signature="343:635" ph="{...}" />
885 669
             <marker date="1489889072103" expanded="true" signature="384:441" ph="{...}" />
@@ -895,34 +679,199 @@
895 679
     </entry>
896 680
     <entry file="file://$PROJECT_DIR$/WebApiWebSem/DataAccess/DbPediaDataAccess.cs">
897 681
       <provider selected="true" editor-type-id="text-editor">
898
-        <state relative-caret-position="463">
899
-          <caret line="134" column="12" lean-forward="true" selection-start-line="134" selection-start-column="12" selection-end-line="134" selection-end-column="12" />
682
+        <state relative-caret-position="3024">
683
+          <caret line="168" column="38" lean-forward="false" selection-start-line="168" selection-start-column="38" selection-end-line="168" selection-end-column="38" />
684
+          <folding>
685
+            <marker date="1490483316051" expanded="true" signature="6:327" ph="..." />
686
+            <marker date="1490483316051" expanded="true" signature="399:7450" ph="{...}" />
687
+            <marker date="1490483316051" expanded="true" signature="1211:1319" ph="{...}" />
688
+            <marker date="1490483316051" expanded="true" signature="1370:1451" ph="{...}" />
689
+            <marker date="1490483316051" expanded="true" signature="1516:1906" ph="{...}" />
690
+            <marker date="1490483316051" expanded="true" signature="1585:1754" ph="{...}" />
691
+            <marker date="1490483316051" expanded="true" signature="1786:1896" ph="{...}" />
692
+            <marker date="1490483316051" expanded="true" signature="1969:3326" ph="{...}" />
693
+            <marker date="1490483316051" expanded="true" signature="2030:2100" ph="{...}" />
694
+            <marker date="1490483316051" expanded="true" signature="2156:3292" ph="{...}" />
695
+            <marker date="1490483316051" expanded="true" signature="2279:2371" ph="{...}" />
696
+            <marker date="1490483316051" expanded="true" signature="2409:2498" ph="{...}" />
697
+            <marker date="1490483316051" expanded="true" signature="2547:2620" ph="{...}" />
698
+            <marker date="1490483316051" expanded="true" signature="2671:2750" ph="{...}" />
699
+            <marker date="1490483316051" expanded="true" signature="2802:2885" ph="{...}" />
700
+            <marker date="1490483316051" expanded="true" signature="2906:3278" ph="{...}" />
701
+            <marker date="1490483316051" expanded="true" signature="2962:3260" ph="{...}" />
702
+            <marker date="1490483316051" expanded="true" signature="3070:3236" ph="{...}" />
703
+            <marker date="1490483316051" expanded="true" signature="3423:7444" ph="{...}" />
704
+            <marker date="1490483316051" expanded="true" signature="3659:4094" ph="{...}" />
705
+            <marker date="1490483316051" expanded="true" signature="4134:4787" ph="{...}" />
706
+            <marker date="1490483316051" expanded="true" signature="4829:5627" ph="{...}" />
707
+            <marker date="1490483316051" expanded="true" signature="5669:6196" ph="{...}" />
708
+            <marker date="1490483316051" expanded="true" signature="6506:6598" ph="{...}" />
709
+            <marker date="1490483316051" expanded="true" signature="6911:7001" ph="{...}" />
710
+            <marker date="1490483316051" expanded="true" signature="7072:7363" ph="{...}" />
711
+            <marker date="1490483316051" expanded="true" signature="7234:7339" ph="{...}" />
712
+          </folding>
713
+        </state>
714
+      </provider>
715
+    </entry>
716
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Controllers/ArticlesController.cs">
717
+      <provider selected="true" editor-type-id="text-editor">
718
+        <state relative-caret-position="216">
719
+          <caret line="12" column="9" lean-forward="false" selection-start-line="12" selection-start-column="9" selection-end-line="12" selection-end-column="9" />
720
+          <folding>
721
+            <marker date="1487965313981" expanded="true" signature="6:165" ph="..." />
722
+            <marker date="1487965313981" expanded="true" signature="201:506" ph="{...}" />
723
+            <marker date="1487965313981" expanded="true" signature="330:504" ph="{...}" />
724
+            <marker date="1487965313981" expanded="true" signature="478:498" ph="{...}" />
725
+          </folding>
726
+        </state>
727
+      </provider>
728
+    </entry>
729
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Dbo/Feed/FeedDbo.cs">
730
+      <provider selected="true" editor-type-id="text-editor">
731
+        <state relative-caret-position="126">
732
+          <caret line="7" column="8" lean-forward="false" selection-start-line="7" selection-start-column="8" selection-end-line="7" selection-end-column="8" />
733
+          <folding>
734
+            <marker date="1492180029121" expanded="true" signature="46:267" ph="{...}" />
735
+            <marker date="1492180029121" expanded="true" signature="73:265" ph="{...}" />
736
+          </folding>
737
+        </state>
738
+      </provider>
739
+    </entry>
740
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/appsettings.Development.json">
741
+      <provider selected="true" editor-type-id="text-editor">
742
+        <state relative-caret-position="180">
743
+          <caret line="10" column="26" lean-forward="true" selection-start-line="10" selection-start-column="26" selection-end-line="10" selection-end-column="26" />
744
+          <folding>
745
+            <marker date="1487965313989" expanded="true" signature="0:490" ph="{...}" />
746
+            <marker date="1487965313989" expanded="true" signature="17:297" ph="{...}" />
747
+            <marker date="1487965313989" expanded="true" signature="71:291" ph="{...}" />
748
+            <marker date="1487965313989" expanded="true" signature="324:468" ph="{...}" />
749
+          </folding>
750
+        </state>
751
+      </provider>
752
+    </entry>
753
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Dbo/AppConfigDbo.cs">
754
+      <provider selected="true" editor-type-id="text-editor">
755
+        <state relative-caret-position="36">
756
+          <caret line="2" column="29" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="29" />
757
+          <folding>
758
+            <marker date="1492180735253" expanded="true" signature="26:160" ph="{...}" />
759
+            <marker date="1492180735253" expanded="true" signature="58:158" ph="{...}" />
760
+          </folding>
761
+        </state>
762
+      </provider>
763
+    </entry>
764
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Dbo/Articles/ArticlesAddDbo.cs">
765
+      <provider selected="true" editor-type-id="text-editor">
766
+        <state relative-caret-position="252">
767
+          <caret line="14" column="24" lean-forward="false" selection-start-line="14" selection-start-column="24" selection-end-line="14" selection-end-column="24" />
768
+          <folding>
769
+            <marker date="1487965313985" expanded="true" signature="6:83" ph="..." />
770
+            <marker date="1487965313985" expanded="true" signature="120:396" ph="{...}" />
771
+            <marker date="1487965313985" expanded="true" signature="179:310" ph="{...}" />
772
+            <marker date="1487965313985" expanded="true" signature="382:394" ph="{...}" />
773
+          </folding>
774
+        </state>
775
+      </provider>
776
+    </entry>
777
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Startup.cs">
778
+      <provider selected="true" editor-type-id="text-editor">
779
+        <state relative-caret-position="36">
780
+          <caret line="35" column="46" lean-forward="false" selection-start-line="35" selection-start-column="46" selection-end-line="35" selection-end-column="46" />
781
+          <folding>
782
+            <marker date="1492180812993" expanded="true" signature="6:444" ph="..." />
783
+            <marker date="1492180812993" expanded="true" signature="468:3395" ph="{...}" />
784
+            <marker date="1492180812993" expanded="true" signature="495:3393" ph="{...}" />
785
+            <marker date="1492180812993" expanded="true" signature="598:1306" ph="{...}" />
786
+            <marker date="1492180812993" expanded="true" signature="961:1203" ph="{...}" />
787
+            <marker date="1492180812993" expanded="true" signature="1532:2854" ph="{...}" />
788
+            <marker date="1492180812993" expanded="true" signature="2172:2352" ph="{...}" />
789
+            <marker date="1492180812993" expanded="true" signature="2413:2747" ph="{...}" />
790
+            <marker date="1492180812993" expanded="true" signature="3071:3387" ph="{...}" />
791
+            <marker date="1492180812993" expanded="true" signature="3268:3350" ph="{...}" />
792
+          </folding>
793
+        </state>
794
+      </provider>
795
+    </entry>
796
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Business/ArticlesBusiness.cs">
797
+      <provider selected="true" editor-type-id="text-editor">
798
+        <state relative-caret-position="-12">
799
+          <caret line="37" column="65" lean-forward="false" selection-start-line="37" selection-start-column="65" selection-end-line="37" selection-end-column="65" />
800
+          <folding>
801
+            <marker date="1492182144357" expanded="true" signature="6:327" ph="..." />
802
+            <marker date="1492182144357" expanded="true" signature="360:3236" ph="{...}" />
803
+            <marker date="1492182144357" expanded="true" signature="487:3234" ph="{...}" />
804
+            <marker date="1492182144357" expanded="true" signature="747:856" ph="{...}" />
805
+            <marker date="1492182144357" expanded="true" signature="962:3228" ph="{...}" />
806
+            <marker date="1492182144357" expanded="true" signature="1094:1172" ph="{...}" />
807
+            <marker date="1492182144357" expanded="true" signature="1317:2258" ph="{...}" />
808
+            <marker date="1492182144357" expanded="true" signature="1494:1807" ph="{...}" />
809
+            <marker date="1492182144357" expanded="true" signature="2260:3191" ph="{...}" />
810
+            <marker date="1492182144357" expanded="true" signature="2370:3028" ph="{...}" />
811
+            <marker date="1492182144357" expanded="true" signature="2496:3008" ph="{...}" />
812
+            <marker date="1492182144357" expanded="true" signature="2617:2788" ph="{...}" />
813
+            <marker date="1492182144357" expanded="true" signature="3086:3177" ph="{...}" />
814
+          </folding>
815
+        </state>
816
+      </provider>
817
+    </entry>
818
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/appsettings.json">
819
+      <provider selected="true" editor-type-id="text-editor">
820
+        <state relative-caret-position="288">
821
+          <caret line="16" column="58" lean-forward="false" selection-start-line="16" selection-start-column="58" selection-end-line="16" selection-end-column="58" />
822
+          <folding>
823
+            <marker date="1492184169217" expanded="true" signature="0:733" ph="{...}" />
824
+            <marker date="1492184169217" expanded="true" signature="17:459" ph="{...}" />
825
+            <marker date="1492184169217" expanded="true" signature="71:453" ph="{...}" />
826
+            <marker date="1492184169217" expanded="true" signature="486:650" ph="{...}" />
827
+          </folding>
828
+        </state>
829
+      </provider>
830
+    </entry>
831
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/DataAccess/FeedDataAccess.cs">
832
+      <provider selected="true" editor-type-id="text-editor">
833
+        <state relative-caret-position="144">
834
+          <caret line="20" column="78" lean-forward="false" selection-start-line="20" selection-start-column="78" selection-end-line="20" selection-end-column="78" />
835
+          <folding>
836
+            <marker date="1492183868361" expanded="true" signature="6:208" ph="..." />
837
+            <marker date="1492183868361" expanded="true" signature="243:2467" ph="{...}" />
838
+            <marker date="1492183868361" expanded="true" signature="277:2465" ph="{...}" />
839
+            <marker date="1492183868361" expanded="true" signature="341:2239" ph="{...}" />
840
+            <marker date="1492183868361" expanded="true" signature="367:2054" ph="{...}" />
841
+            <marker date="1492183868361" expanded="true" signature="435:2040" ph="{...}" />
842
+            <marker date="1492183868361" expanded="true" signature="703:2022" ph="{...}" />
843
+            <marker date="1492183868361" expanded="true" signature="910:2000" ph="{...}" />
844
+            <marker date="1492183868361" expanded="true" signature="1363:1891" ph="{...}" />
845
+            <marker date="1492183868361" expanded="true" signature="2086:2229" ph="{...}" />
846
+            <marker date="1492183868361" expanded="true" signature="2288:2459" ph="{...}" />
847
+          </folding>
848
+        </state>
849
+      </provider>
850
+    </entry>
851
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Business/FeedBusiness.cs">
852
+      <provider selected="true" editor-type-id="text-editor">
853
+        <state relative-caret-position="0">
854
+          <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
855
+          <folding>
856
+            <marker date="1492180735281" expanded="true" signature="6:206" ph="..." />
857
+            <marker date="1492180735281" expanded="true" signature="239:793" ph="{...}" />
858
+            <marker date="1492180735281" expanded="true" signature="271:791" ph="{...}" />
859
+            <marker date="1492180735281" expanded="true" signature="474:578" ph="{...}" />
860
+            <marker date="1492180735281" expanded="true" signature="625:785" ph="{...}" />
861
+          </folding>
862
+        </state>
863
+      </provider>
864
+    </entry>
865
+    <entry file="file://$PROJECT_DIR$/WebApiWebSem/Controllers/FeedController.cs">
866
+      <provider selected="true" editor-type-id="text-editor">
867
+        <state relative-caret-position="342">
868
+          <caret line="19" column="0" lean-forward="false" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
900 869
           <folding>
901
-            <marker date="1489890980119" expanded="true" signature="6:327" ph="..." />
902
-            <marker date="1489890980119" expanded="true" signature="362:5964" ph="{...}" />
903
-            <marker date="1489890980119" expanded="true" signature="399:5962" ph="{...}" />
904
-            <marker date="1489890980119" expanded="true" signature="1211:1319" ph="{...}" />
905
-            <marker date="1489890980119" expanded="true" signature="1370:1451" ph="{...}" />
906
-            <marker date="1489890980119" expanded="true" signature="1516:1906" ph="{...}" />
907
-            <marker date="1489890980119" expanded="true" signature="1585:1754" ph="{...}" />
908
-            <marker date="1489890980119" expanded="true" signature="1786:1896" ph="{...}" />
909
-            <marker date="1489890980119" expanded="true" signature="1969:3220" ph="{...}" />
910
-            <marker date="1489890980119" expanded="true" signature="2030:2100" ph="{...}" />
911
-            <marker date="1489890980119" expanded="true" signature="2156:3186" ph="{...}" />
912
-            <marker date="1489890980119" expanded="true" signature="2279:2371" ph="{...}" />
913
-            <marker date="1489890980119" expanded="true" signature="2409:2498" ph="{...}" />
914
-            <marker date="1489890980119" expanded="true" signature="2547:2620" ph="{...}" />
915
-            <marker date="1489890980119" expanded="true" signature="2671:2750" ph="{...}" />
916
-            <marker date="1489890980119" expanded="true" signature="2802:2885" ph="{...}" />
917
-            <marker date="1489890980119" expanded="true" signature="2906:3172" ph="{...}" />
918
-            <marker date="1489890980119" expanded="true" signature="3002:3152" ph="{...}" />
919
-            <marker date="1489890980119" expanded="true" signature="3317:5956" ph="{...}" />
920
-            <marker date="1489890980119" expanded="true" signature="3586:4021" ph="{...}" />
921
-            <marker date="1489890980119" expanded="true" signature="4061:4741" ph="{...}" />
922
-            <marker date="1489890980119" expanded="true" signature="5018:5110" ph="{...}" />
923
-            <marker date="1489890980119" expanded="true" signature="5423:5513" ph="{...}" />
924
-            <marker date="1489890980119" expanded="true" signature="5584:5875" ph="{...}" />
925
-            <marker date="1489890980119" expanded="true" signature="5746:5851" ph="{...}" />
870
+            <marker date="1492180813009" expanded="true" signature="6:227" ph="..." />
871
+            <marker date="1492180813009" expanded="true" signature="263:736" ph="{...}" />
872
+            <marker date="1492180813009" expanded="true" signature="332:734" ph="{...}" />
873
+            <marker date="1492180813009" expanded="true" signature="522:584" ph="{...}" />
874
+            <marker date="1492180813009" expanded="true" signature="660:728" ph="{...}" />
926 875
           </folding>
927 876
         </state>
928 877
       </provider>

+ 35
- 12
backend/WebSem/WebApiWebSem/Business/ArticlesBusiness.cs 파일 보기

@@ -4,6 +4,7 @@ using Luticate2.Utils.Dbo.Basic;
4 4
 using Luticate2.Utils.Dbo.PaginatedRequest;
5 5
 using Luticate2.Utils.Dbo.Result;
6 6
 using Luticate2.Utils.Interfaces;
7
+using Luticate2.Utils.Utils;
7 8
 using WebApiWebSem.DataAccess;
8 9
 using WebApiWebSem.Dbo.Articles;
9 10
 using WebApiWebSem.Dbo.ArticlesFields;
@@ -27,20 +28,42 @@ namespace WebApiWebSem.Business
27 28
             {
28 29
                 return base.GetMultiple(request);
29 30
             }
30
-            DataAccess.AddDbo(result.Data.Data.Select(dbo => new ArticlesAddDbo
31
+            foreach (var articlesAddDbo in result.Data.Data.Select(dbo => new ArticlesAddDbo
32
+                                                   {
33
+                                                       Fields = dbo.Fields.Select(fieldsDbo => new ArticlesFieldsAddDbo
34
+                                                       {
35
+                                                           Property = fieldsDbo.Property,
36
+                                                           Type = fieldsDbo.Type,
37
+                                                           Value = fieldsDbo.Value
38
+                                                       }).ToList(),
39
+                                                       Id = dbo.Id,
40
+                                                       PictureCaption = dbo.PictureCaption,
41
+                                                       PictureUrl = dbo.PictureUrl,
42
+                                                       Text = dbo.Text,
43
+                                                       Type = dbo.Type
44
+                                                   }))
31 45
             {
32
-                Fields = dbo.Fields.Select(fieldsDbo => new ArticlesFieldsAddDbo
46
+                var res = DataAccess.GetSingleById(articlesAddDbo.Id);
47
+                if (res)
33 48
                 {
34
-                    Property = fieldsDbo.Property,
35
-                    Type = fieldsDbo.Type,
36
-                    Value = fieldsDbo.Value
37
-                }).ToList(),
38
-                Id = dbo.Id,
39
-                PictureCaption = dbo.PictureCaption,
40
-                PictureUrl = dbo.PictureUrl,
41
-                Text = dbo.Text,
42
-                Type = dbo.Type
43
-            }));
49
+                    DataAccess.EditSingleByIdId(articlesAddDbo.Id, new ArticlesEditDbo
50
+                    {
51
+                        Fields = articlesAddDbo.Fields.Select(dbo => new ArticlesFieldsEditDbo
52
+                        {
53
+                            Property = dbo.Property,
54
+                            Type = dbo.Type,
55
+                            Value = dbo.Value
56
+                        }).ToList(),
57
+                        PictureCaption = articlesAddDbo.PictureCaption,
58
+                        PictureUrl = articlesAddDbo.PictureUrl,
59
+                        Text = articlesAddDbo.Text
60
+                    });
61
+                }
62
+                else if (res.Status == LuStatus.NotFound)
63
+                {
64
+                    DataAccess.AddDbo(articlesAddDbo);
65
+                }
66
+            }
44 67
             return result;
45 68
         }
46 69
     }

+ 28
- 0
backend/WebSem/WebApiWebSem/Business/FeedBusiness.cs 파일 보기

@@ -0,0 +1,28 @@
1
+using System.Collections.Generic;
2
+using System.Linq;
3
+using Luticate2.Utils.Dbo.Result;
4
+using Microsoft.Extensions.Options;
5
+using WebApiWebSem.DataAccess;
6
+using WebApiWebSem.Dbo;
7
+using WebApiWebSem.Dbo.Feed;
8
+
9
+namespace WebApiWebSem.Business
10
+{
11
+    public class FeedBusiness
12
+    {
13
+        private readonly AppConfigDbo _options;
14
+        private readonly FeedDataAccess _feedDataAccess;
15
+
16
+        public FeedBusiness(IOptions<AppConfigDbo> options, FeedDataAccess feedDataAccess)
17
+        {
18
+            _options = options.Value;
19
+            _feedDataAccess = feedDataAccess;
20
+        }
21
+
22
+        public LuResult<IList<FeedDbo>> Get()
23
+        {
24
+            var feed = _feedDataAccess.Parse(_options.FeedUrl);
25
+            return feed.To(dbos => (IList<FeedDbo>)dbos.Take(10).ToList());
26
+        }
27
+    }
28
+}

+ 27
- 0
backend/WebSem/WebApiWebSem/Controllers/FeedController.cs 파일 보기

@@ -0,0 +1,27 @@
1
+using System.Collections.Generic;
2
+using Luticate2.Utils.Controllers;
3
+using Luticate2.Utils.Dbo.Basic;
4
+using Microsoft.AspNetCore.Mvc;
5
+using Microsoft.Extensions.Options;
6
+using WebApiWebSem.Business;
7
+using WebApiWebSem.Dbo.Feed;
8
+
9
+namespace WebApiWebSem.Controllers
10
+{
11
+    [Route("feed")]
12
+    public class FeedController : LuController
13
+    {
14
+        private readonly FeedBusiness _feedBusiness;
15
+
16
+        public FeedController(IOptions<LuUtilsOptionsDbo> luUtilsOptionsDbo, FeedBusiness feedBusiness) : base(luUtilsOptionsDbo)
17
+        {
18
+            _feedBusiness = feedBusiness;
19
+        }
20
+
21
+        [HttpGet("")]
22
+        public LuApiWrapperDbo<IList<FeedDbo>> Get()
23
+        {
24
+            return Handle(_feedBusiness.Get());
25
+        }
26
+    }
27
+}

+ 63
- 0
backend/WebSem/WebApiWebSem/DataAccess/FeedDataAccess.cs 파일 보기

@@ -0,0 +1,63 @@
1
+using System;
2
+using System.Collections.Generic;
3
+using System.Linq;
4
+using System.Net;
5
+using System.Net.Http;
6
+using System.Xml.Linq;
7
+using Luticate2.Utils.Dbo.Result;
8
+using VDS.RDF;
9
+using WebApiWebSem.Dbo.Feed;
10
+
11
+namespace WebApiWebSem.DataAccess
12
+{
13
+    public class FeedDataAccess
14
+    {
15
+        public LuResult<IList<FeedDbo>> Parse(string url)
16
+        {
17
+            try
18
+            {
19
+                using (var client = new HttpClient())
20
+                {
21
+                    var request = new HttpRequestMessage(HttpMethod.Get, url);
22
+
23
+                    var responseTask = client.SendAsync(request);
24
+                    responseTask.Wait();
25
+                    using (var response = responseTask.Result)
26
+                    {
27
+                        var streamTask = response.Content.ReadAsStreamAsync();
28
+                        streamTask.Wait();
29
+                        using (var stream = streamTask.Result)
30
+                        {
31
+                            var doc = XDocument.Load(stream);
32
+                            var entries = from item in doc.Root.Descendants()
33
+                                    .First(i => i.Name.LocalName == "channel")
34
+                                    .Elements()
35
+                                    .Where(i => i.Name.LocalName == "item")
36
+                                select new FeedDbo
37
+                                {
38
+                                    Content = item.Elements().First(i => i.Name.LocalName == "description").Value,
39
+                                    Link = item.Elements().First(i => i.Name.LocalName == "link").Value,
40
+                                    PublishDate = ParseDate(
41
+                                        item.Elements().First(i => i.Name.LocalName == "pubDate").Value),
42
+                                    Title = item.Elements().First(i => i.Name.LocalName == "title").Value
43
+                                };
44
+                            return LuResult<IList<FeedDbo>>.Ok(entries.ToList());
45
+                        }
46
+                    }
47
+                }
48
+            }
49
+            catch (Exception e)
50
+            {
51
+                return LuResult<IList<FeedDbo>>.Error(LuStatus.BackendError, e, "Failed to read remote RSS feed");
52
+            }
53
+        }
54
+
55
+        private DateTime ParseDate(string date)
56
+        {
57
+            DateTime result;
58
+            if (DateTime.TryParse(date, out result))
59
+                return result;
60
+            return DateTime.MinValue;
61
+        }
62
+    }
63
+}

+ 2
- 0
backend/WebSem/WebApiWebSem/Dbo/AppConfigDbo.cs 파일 보기

@@ -3,5 +3,7 @@
3 3
     public class AppConfigDbo
4 4
     {
5 5
         public int SleepTime { get; set; }
6
+
7
+        public string FeedUrl { get; set; }
6 8
     }
7 9
 }

+ 15
- 0
backend/WebSem/WebApiWebSem/Dbo/Feed/FeedDbo.cs 파일 보기

@@ -0,0 +1,15 @@
1
+using System;
2
+
3
+namespace WebApiWebSem.Dbo.Feed
4
+{
5
+    public class FeedDbo
6
+    {
7
+        public string Link { get; set; }
8
+
9
+        public string Title { get; set; }
10
+
11
+        public string Content { get; set; }
12
+
13
+        public DateTime PublishDate { get; set; }
14
+    }
15
+}

+ 4
- 0
backend/WebSem/WebApiWebSem/Startup.cs 파일 보기

@@ -50,9 +50,13 @@ namespace WebApiWebSem
50 50
             services.AddTransient(provider => new SparqlRemoteEndpoint(new Uri("http://dbpedia.org/sparql"), "http://dbpedia.org"));
51 51
             services.AddTransient<DbPediaDataAccess>();
52 52
 
53
+            services.AddTransient<FeedBusiness>();
54
+            services.AddTransient<FeedDataAccess>();
55
+
53 56
             services.Configure<AppConfigDbo>(dbo =>
54 57
             {
55 58
                 dbo.SleepTime = Env.IsProduction() ? 0 : int.Parse(Configuration["SleepTime"]);
59
+                dbo.FeedUrl = Configuration["FeedUrl"];
56 60
             });
57 61
 
58 62
             services.AddDbContext<WsDbContext>(options =>

+ 3
- 2
backend/WebSem/WebApiWebSem/appsettings.json 파일 보기

@@ -12,6 +12,7 @@
12 12
     },
13 13
     "ConnectionStrings": {
14 14
       "default": "User ID=POSTGRES_USER;Password=POSTGRES_PASSWORD;Host=POSTGRES_HOST;Port=5432;Database=POSTGRES_DB;Pooling=true;ApplicationName=WebSemApi"
15
-    }
16
-  }
15
+    },
16
+    "SleepTime": 0,
17
+    "FeedUrl": "http://ww2db.com/feedgen.php?feed=articles"
17 18
 }

+ 1
- 16
frontend/WebSem/app/app.js 파일 보기

@@ -87,6 +87,7 @@ angular.module('app', [
87 87
     'pascalprecht.translate',
88 88
     'angular-busy',
89 89
     'luticate2Utils',
90
+    'ngSanitize',
90 91
     'SignalR',
91 92
     // 'luticateAuth',
92 93
     'appSdk'
@@ -158,22 +159,6 @@ angular.module('app', [
158 159
                     state: 'countries',
159 160
                     type: 'link'
160 161
                 }]
161
-            },
162
-            {
163
-                id: 'toogle_2',
164
-                name: 'articles.name',
165
-                type: 'heading',
166
-                children: [{
167
-                    id: 'toogle_2_link_1',
168
-                    name: 'common.all',
169
-                    state: 'articles',
170
-                    type: 'link'
171
-                },{
172
-                    id: 'toogle_2_link_1',
173
-                    name: 'common.new',
174
-                    state: 'articles_add',
175
-                    type: 'link'
176
-                }]
177 162
             }]);
178 163
 
179 164
             $stateProvider.state('root', {

+ 10
- 2
frontend/WebSem/app/controllers/home.controller.js 파일 보기

@@ -1,9 +1,12 @@
1 1
 angular.module('app')
2
-    .controller('HomeController', ['$scope', '$state', '$mdDialog', 'articlesBusiness', 'luBusyBusiness', 'AppUtilsBusiness',
3
-        function($scope, $state, $mdDialog, articlesBusiness, luBusyBusiness, AppUtilsBusiness) {
2
+    .controller('HomeController', ['$scope', '$state', '$mdDialog', 'articlesBusiness', 'luBusyBusiness',
3
+        'AppUtilsBusiness', 'feedBusiness',
4
+        function($scope, $state, $mdDialog, articlesBusiness, luBusyBusiness,
5
+                 AppUtilsBusiness, feedBusiness) {
4 6
 
5 7
         $scope.busy = luBusyBusiness.reset();
6 8
         $scope.item = null;
9
+        $scope.feed = null;
7 10
         $scope.appUtils = AppUtilsBusiness;
8 11
 
9 12
         $scope.load = function()
@@ -12,6 +15,11 @@ angular.module('app')
12 15
             {
13 16
                 $scope.item = data.data[0];
14 17
             }, function (error) {});
18
+
19
+            feedBusiness.get('home.feed').then(function(data)
20
+            {
21
+                $scope.feed = data;
22
+            }, function (error) {});
15 23
         };
16 24
 
17 25
         $scope.load();

+ 3
- 1
frontend/WebSem/app/index.html 파일 보기

@@ -52,7 +52,7 @@
52 52
     <script src="../bower_components/angular-signalr-hub/signalr-hub.min.js"></script>
53 53
     <script src="../bower_components/moment/moment.js"></script>
54 54
     <script src="../bower_components/angular-moment/angular-moment.min.js"></script>
55
-    <!--<script src="../bower_components/luticate-auth/dist/luticate-auth.min.js"></script>-->
55
+    <script src="../bower_components/angular-sanitize/angular-sanitize.min.js"></script>
56 56
 
57 57
     <!-- scripts -->
58 58
     <script src="app.js"></script>
@@ -78,6 +78,8 @@
78 78
     <script src="../sdk/Business/items.business.js"></script>
79 79
     <script src="../sdk/DataAccess/articles.dataaccess.js"></script>
80 80
     <script src="../sdk/Business/articles.business.js"></script>
81
+    <script src="../sdk/DataAccess/feed.dataaccess.js"></script>
82
+    <script src="../sdk/Business/feed.business.js"></script>
81 83
 
82 84
     <!-- Directives -->
83 85
     <script src="controllers/directives/article.directive.js"></script>

+ 17
- 1
frontend/WebSem/app/views/home.html 파일 보기

@@ -1,7 +1,13 @@
1 1
 <div layout="column" layout-fill layout-align="top" angular-busy="appUtils.cgBusy('home.home')">
2
+    <div ng-repeat="error in busy.errors('home.home')" class="isa_error">
3
+        <i class="fa fa-times-circle"></i>
4
+        {{ error.data.message }}
5
+    </div>
6
+
2 7
     <div layout="row">
3 8
         <article ng-model="item"></article>
4 9
     </div>
10
+
5 11
     <div layout="row">
6 12
         <span flex="25"></span>
7 13
         <md-grid-list class="image-grid" md-cols="2" md-row-height="200px" md-row-height-gt-sm="300px" md-row-height-gt-md="450px" md-gutter="4px" flex="40">
@@ -20,8 +26,18 @@
20 26
         </md-grid-list>
21 27
     </div>
22 28
 
23
-    <div ng-repeat="error in busy.errors('home.home')" class="isa_error">
29
+    <p>&nbsp;</p>
30
+    <p>&nbsp;</p>
31
+    <p>&nbsp;</p>
32
+
33
+    <div ng-repeat="error in busy.errors('home.feed')" class="isa_error">
24 34
         <i class="fa fa-times-circle"></i>
25 35
         {{ error.data.message }}
26 36
     </div>
37
+
38
+    <div ng-repeat="article in feed">
39
+        <span><a target="_blank" ng-href="{{ article.link }}">{{article.title}}</a> - {{ article.publishDate | date }}</span>
40
+        <p ng-bind-html="article.content">
41
+        </p>
42
+    </div>
27 43
 </div>

+ 20
- 0
frontend/WebSem/sdk/Business/feed.business.js 파일 보기

@@ -0,0 +1,20 @@
1
+/**
2
+ * Created by robin on 12/12/16.
3
+ */
4
+
5
+(function () {
6
+    'use strict';
7
+
8
+    angular.module('appSdk')
9
+        .factory('feedBusiness', ['feedDataAccess', function (feedDataAccess) {
10
+
11
+            var Business = {};
12
+
13
+            Business.get = function(luBusyGroups)
14
+            {
15
+                return feedDataAccess.get(luBusyGroups);
16
+            };
17
+
18
+            return Business;
19
+        }]);
20
+})();

+ 21
- 0
frontend/WebSem/sdk/DataAccess/feed.dataaccess.js 파일 보기

@@ -0,0 +1,21 @@
1
+/**
2
+ * Created by robin on 12/12/16.
3
+ */
4
+
5
+(function () {
6
+    'use strict';
7
+
8
+    angular.module('appSdk')
9
+        .factory('feedDataAccess', ['luRequest',
10
+            function (luRequest) {
11
+
12
+            var DataAccess = {};
13
+
14
+            DataAccess.get = function(luBusyGroups)
15
+            {
16
+                return luRequest.get('/api/feed', null, luBusyGroups);
17
+            };
18
+
19
+            return DataAccess;
20
+        }]);
21
+})();

Loading…
취소
저장