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
39caac85
Commit
39caac85
authored
Oct 27, 2017
by
Steve Smith
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
parent
5f0182a0
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
38 additions
and
20 deletions
+38
-20
CleanArchitecture.Web.csproj
src/CleanArchitecture.Web/CleanArchitecture.Web.csproj
+1
-0
Program.cs
src/CleanArchitecture.Web/Program.cs
+24
-1
Startup.cs
src/CleanArchitecture.Web/Startup.cs
+2
-14
BaseWebTest.cs
tests/CleanArchitecture.Tests/Integration/Web/BaseWebTest.cs
+11
-5
No files found.
src/CleanArchitecture.Web/CleanArchitecture.Web.csproj
View file @
39caac85
...
...
@@ -19,6 +19,7 @@
<ItemGroup>
<ProjectReference Include="..\CleanArchitecture.Core\CleanArchitecture.Core.csproj" />
<ProjectReference Include="..\CleanArchitecture.Infrastructure\CleanArchitecture.Infrastructure.csproj" />
</ItemGroup>
<ItemGroup>
...
...
src/CleanArchitecture.Web/Program.cs
View file @
39caac85
using
Microsoft.AspNetCore.Hosting
;
using
Microsoft.AspNetCore
;
using
Microsoft.Extensions.DependencyInjection
;
using
Microsoft.Extensions.Logging
;
using
CleanArchitecture.Core.Interfaces
;
using
System
;
namespace
CleanArchitecture.Web
{
...
...
@@ -7,7 +11,26 @@ namespace CleanArchitecture.Web
{
public
static
void
Main
(
string
[]
args
)
{
BuildWebHost
(
args
).
Run
();
var
host
=
BuildWebHost
(
args
);
using
(
var
scope
=
host
.
Services
.
CreateScope
())
{
var
services
=
scope
.
ServiceProvider
;
var
loggerFactory
=
services
.
GetRequiredService
<
ILoggerFactory
>();
try
{
var
seedData
=
services
.
GetRequiredService
<
ISeedData
>();
seedData
.
PopulateTestData
();
}
catch
(
Exception
ex
)
{
var
logger
=
loggerFactory
.
CreateLogger
<
Program
>();
logger
.
LogError
(
ex
,
"An error occurred seeding the DB."
);
}
}
host
.
Run
();
}
public
static
IWebHost
BuildWebHost
(
string
[]
args
)
=>
...
...
src/CleanArchitecture.Web/Startup.cs
View file @
39caac85
using
System
;
using
CleanArchitecture.Core.Interfaces
;
using
CleanArchitecture.Core.SharedKernel
;
using
CleanArchitecture.Core.Interfaces
;
using
CleanArchitecture.Infrastructure.Data
;
using
Microsoft.AspNetCore.Builder
;
using
Microsoft.AspNetCore.Hosting
;
...
...
@@ -9,6 +7,7 @@ using Microsoft.Extensions.Configuration;
using
Microsoft.Extensions.DependencyInjection
;
using
Microsoft.Extensions.Logging
;
using
StructureMap
;
using
System
;
namespace
CleanArchitecture.Web
{
...
...
@@ -23,7 +22,6 @@ namespace CleanArchitecture.Web
public
IServiceProvider
ConfigureServices
(
IServiceCollection
services
)
{
// TODO: Add DbContext and IOC
string
dbName
=
Guid
.
NewGuid
().
ToString
();
services
.
AddDbContext
<
AppDbContext
>(
options
=>
options
.
UseInMemoryDatabase
(
dbName
));
...
...
@@ -55,16 +53,6 @@ namespace CleanArchitecture.Web
return
container
.
GetInstance
<
IServiceProvider
>();
}
public
void
ConfigureTesting
(
IApplicationBuilder
app
,
IHostingEnvironment
env
,
ILoggerFactory
loggerFactory
,
ISeedData
seedData
)
{
this
.
Configure
(
app
,
env
,
loggerFactory
);
SeedData
.
PopulateTestData
(
app
.
ApplicationServices
.
GetService
<
AppDbContext
>());
}
public
void
Configure
(
IApplicationBuilder
app
,
IHostingEnvironment
env
,
ILoggerFactory
loggerFactory
)
{
loggerFactory
.
AddConsole
(
Configuration
.
GetSection
(
"Logging"
));
...
...
tests/CleanArchitecture.Tests/Integration/Web/BaseWebTest.cs
View file @
39caac85
using
CleanArchitecture.Web
;
using
CleanArchitecture.Core.Interfaces
;
using
CleanArchitecture.Web
;
using
Microsoft.AspNetCore.Hosting
;
using
Microsoft.AspNetCore.Mvc.ApplicationParts
;
using
Microsoft.AspNetCore.Mvc.Controllers
;
...
...
@@ -29,13 +30,18 @@ namespace CleanArchitecture.Tests.Integration.Web
var
builder
=
new
WebHostBuilder
()
.
UseContentRoot
(
contentRoot
)
.
ConfigureServices
(
InitializeServices
)
.
UseStartup
<
Startup
>()
.
UseEnvironment
(
"Testing"
);
// ensure ConfigureTesting is called in Startup
.
UseStartup
<
Startup
>();
var
server
=
new
TestServer
(
builder
);
var
client
=
server
.
CreateClient
();
return
client
;
using
(
var
scope
=
server
.
Host
.
Services
.
CreateScope
())
{
var
services
=
scope
.
ServiceProvider
;
var
seedData
=
services
.
GetRequiredService
<
ISeedData
>();
seedData
.
PopulateTestData
();
}
return
server
.
CreateClient
();
}
protected
virtual
void
InitializeServices
(
IServiceCollection
services
)
...
...
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