Skip to content

Commit 4e10e43

Browse files
committed
Merged Startup and Program classes
1 parent a1383a9 commit 4e10e43

File tree

7 files changed

+106
-217
lines changed

7 files changed

+106
-217
lines changed

src/Tests/AspNetCoreTemplate.Web.Tests/AspNetCoreTemplate.Web.Tests.csproj

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
<ItemGroup>
1616
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="6.0.5" />
1717
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
18-
<PackageReference Include="Selenium.WebDriver" Version="4.2.0" />
19-
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="102.0.5005.6102" />
2018
<PackageReference Include="xunit" Version="2.4.1" />
2119
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
2220
<PrivateAssets>all</PrivateAssets>

src/Tests/AspNetCoreTemplate.Web.Tests/SeleniumServerFactory.cs

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/Tests/AspNetCoreTemplate.Web.Tests/SeleniumTests.cs

Lines changed: 0 additions & 50 deletions
This file was deleted.

src/Tests/AspNetCoreTemplate.Web.Tests/WebTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77

88
using Xunit;
99

10-
public class WebTests : IClassFixture<WebApplicationFactory<Startup>>
10+
public class WebTests : IClassFixture<WebApplicationFactory<Program>>
1111
{
12-
private readonly WebApplicationFactory<Startup> server;
12+
private readonly WebApplicationFactory<Program> server;
1313

14-
public WebTests(WebApplicationFactory<Startup> server)
14+
public WebTests(WebApplicationFactory<Program> server)
1515
{
1616
this.server = server;
1717
}

src/Web/AspNetCoreTemplate.Web/AspNetCoreTemplate.Web.csproj

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,13 @@
99
<PropertyGroup>
1010
<CodeAnalysisRuleSet>..\..\Rules.ruleset</CodeAnalysisRuleSet>
1111
</PropertyGroup>
12-
<ItemGroup>
13-
<AdditionalFiles Include="..\..\stylecop.json" />
14-
</ItemGroup>
12+
<ItemGroup>
13+
<AdditionalFiles Include="..\..\stylecop.json" />
14+
</ItemGroup>
15+
16+
<ItemGroup>
17+
<InternalsVisibleTo Include="AspNetCoreTemplate.Web.Tests" />
18+
</ItemGroup>
1519

1620
<ItemGroup>
1721
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.5" />
Lines changed: 96 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,107 @@
11
namespace AspNetCoreTemplate.Web
22
{
3-
using Microsoft.AspNetCore.Hosting;
3+
using System.Reflection;
4+
5+
using AspNetCoreTemplate.Data;
6+
using AspNetCoreTemplate.Data.Common;
7+
using AspNetCoreTemplate.Data.Common.Repositories;
8+
using AspNetCoreTemplate.Data.Models;
9+
using AspNetCoreTemplate.Data.Repositories;
10+
using AspNetCoreTemplate.Data.Seeding;
11+
using AspNetCoreTemplate.Services.Data;
12+
using AspNetCoreTemplate.Services.Mapping;
13+
using AspNetCoreTemplate.Services.Messaging;
14+
using AspNetCoreTemplate.Web.ViewModels;
15+
16+
using Microsoft.AspNetCore.Builder;
17+
using Microsoft.AspNetCore.Http;
18+
using Microsoft.AspNetCore.Mvc;
19+
using Microsoft.EntityFrameworkCore;
20+
using Microsoft.Extensions.Configuration;
21+
using Microsoft.Extensions.DependencyInjection;
422
using Microsoft.Extensions.Hosting;
523

6-
public static class Program
24+
public class Program
725
{
826
public static void Main(string[] args)
927
{
10-
CreateHostBuilder(args).Build().Run();
28+
var builder = WebApplication.CreateBuilder(args);
29+
ConfigureServices(builder.Services, builder.Configuration);
30+
var app = builder.Build();
31+
Configure(app);
32+
app.Run();
1133
}
1234

13-
public static IHostBuilder CreateHostBuilder(string[] args) =>
14-
Host.CreateDefaultBuilder(args)
15-
.ConfigureWebHostDefaults(webBuilder =>
16-
{
17-
webBuilder.UseStartup<Startup>();
18-
});
35+
private static void ConfigureServices(IServiceCollection services, IConfiguration configuration)
36+
{
37+
services.AddDbContext<ApplicationDbContext>(
38+
options => options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")));
39+
40+
services.AddDefaultIdentity<ApplicationUser>(IdentityOptionsProvider.GetIdentityOptions)
41+
.AddRoles<ApplicationRole>().AddEntityFrameworkStores<ApplicationDbContext>();
42+
43+
services.Configure<CookiePolicyOptions>(
44+
options =>
45+
{
46+
options.CheckConsentNeeded = context => true;
47+
options.MinimumSameSitePolicy = SameSiteMode.None;
48+
});
49+
50+
services.AddControllersWithViews(
51+
options =>
52+
{
53+
options.Filters.Add(new AutoValidateAntiforgeryTokenAttribute());
54+
}).AddRazorRuntimeCompilation();
55+
services.AddRazorPages();
56+
services.AddDatabaseDeveloperPageExceptionFilter();
57+
58+
services.AddSingleton(configuration);
59+
60+
// Data repositories
61+
services.AddScoped(typeof(IDeletableEntityRepository<>), typeof(EfDeletableEntityRepository<>));
62+
services.AddScoped(typeof(IRepository<>), typeof(EfRepository<>));
63+
services.AddScoped<IDbQueryRunner, DbQueryRunner>();
64+
65+
// Application services
66+
services.AddTransient<IEmailSender, NullMessageSender>();
67+
services.AddTransient<ISettingsService, SettingsService>();
68+
}
69+
70+
private static void Configure(WebApplication app)
71+
{
72+
// Seed data on application startup
73+
using (var serviceScope = app.Services.CreateScope())
74+
{
75+
var dbContext = serviceScope.ServiceProvider.GetRequiredService<ApplicationDbContext>();
76+
dbContext.Database.Migrate();
77+
new ApplicationDbContextSeeder().SeedAsync(dbContext, serviceScope.ServiceProvider).GetAwaiter().GetResult();
78+
}
79+
80+
AutoMapperConfig.RegisterMappings(typeof(ErrorViewModel).GetTypeInfo().Assembly);
81+
82+
if (app.Environment.IsDevelopment())
83+
{
84+
app.UseDeveloperExceptionPage();
85+
app.UseMigrationsEndPoint();
86+
}
87+
else
88+
{
89+
app.UseExceptionHandler("/Home/Error");
90+
app.UseHsts();
91+
}
92+
93+
app.UseHttpsRedirection();
94+
app.UseStaticFiles();
95+
app.UseCookiePolicy();
96+
97+
app.UseRouting();
98+
99+
app.UseAuthentication();
100+
app.UseAuthorization();
101+
102+
app.MapControllerRoute("areaRoute", "{area:exists}/{controller=Home}/{action=Index}/{id?}");
103+
app.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
104+
app.MapRazorPages();
105+
}
19106
}
20107
}

src/Web/AspNetCoreTemplate.Web/Startup.cs

Lines changed: 0 additions & 112 deletions
This file was deleted.

0 commit comments

Comments
 (0)