Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
CleanArchitecture
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tsai
CleanArchitecture
Commits
88e46889
Unverified
Commit
88e46889
authored
Jun 01, 2018
by
Steve Smith
Committed by
GitHub
Jun 01, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #14 from sdepouw/upgrade-to-.NETCore-2.1
Upgrade to .net core 2.1
parents
66342963
b7220af0
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
159 additions
and
74 deletions
+159
-74
CleanArchitecture.Core.csproj
src/CleanArchitecture.Core/CleanArchitecture.Core.csproj
+1
-1
DatabasePopulator.cs
src/CleanArchitecture.Core/DatabasePopulator.cs
+31
-0
CleanArchitecture.Infrastructure.csproj
...re.Infrastructure/CleanArchitecture.Infrastructure.csproj
+4
-11
CleanArchitecture.Web.csproj
src/CleanArchitecture.Web/CleanArchitecture.Web.csproj
+15
-13
ToDoController.cs
src/CleanArchitecture.Web/Controllers/ToDoController.cs
+3
-24
Index.cshtml
src/CleanArchitecture.Web/Pages/ToDoRazorPage/Index.cshtml
+10
-0
Index.cshtml.cs
...CleanArchitecture.Web/Pages/ToDoRazorPage/Index.cshtml.cs
+24
-0
Populate.cshtml
...CleanArchitecture.Web/Pages/ToDoRazorPage/Populate.cshtml
+6
-0
Populate.cshtml.cs
...anArchitecture.Web/Pages/ToDoRazorPage/Populate.cshtml.cs
+24
-0
_ViewImports.cshtml
src/CleanArchitecture.Web/Pages/_ViewImports.cshtml
+2
-0
_ViewStart.cshtml
src/CleanArchitecture.Web/Pages/_ViewStart.cshtml
+3
-0
Program.cs
src/CleanArchitecture.Web/Program.cs
+5
-6
Startup.cs
src/CleanArchitecture.Web/Startup.cs
+16
-5
Index.cshtml
src/CleanArchitecture.Web/Views/Home/Index.cshtml
+6
-1
Index.cshtml
src/CleanArchitecture.Web/Views/ToDo/Index.cshtml
+2
-2
CleanArchitecture.Tests.csproj
tests/CleanArchitecture.Tests/CleanArchitecture.Tests.csproj
+5
-9
BaseWebTest.cs
tests/CleanArchitecture.Tests/Integration/Web/BaseWebTest.cs
+2
-2
No files found.
src/CleanArchitecture.Core/CleanArchitecture.Core.csproj
View file @
88e46889
...
...
@@ -11,7 +11,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Update="NETStandard.Library" Version="2.0.
1
" />
<PackageReference Update="NETStandard.Library" Version="2.0.
3
" />
</ItemGroup>
</Project>
src/CleanArchitecture.Core/DatabasePopulator.cs
0 → 100644
View file @
88e46889
using
CleanArchitecture.Core.Entities
;
using
CleanArchitecture.Core.Interfaces
;
using
System.Linq
;
namespace
CleanArchitecture.Core
{
public
static
class
DatabasePopulator
{
public
static
int
PopulateDatabase
(
IRepository
<
ToDoItem
>
todoRepository
)
{
if
(
todoRepository
.
List
().
Any
())
return
0
;
todoRepository
.
Add
(
new
ToDoItem
()
{
Title
=
"Get Sample Working"
,
Description
=
"Try to get the sample to build."
});
todoRepository
.
Add
(
new
ToDoItem
()
{
Title
=
"Review Solution"
,
Description
=
"Review the different projects in the solution and how they relate to one another."
});
todoRepository
.
Add
(
new
ToDoItem
()
{
Title
=
"Run and Review Tests"
,
Description
=
"Make sure all the tests run and review what they are doing."
});
return
todoRepository
.
List
().
Count
;
}
}
}
src/CleanArchitecture.Infrastructure/CleanArchitecture.Infrastructure.csproj
View file @
88e46889
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RuntimeFrameworkVersion>2.0.0</RuntimeFrameworkVersion>
<TargetFramework>netcoreapp2.0</TargetFramework>
<TargetFramework>netcoreapp2.1</TargetFramework>
<AssemblyName>CleanArchitecture.Infrastructure</AssemblyName>
<PackageId>CleanArchitecture.Infrastructure</PackageId>
</PropertyGroup>
...
...
@@ -11,15 +10,9 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.A
ll" Version="2.0.5
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.
0.1
" PrivateAssets="All" />
<PackageReference Include="Microsoft.AspNetCore.A
pp" Version="2.1.0
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.
1.0
" PrivateAssets="All" />
<PackageReference Include="StructureMap.Microsoft.DependencyInjection" Version="1.4.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.1" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.0" />
</ItemGroup>
</Project>
src/CleanArchitecture.Web/CleanArchitecture.Web.csproj
View file @
88e46889
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.
0
</TargetFramework>
<TargetFramework>netcoreapp2.
1
</TargetFramework>
<PreserveCompilationContext>true</PreserveCompilationContext>
<AssemblyName>CleanArchitecture.Web</AssemblyName>
<OutputType>Exe</OutputType>
<PackageId>CleanArchitecture.Web</PackageId>
</PropertyGroup>
<PropertyGroup>
<RuntimeFrameworkVersion>2.0.0</RuntimeFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<Content Update="wwwroot\**\*;Views\**\*;Areas\**\Views;appsettings.json;web.config">
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
...
...
@@ -23,18 +19,15 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Dapper" Version="1.50.
4
" />
<PackageReference Include="Microsoft.AspNetCore.A
ll" Version="2.0.5
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.
0.1
" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.
0.2
" PrivateAssets="All" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="2.
2
.0" />
<PackageReference Include="Dapper" Version="1.50.
5
" />
<PackageReference Include="Microsoft.AspNetCore.A
pp" Version="2.1.0
" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.
1.0
" PrivateAssets="All" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.
1.0
" PrivateAssets="All" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="2.
4
.0" />
</ItemGroup>
<ItemGroup>
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.Extensions.SecretManager.Tools" Version="2.0.0" />
<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
</ItemGroup>
<Target Name="PrepublishScript" BeforeTargets="PrepareForPublish">
...
...
@@ -46,4 +39,13 @@
<DotNetCliToolReference Include="BundlerMinifier.Core" Version="2.2.301" />
</ItemGroup>
<ItemGroup>
<Content Update="Pages\_ViewImports.cshtml">
<Pack>$(IncludeRazorContentInPack)</Pack>
</Content>
<Content Update="Pages\_ViewStart.cshtml">
<Pack>$(IncludeRazorContentInPack)</Pack>
</Content>
</ItemGroup>
</Project>
src/CleanArchitecture.Web/Controllers/ToDoController.cs
View file @
88e46889
using
CleanArchitecture.Core.Entities
;
using
CleanArchitecture.Core
;
using
CleanArchitecture.Core.Entities
;
using
CleanArchitecture.Core.Interfaces
;
using
Microsoft.AspNetCore.Mvc
;
using
System.Linq
;
namespace
CleanArchitecture.Web.Controllers
{
...
...
@@ -22,29 +22,8 @@ namespace CleanArchitecture.Web.Controllers
public
IActionResult
Populate
()
{
int
recordsAdded
=
PopulateDatabase
(
);
int
recordsAdded
=
DatabasePopulator
.
PopulateDatabase
(
_todoRepository
);
return
Ok
(
recordsAdded
);
}
public
int
PopulateDatabase
()
{
if
(
_todoRepository
.
List
().
Any
())
return
0
;
_todoRepository
.
Add
(
new
ToDoItem
()
{
Title
=
"Get Sample Working"
,
Description
=
"Try to get the sample to build."
});
_todoRepository
.
Add
(
new
ToDoItem
()
{
Title
=
"Review Solution"
,
Description
=
"Review the different projects in the solution and how they relate to one another."
});
_todoRepository
.
Add
(
new
ToDoItem
()
{
Title
=
"Run and Review Tests"
,
Description
=
"Make sure all the tests run and review what they are doing."
});
return
_todoRepository
.
List
().
Count
;
}
}
}
src/CleanArchitecture.Web/Pages/ToDoRazorPage/Index.cshtml
0 → 100644
View file @
88e46889
@page
@model CleanArchitecture.Web.Pages.ToDoRazorPage.IndexModel
<h2>To Do Items (Razor Page)</h2>
<ul>
@foreach (var item in Model.ToDoItems)
{
<li>@item.Title<br />@item.Description</li>
}
</ul>
src/CleanArchitecture.Web/Pages/ToDoRazorPage/Index.cshtml.cs
0 → 100644
View file @
88e46889
using
CleanArchitecture.Core.Entities
;
using
CleanArchitecture.Core.Interfaces
;
using
Microsoft.AspNetCore.Mvc.RazorPages
;
using
System.Collections.Generic
;
namespace
CleanArchitecture.Web.Pages.ToDoRazorPage
{
public
class
IndexModel
:
PageModel
{
private
readonly
IRepository
<
ToDoItem
>
_todoRepository
;
public
List
<
ToDoItem
>
ToDoItems
{
get
;
set
;
}
public
IndexModel
(
IRepository
<
ToDoItem
>
todoRepository
)
{
_todoRepository
=
todoRepository
;
}
public
void
OnGet
()
{
ToDoItems
=
_todoRepository
.
List
();
}
}
}
src/CleanArchitecture.Web/Pages/ToDoRazorPage/Populate.cshtml
0 → 100644
View file @
88e46889
@page
@model CleanArchitecture.Web.Pages.ToDoRazorPage.PopulateModel
<h3>Records Added: @Model.RecordsAdded</h3>
<p>
<a asp-page="Index">Check them out!</a>
</p>
src/CleanArchitecture.Web/Pages/ToDoRazorPage/Populate.cshtml.cs
0 → 100644
View file @
88e46889
using
CleanArchitecture.Core
;
using
CleanArchitecture.Core.Entities
;
using
CleanArchitecture.Core.Interfaces
;
using
Microsoft.AspNetCore.Mvc.RazorPages
;
namespace
CleanArchitecture.Web.Pages.ToDoRazorPage
{
public
class
PopulateModel
:
PageModel
{
private
readonly
IRepository
<
ToDoItem
>
_todoRepository
;
public
PopulateModel
(
IRepository
<
ToDoItem
>
todoRepository
)
{
_todoRepository
=
todoRepository
;
}
public
int
RecordsAdded
{
get
;
set
;
}
public
void
OnGet
()
{
RecordsAdded
=
DatabasePopulator
.
PopulateDatabase
(
_todoRepository
);
}
}
}
src/CleanArchitecture.Web/Pages/_ViewImports.cshtml
0 → 100644
View file @
88e46889
@using CleanArchitecture.Web
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
src/CleanArchitecture.Web/Pages/_ViewStart.cshtml
0 → 100644
View file @
88e46889
@{
Layout = "_Layout";
}
src/CleanArchitecture.Web/Program.cs
View file @
88e46889
using
Microsoft.AspNetCore
.Hosting
;
using
Microsoft.AspNetCore
;
using
Microsoft.AspNetCore
;
using
Microsoft.AspNetCore
.Hosting
;
namespace
CleanArchitecture.Web
{
...
...
@@ -7,12 +7,11 @@ namespace CleanArchitecture.Web
{
public
static
void
Main
(
string
[]
args
)
{
BuildWebHost
(
args
).
Run
();
CreateWebHostBuilder
(
args
).
Build
(
).
Run
();
}
public
static
IWebHost
BuildWebHost
(
string
[]
args
)
=>
public
static
IWebHost
Builder
CreateWebHostBuilder
(
string
[]
args
)
=>
WebHost
.
CreateDefaultBuilder
(
args
)
.
UseStartup
<
Startup
>()
.
Build
();
.
UseStartup
<
Startup
>();
}
}
src/CleanArchitecture.Web/Startup.cs
View file @
88e46889
using
System
;
using
CleanArchitecture.Core.Interfaces
;
using
CleanArchitecture.Core.Interfaces
;
using
CleanArchitecture.Core.SharedKernel
;
using
CleanArchitecture.Infrastructure.Data
;
using
Microsoft.AspNetCore.Builder
;
using
Microsoft.AspNetCore.Hosting
;
using
Microsoft.AspNetCore.Http
;
using
Microsoft.AspNetCore.Mvc
;
using
Microsoft.EntityFrameworkCore
;
using
Microsoft.Extensions.Configuration
;
using
Microsoft.Extensions.DependencyInjection
;
using
Microsoft.Extensions.Logging
;
using
StructureMap
;
using
Swashbuckle.AspNetCore.Swagger
;
using
System
;
namespace
CleanArchitecture.Web
{
...
...
@@ -24,6 +26,12 @@ namespace CleanArchitecture.Web
public
IServiceProvider
ConfigureServices
(
IServiceCollection
services
)
{
services
.
Configure
<
CookiePolicyOptions
>(
options
=>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options
.
CheckConsentNeeded
=
context
=>
true
;
options
.
MinimumSameSitePolicy
=
SameSiteMode
.
None
;
});
// TODO: Add DbContext and IOC
string
dbName
=
Guid
.
NewGuid
().
ToString
();
services
.
AddDbContext
<
AppDbContext
>(
options
=>
...
...
@@ -31,7 +39,8 @@ namespace CleanArchitecture.Web
//options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
services
.
AddMvc
()
.
AddControllersAsServices
();
.
AddControllersAsServices
()
.
SetCompatibilityVersion
(
CompatibilityVersion
.
Version_2_1
);
services
.
AddSwaggerGen
(
c
=>
{
...
...
@@ -50,7 +59,7 @@ namespace CleanArchitecture.Web
_
.
WithDefaultConventions
();
_
.
ConnectImplementationsToTypesClosing
(
typeof
(
IHandle
<>));
});
// TODO: Add Registry Classes to eliminate reference to Infrastructure
// TODO: Move to Infrastucture Registry
...
...
@@ -80,14 +89,16 @@ namespace CleanArchitecture.Web
if
(
env
.
IsDevelopment
())
{
app
.
UseDeveloperExceptionPage
();
app
.
UseBrowserLink
();
}
else
{
app
.
UseExceptionHandler
(
"/Home/Error"
);
app
.
UseHsts
();
}
app
.
UseHttpsRedirection
();
app
.
UseStaticFiles
();
app
.
UseCookiePolicy
();
// Enable middleware to serve generated Swagger as a JSON endpoint.
app
.
UseSwagger
();
...
...
src/CleanArchitecture.Web/Views/Home/Index.cshtml
View file @
88e46889
...
...
@@ -4,12 +4,17 @@
<div class="row">
<div class="col-md-6">
<h2>To Do Items</h2>
<h2>To Do Items
(MVC)
</h2>
<ul>
<li><a asp-area="" asp-controller="ToDo" asp-action="Populate">Load Sample To Do Items</a></li>
<li><a asp-area="" asp-controller="ToDo" asp-action="Index">List To Do Items</a></li>
<li><a href="/swagger">API Documentation (Swagger)</a></li>
</ul>
<h2>To Do Items (Razor Pages)</h2>
<ul>
<li><a asp-page="/ToDoRazorPage/Populate">Load Sample To Do Items</a></li>
<li><a asp-page="/ToDoRazorPage/Index">List To Do Items</a></li>
</ul>
</div>
<div class="col-md-6">
<h2>About the Author</h2>
...
...
src/CleanArchitecture.Web/Views/ToDo/Index.cshtml
View file @
88e46889
...
...
@@ -2,10 +2,10 @@
ViewData["Title"] = "ToDo List";
}
@model IEnumerable<CleanArchitecture.Core.Entities.ToDoItem>
<h2>To Do Items</h2>
<h2>To Do Items
(MVC View)
</h2>
<ul>
@foreach (var item in Model)
{
<li>@item.Title<br/>@item.Description</li>
<li>@item.Title<br/>@item.Description</li>
}
</ul>
tests/CleanArchitecture.Tests/CleanArchitecture.Tests.csproj
View file @
88e46889
...
...
@@ -2,14 +2,10 @@
<PropertyGroup>
<TargetFramework>netcoreapp2.
0
</TargetFramework>
<TargetFramework>netcoreapp2.
1
</TargetFramework>
<PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>
<PropertyGroup>
<RuntimeFrameworkVersion>2.0.0</RuntimeFrameworkVersion>
</PropertyGroup>
<ItemGroup>
<None Update="xunit.runner.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
...
...
@@ -31,11 +27,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.
0.2
" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="2.
0.1
" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
6.1
" />
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.
1.0
" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="2.
1.0
" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.
7.2
" />
<PackageReference Include="Moq" Version="4.8.2" />
<PackageReference Include="NETStandard.Library" Version="2.0.
1
" />
<PackageReference Include="NETStandard.Library" Version="2.0.
3
" />
<PackageReference Include="xunit" Version="2.3.1" />
<PackageReference Include="xunit.runner.console" Version="2.3.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
...
...
tests/CleanArchitecture.Tests/Integration/Web/BaseWebTest.cs
View file @
88e46889
...
...
@@ -5,7 +5,6 @@ using Microsoft.AspNetCore.Mvc.Controllers;
using
Microsoft.AspNetCore.Mvc.ViewComponents
;
using
Microsoft.AspNetCore.TestHost
;
using
Microsoft.Extensions.DependencyInjection
;
using
Microsoft.Extensions.PlatformAbstractions
;
using
System
;
using
System.IO
;
using
System.Net.Http
;
...
...
@@ -67,7 +66,8 @@ namespace CleanArchitecture.Tests.Integration.Web
var
projectName
=
startupAssembly
.
GetName
().
Name
;
// Get currently executing test project path
var
applicationBasePath
=
PlatformServices
.
Default
.
Application
.
ApplicationBasePath
;
// AppContext.BaseDirectory or AppDomain.CurrentDomain.BaseDirectory contain the BaseDirectory.
var
applicationBasePath
=
AppContext
.
BaseDirectory
;
// Find the folder which contains the solution file. We then use this information to find the target
// project which we want to test.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment