-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStartup.cs
More file actions
126 lines (109 loc) · 6.23 KB
/
Startup.cs
File metadata and controls
126 lines (109 loc) · 6.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/*==============================================================================================================================
| Author Ignia, LLC
| Client Ignia, LLC
| Project Sample OnTopic Site
\=============================================================================================================================*/
using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.AspNetCore.Mvc.Controllers;
using Microsoft.AspNetCore.Mvc.ViewComponents;
using Ignia.Topics.AspNetCore.Mvc;
namespace OnTopicTest {
/*============================================================================================================================
| CLASS: STARTUP
\---------------------------------------------------------------------------------------------------------------------------*/
/// <summary>
/// Configures the application and sets up dependencies.
/// </summary>
public class Startup {
/*==========================================================================================================================
| CONSTRUCTOR
\-------------------------------------------------------------------------------------------------------------------------*/
/// <summary>
/// Constructs a new instances of the <see cref="Startup"/> class. Accepts an <see cref="IConfiguration"/>.
/// </summary>
/// <param name="configuration">
/// The shared <see cref="IConfiguration"/> dependency.
/// </param>
public Startup(IConfiguration configuration) {
Configuration = configuration;
}
/*==========================================================================================================================
| PROPERTY: CONFIGURATION
\-------------------------------------------------------------------------------------------------------------------------*/
/// <summary>
/// Provides a (public) reference to the application's <see cref="IConfiguration"/> service.
/// </summary>
public IConfiguration Configuration { get; }
/*==========================================================================================================================
| METHOD: CONFIGURE SERVICES
\-------------------------------------------------------------------------------------------------------------------------*/
/// <summary>
/// Provides configuration of services. This method is called by the runtime to bootstrap the server configuration.
/// </summary>
public void ConfigureServices(IServiceCollection services) {
/*------------------------------------------------------------------------------------------------------------------------
| Configure: Cookie Policy
\-----------------------------------------------------------------------------------------------------------------------*/
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;
});
/*------------------------------------------------------------------------------------------------------------------------
| Configure: MVC
\-----------------------------------------------------------------------------------------------------------------------*/
services.AddControllersWithViews()
//Add OnTopic support
.AddTopicSupport();
/*------------------------------------------------------------------------------------------------------------------------
| Register: Activators
\-----------------------------------------------------------------------------------------------------------------------*/
var activator = new SampleActivator(Configuration.GetConnectionString("OnTopic"));
services.AddSingleton<IControllerActivator>(activator);
services.AddSingleton<IViewComponentActivator>(activator);
}
/*==========================================================================================================================
| METHOD: CONFIGURE (APPLICATION)
\-------------------------------------------------------------------------------------------------------------------------*/
/// <summary>
/// Provides configuration the application. This method is called by the runtime to bootstrap the application
/// configuration, including the HTTP pipeline.
/// </summary>
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {
/*------------------------------------------------------------------------------------------------------------------------
| Configure: Error Pages
\-----------------------------------------------------------------------------------------------------------------------*/
if (env.IsDevelopment()) {
app.UseDeveloperExceptionPage();
}
else {
app.UseExceptionHandler("/Home/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
/*------------------------------------------------------------------------------------------------------------------------
| Configure: Server defaults
\-----------------------------------------------------------------------------------------------------------------------*/
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseCookiePolicy();
app.UseRouting();
app.UseCors("default");
/*------------------------------------------------------------------------------------------------------------------------
| Configure: MVC
\-----------------------------------------------------------------------------------------------------------------------*/
app.UseEndpoints(endpoints => {
endpoints.MapControllers();
endpoints.MapTopicRoute("Web");
});
}
} //Class
} //Namespace