123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- using BlazorStrap;
- using HyperCube.Areas.Identity;
- using HyperCube.Data;
- using Microsoft.AspNetCore.Builder;
- using Microsoft.AspNetCore.Components;
- using Microsoft.AspNetCore.Components.Authorization;
- using Microsoft.AspNetCore.Hosting;
- using Microsoft.AspNetCore.HttpsPolicy;
- using Microsoft.AspNetCore.Identity;
- using Microsoft.AspNetCore.Identity.UI;
- using Microsoft.EntityFrameworkCore;
- using Microsoft.Extensions.Configuration;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Hosting;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Threading.Tasks;
- using Console = HyperCube.Utils.AdvConsole;
- namespace HyperCube
- {
- public class Startup
- {
- public Startup(IConfiguration configuration)
- {
- Configuration = configuration;
- Models.AccountModel.InitializeAccounts();
- try
- {
- Console.WriteLine("OnInitializedAsync RegisterNetworks");
- Models.Blockchain.RegisterNetworks();
- }
- catch (Exception e)
- {
- Console.WriteLine(e.Message + ", stack trace:" + e.StackTrace);
- }
- Console.WriteLine($"Paths, app: [{AppDomain.CurrentDomain.BaseDirectory}], working: [{Environment.CurrentDirectory}]");
- }
- public IConfiguration Configuration { get; }
- // This method gets called by the runtime. Use this method to add services to the container.
- // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
- public void ConfigureServices(IServiceCollection services)
- {
- string connection;
- #if DEBUG
- connection = "DevConnection";
- #else
- connection = "ProdConnection";
- #endif
- services.AddDbContext<ApplicationDbContext>(options =>
- options.UseMySQL(
- Configuration.GetConnectionString(connection)));
- services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
- .AddRoles<IdentityRole>()
- .AddEntityFrameworkStores<ApplicationDbContext>();
- services.AddRazorPages();
- services.AddServerSideBlazor();
- services.AddScoped<AuthenticationStateProvider, RevalidatingIdentityAuthenticationStateProvider<IdentityUser>>();
- services.AddDatabaseDeveloperPageExceptionFilter();
- services.AddMvc(options => options.EnableEndpointRouting = false).SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_3_0);
- services.AddScoped<AppData>();
- services.AddBootstrapCss();
- }
- // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
- {
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- app.UseMigrationsEndPoint();
- }
- else
- {
- app.UseExceptionHandler("/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();
- }
- app.UseHttpsRedirection();
- app.UseStaticFiles();
- //app.UseStaticFiles(new StaticFileOptions
- //{
- // ServeUnknownFileTypes = true
- //});
- app.UseRouting();
- app.UseMvcWithDefaultRoute();
- app.UseAuthentication();
- app.UseAuthorization();
- app.UseEndpoints(endpoints =>
- {
- endpoints.MapControllers();
- endpoints.MapBlazorHub();
- endpoints.MapFallbackToPage("/_Host");
- });
- }
- }
- }
|