Skip to content

Commit e792b8e

Browse files
authored
Merge pull request #140 from Research-Institute/unstable
Improved Separation of Concerns, v2.1.0
2 parents 60f7713 + 6ed2a4f commit e792b8e

File tree

120 files changed

+2411
-254
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+2411
-254
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
*.user
44
.couscous/
55
docs/Template-Dark/
6+
.idea/

.vscode/tasks.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"isShellCommand": true,
77
"args": [],
88
"options": {
9-
"cwd": "${workspaceRoot}/src/JsonApiDotNetCoreExample"
9+
"cwd": "${workspaceRoot}/src/Examples/JsonApiDotNetCoreExample"
1010
},
1111
"tasks": [
1212
{

JsonApiDotnetCore.sln

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ VisualStudioVersion = 15.0.26228.9
44
MinimumVisualStudioVersion = 10.0.40219.1
55
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JsonApiDotNetCore", "src\JsonApiDotNetCore\JsonApiDotNetCore.csproj", "{C0EC9E70-EB2E-436F-9D94-FA16FA774123}"
66
EndProject
7-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JsonApiDotNetCoreExample", "src\JsonApiDotNetCoreExample\JsonApiDotNetCoreExample.csproj", "{97EE048B-16C0-43F6-BDA9-4E762B2F579F}"
7+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JsonApiDotNetCoreExample", "src\Examples\JsonApiDotNetCoreExample\JsonApiDotNetCoreExample.csproj", "{97EE048B-16C0-43F6-BDA9-4E762B2F579F}"
88
EndProject
99
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{7A2B7ADD-ECB5-4D00-AA6A-D45BD11C97CF}"
1010
EndProject
@@ -18,12 +18,16 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
1818
README.md = README.md
1919
EndProjectSection
2020
EndProject
21-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NoEntityFrameworkExample", "src\NoEntityFrameworkExample\NoEntityFrameworkExample.csproj", "{570165EC-62B5-4684-A139-8D2A30DD4475}"
21+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NoEntityFrameworkExample", "src\Examples\NoEntityFrameworkExample\NoEntityFrameworkExample.csproj", "{570165EC-62B5-4684-A139-8D2A30DD4475}"
2222
EndProject
2323
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NoEntityFrameworkTests", "test\NoEntityFrameworkTests\NoEntityFrameworkTests.csproj", "{73DA578D-A63F-4956-83ED-6D7102E09140}"
2424
EndProject
2525
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTests", "test\UnitTests\UnitTests.csproj", "{6D4BD85A-A262-44C6-8572-FE3A30410BF3}"
2626
EndProject
27+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Examples", "Examples", "{026FBC6C-AF76-4568-9B87-EC73457899FD}"
28+
EndProject
29+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReportsExample", "src\Examples\ReportsExample\ReportsExample.csproj", "{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}"
30+
EndProject
2731
Global
2832
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2933
Debug|Any CPU = Debug|Any CPU
@@ -94,6 +98,18 @@ Global
9498
{6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x64.Build.0 = Release|x64
9599
{6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x86.ActiveCfg = Release|x86
96100
{6D4BD85A-A262-44C6-8572-FE3A30410BF3}.Release|x86.Build.0 = Release|x86
101+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
102+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|Any CPU.Build.0 = Debug|Any CPU
103+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x64.ActiveCfg = Debug|x64
104+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x64.Build.0 = Debug|x64
105+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x86.ActiveCfg = Debug|x86
106+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Debug|x86.Build.0 = Debug|x86
107+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|Any CPU.ActiveCfg = Release|Any CPU
108+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|Any CPU.Build.0 = Release|Any CPU
109+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x64.ActiveCfg = Release|x64
110+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x64.Build.0 = Release|x64
111+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x86.ActiveCfg = Release|x86
112+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D}.Release|x86.Build.0 = Release|x86
97113
EndGlobalSection
98114
GlobalSection(SolutionProperties) = preSolution
99115
HideSolutionNode = FALSE
@@ -105,5 +121,7 @@ Global
105121
{570165EC-62B5-4684-A139-8D2A30DD4475} = {7A2B7ADD-ECB5-4D00-AA6A-D45BD11C97CF}
106122
{73DA578D-A63F-4956-83ED-6D7102E09140} = {24B15015-62E5-42E1-9BA0-ECE6BE7AA15F}
107123
{6D4BD85A-A262-44C6-8572-FE3A30410BF3} = {24B15015-62E5-42E1-9BA0-ECE6BE7AA15F}
124+
{026FBC6C-AF76-4568-9B87-EC73457899FD} = {7A2B7ADD-ECB5-4D00-AA6A-D45BD11C97CF}
125+
{FBFB0B0B-EA86-4B41-AB2A-E0249F70C86D} = {026FBC6C-AF76-4568-9B87-EC73457899FD}
108126
EndGlobalSection
109127
EndGlobal

src/JsonApiDotNetCoreExample/Controllers/TodoItemsCustomController.cs renamed to src/Examples/JsonApiDotNetCoreExample/Controllers/TodoItemsCustomController.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public CustomJsonApiController(
5454
IResourceService<T, TId> resourceService,
5555
ILoggerFactory loggerFactory)
5656
{
57-
_jsonApiContext = jsonApiContext.ApplyContext<T>();
57+
_jsonApiContext = jsonApiContext.ApplyContext<T>(this);
5858
_resourceService = resourceService;
5959
_logger = loggerFactory.CreateLogger<JsonApiDotNetCore.Controllers.JsonApiController<T, TId>>();
6060
}
@@ -63,7 +63,7 @@ public CustomJsonApiController(
6363
IJsonApiContext jsonApiContext,
6464
IResourceService<T, TId> resourceService)
6565
{
66-
_jsonApiContext = jsonApiContext.ApplyContext<T>();
66+
_jsonApiContext = jsonApiContext.ApplyContext<T>(this);
6767
_resourceService = resourceService;
6868
}
6969

src/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj renamed to src/Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
</PropertyGroup>
1212

1313
<ItemGroup>
14-
<ProjectReference Include="../JsonApiDotNetCore/JsonApiDotNetCore.csproj" />
14+
<ProjectReference Include="../../JsonApiDotNetCore/JsonApiDotNetCore.csproj" />
1515
</ItemGroup>
1616

1717
<ItemGroup>

src/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj renamed to src/Examples/NoEntityFrameworkExample/NoEntityFrameworkExample.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@
1111
</ItemGroup>
1212

1313
<ItemGroup>
14-
<ProjectReference Include="../JsonApiDotNetCore/JsonApiDotNetCore.csproj" />
15-
<ProjectReference Include="../JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj" />
14+
<ProjectReference Include="../../JsonApiDotNetCore/JsonApiDotNetCore.csproj" />
15+
<ProjectReference Include="../../Examples/JsonApiDotNetCoreExample/JsonApiDotNetCoreExample.csproj" />
1616
</ItemGroup>
1717

1818
<ItemGroup>

src/Examples/ReportsExample/.bowerrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"directory": "wwwroot/lib"
3+
}
Lines changed: 234 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,234 @@
1+
## Ignore Visual Studio temporary files, build results, and
2+
## files generated by popular Visual Studio add-ons.
3+
4+
# User-specific files
5+
*.suo
6+
*.user
7+
*.userosscache
8+
*.sln.docstates
9+
10+
# User-specific files (MonoDevelop/Xamarin Studio)
11+
*.userprefs
12+
13+
# Build results
14+
[Dd]ebug/
15+
[Dd]ebugPublic/
16+
[Rr]elease/
17+
[Rr]eleases/
18+
x64/
19+
x86/
20+
build/
21+
bld/
22+
[Bb]in/
23+
[Oo]bj/
24+
25+
# Visual Studio 2015 cache/options directory
26+
.vs/
27+
# Uncomment if you have tasks that create the project's static files in wwwroot
28+
#wwwroot/
29+
30+
# MSTest test Results
31+
[Tt]est[Rr]esult*/
32+
[Bb]uild[Ll]og.*
33+
34+
# NUNIT
35+
*.VisualState.xml
36+
TestResult.xml
37+
38+
# Build Results of an ATL Project
39+
[Dd]ebugPS/
40+
[Rr]eleasePS/
41+
dlldata.c
42+
43+
# DNX
44+
project.lock.json
45+
artifacts/
46+
47+
*_i.c
48+
*_p.c
49+
*_i.h
50+
*.ilk
51+
*.meta
52+
*.obj
53+
*.pch
54+
*.pdb
55+
*.pgc
56+
*.pgd
57+
*.rsp
58+
*.sbr
59+
*.tlb
60+
*.tli
61+
*.tlh
62+
*.tmp
63+
*.tmp_proj
64+
*.log
65+
*.vspscc
66+
*.vssscc
67+
.builds
68+
*.pidb
69+
*.svclog
70+
*.scc
71+
72+
# Chutzpah Test files
73+
_Chutzpah*
74+
75+
# Visual C++ cache files
76+
ipch/
77+
*.aps
78+
*.ncb
79+
*.opendb
80+
*.opensdf
81+
*.sdf
82+
*.cachefile
83+
84+
# Visual Studio profiler
85+
*.psess
86+
*.vsp
87+
*.vspx
88+
*.sap
89+
90+
# TFS 2012 Local Workspace
91+
$tf/
92+
93+
# Guidance Automation Toolkit
94+
*.gpState
95+
96+
# ReSharper is a .NET coding add-in
97+
_ReSharper*/
98+
*.[Rr]e[Ss]harper
99+
*.DotSettings.user
100+
101+
# JustCode is a .NET coding add-in
102+
.JustCode
103+
104+
# TeamCity is a build add-in
105+
_TeamCity*
106+
107+
# DotCover is a Code Coverage Tool
108+
*.dotCover
109+
110+
# NCrunch
111+
_NCrunch_*
112+
.*crunch*.local.xml
113+
nCrunchTemp_*
114+
115+
# MightyMoose
116+
*.mm.*
117+
AutoTest.Net/
118+
119+
# Web workbench (sass)
120+
.sass-cache/
121+
122+
# Installshield output folder
123+
[Ee]xpress/
124+
125+
# DocProject is a documentation generator add-in
126+
DocProject/buildhelp/
127+
DocProject/Help/*.HxT
128+
DocProject/Help/*.HxC
129+
DocProject/Help/*.hhc
130+
DocProject/Help/*.hhk
131+
DocProject/Help/*.hhp
132+
DocProject/Help/Html2
133+
DocProject/Help/html
134+
135+
# Click-Once directory
136+
publish/
137+
138+
# Publish Web Output
139+
*.[Pp]ublish.xml
140+
*.azurePubxml
141+
# TODO: Comment the next line if you want to checkin your web deploy settings
142+
# but database connection strings (with potential passwords) will be unencrypted
143+
*.pubxml
144+
*.publishproj
145+
146+
# NuGet Packages
147+
*.nupkg
148+
# The packages folder can be ignored because of Package Restore
149+
**/packages/*
150+
# except build/, which is used as an MSBuild target.
151+
!**/packages/build/
152+
# Uncomment if necessary however generally it will be regenerated when needed
153+
#!**/packages/repositories.config
154+
155+
# Microsoft Azure Build Output
156+
csx/
157+
*.build.csdef
158+
159+
# Microsoft Azure Emulator
160+
ecf/
161+
rcf/
162+
163+
# Microsoft Azure ApplicationInsights config file
164+
ApplicationInsights.config
165+
166+
# Windows Store app package directory
167+
AppPackages/
168+
BundleArtifacts/
169+
170+
# Visual Studio cache files
171+
# files ending in .cache can be ignored
172+
*.[Cc]ache
173+
# but keep track of directories ending in .cache
174+
!*.[Cc]ache/
175+
176+
# Others
177+
ClientBin/
178+
~$*
179+
*~
180+
*.dbmdl
181+
*.dbproj.schemaview
182+
*.pfx
183+
*.publishsettings
184+
node_modules/
185+
orleans.codegen.cs
186+
187+
# RIA/Silverlight projects
188+
Generated_Code/
189+
190+
# Backup & report files from converting an old project file
191+
# to a newer Visual Studio version. Backup files are not needed,
192+
# because we have git ;-)
193+
_UpgradeReport_Files/
194+
Backup*/
195+
UpgradeLog*.XML
196+
UpgradeLog*.htm
197+
198+
# SQL Server files
199+
*.mdf
200+
*.ldf
201+
202+
# Business Intelligence projects
203+
*.rdl.data
204+
*.bim.layout
205+
*.bim_*.settings
206+
207+
# Microsoft Fakes
208+
FakesAssemblies/
209+
210+
# GhostDoc plugin setting file
211+
*.GhostDoc.xml
212+
213+
# Node.js Tools for Visual Studio
214+
.ntvs_analysis.dat
215+
216+
# Visual Studio 6 build log
217+
*.plg
218+
219+
# Visual Studio 6 workspace options file
220+
*.opt
221+
222+
# Visual Studio LightSwitch build output
223+
**/*.HTMLClient/GeneratedArtifacts
224+
**/*.DesktopClient/GeneratedArtifacts
225+
**/*.DesktopClient/ModelManifest.xml
226+
**/*.Server/GeneratedArtifacts
227+
**/*.Server/ModelManifest.xml
228+
_Pvt_Extensions
229+
230+
# Paket dependency manager
231+
.paket/paket.exe
232+
233+
# FAKE - F# Make
234+
.fake/
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Threading.Tasks;
5+
using Microsoft.AspNetCore.Mvc;
6+
using JsonApiDotNetCore.Controllers;
7+
using JsonApiDotNetCore.Services;
8+
9+
namespace ReportsExample.Controllers
10+
{
11+
[Route("api/[controller]")]
12+
public class ReportsController : BaseJsonApiController<Report, int>
13+
{
14+
public ReportsController(
15+
IJsonApiContext jsonApiContext,
16+
IGetAllService<Report> getAll)
17+
: base(jsonApiContext, getAll: getAll)
18+
{ }
19+
20+
[HttpGet]
21+
public override async Task<IActionResult> GetAsync() => await base.GetAsync();
22+
}
23+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
using JsonApiDotNetCore.Models;
2+
3+
public class Report : Identifiable
4+
{
5+
[Attr("title")]
6+
public string Title { get; set; }
7+
8+
[Attr("complex-type")]
9+
public ComplexType ComplexType { get; set; }
10+
}
11+
12+
public class ComplexType
13+
{
14+
public string CompoundPropertyName { get; set; }
15+
}

0 commit comments

Comments
 (0)