diff --git a/src/Analysim.Core/Analysim.Core.csproj b/src/Analysim.Core/Analysim.Core.csproj
index 71aed48..23a4efb 100644
--- a/src/Analysim.Core/Analysim.Core.csproj
+++ b/src/Analysim.Core/Analysim.Core.csproj
@@ -1,25 +1,25 @@
- net6.0
+ net8.0
Analysim.Core
Analysim.Core
-
-
-
-
-
-
-
+
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
diff --git a/src/Analysim.Infrastructure/Analysim.Infrastructure.csproj b/src/Analysim.Infrastructure/Analysim.Infrastructure.csproj
index 8341e1a..996cefb 100644
--- a/src/Analysim.Infrastructure/Analysim.Infrastructure.csproj
+++ b/src/Analysim.Infrastructure/Analysim.Infrastructure.csproj
@@ -1,19 +1,19 @@
- net6.0
+ net8.0
Analysim.Infrastructure
Analysim.Infrastructure
-
-
-
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/src/Analysim.Web/Analysim.Web.csproj b/src/Analysim.Web/Analysim.Web.csproj
index 85d9912..b06236e 100644
--- a/src/Analysim.Web/Analysim.Web.csproj
+++ b/src/Analysim.Web/Analysim.Web.csproj
@@ -1,7 +1,7 @@
- net6.0
+ net8.0
true
Latest
false
@@ -19,17 +19,17 @@
-
-
-
-
-
-
+
+
+
+
+
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
-
-
+
+
@@ -78,7 +78,7 @@
-
+
@@ -95,7 +95,7 @@
-
+
diff --git a/src/Analysim.Web/Program.cs b/src/Analysim.Web/Program.cs
index 9e84560..5b41e7d 100644
--- a/src/Analysim.Web/Program.cs
+++ b/src/Analysim.Web/Program.cs
@@ -1,25 +1,132 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Threading.Tasks;
+using Core.Interfaces;
+using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
+using Microsoft.AspNetCore.HttpOverrides;
+using Microsoft.AspNetCore.SpaServices.AngularCli;
using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
+using Web.Extensions;
-namespace Web
-{
- public class Program
- {
- public static void Main(string[] args)
- {
- CreateHostBuilder(args).Build().Run();
- }
+var builder = WebApplication.CreateBuilder(args);
- public static IHostBuilder CreateHostBuilder(string[] args) =>
- Host.CreateDefaultBuilder(args)
- .ConfigureWebHostDefaults(webBuilder =>
+builder.Services.ConfigureCors();
+
+builder.Services.ConfigureAuthorization();
+
+builder.Services.AddSwaggerGen(c =>
+{
+ c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
+ {
+ Title = "AnalySim API",
+ Version = "v1"
+ });
+
+ c.AddSecurityDefinition("Bearer", new Microsoft.OpenApi.Models.OpenApiSecurityScheme
+ {
+ Name = "Authorization",
+ Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey,
+ Scheme = "Bearer",
+ BearerFormat = "JWT",
+ In = Microsoft.OpenApi.Models.ParameterLocation.Header,
+ Description = "Enter 'Bearer' followed by your JWT token (e.g. 'Bearer eyJhbGci...')"
+ });
+
+ c.AddSecurityRequirement(new Microsoft.OpenApi.Models.OpenApiSecurityRequirement
{
- webBuilder.UseStartup();
- });
- }
-}
+ {
+ new Microsoft.OpenApi.Models.OpenApiSecurityScheme
+ {
+ Reference = new Microsoft.OpenApi.Models.OpenApiReference
+ {
+ Type = Microsoft.OpenApi.Models.ReferenceType.SecurityScheme,
+ Id = "Bearer"
+ }
+ },
+ new string[] {}
+ }
+ });
+});
+
+
+builder.Services.ConfigureIdentity();
+
+builder.Services.ConfigureDatabase(builder.Configuration);
+
+builder.Services.ConfigureJWT(builder.Configuration);
+
+builder.Services.ConfigureSpa();
+
+builder.Services.ConfigureLoggerService();
+
+builder.Services.ConfigureMailService(builder.Configuration);
+
+builder.Services.AddAutoMapper(typeof(Program));
+
+builder.Services.AddControllers(config =>
+{
+ config.RespectBrowserAcceptHeader = true;
+ config.ReturnHttpNotAcceptable = true;
+}).AddNewtonsoftJson(options =>
+ options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore)
+ .AddXmlDataContractSerializerFormatters();
+
+var app = builder.Build();
+
+var loggerManager = app.Services.GetRequiredService();
+
+if (builder.Environment.IsDevelopment())
+{
+ app.UseDeveloperExceptionPage();
+ app.UseSwagger();
+ app.UseSwaggerUI();
+}
+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.ConfigureExceptionHandler(loggerManager);
+app.UseHttpsRedirection();
+app.UseStaticFiles();
+
+if (!builder.Environment.IsDevelopment())
+{
+ app.UseSpaStaticFiles();
+}
+
+app.UseCors("CorsPolicy");
+
+app.UseForwardedHeaders(new ForwardedHeadersOptions
+{
+ ForwardedHeaders = ForwardedHeaders.All
+});
+
+app.UseRouting();
+
+app.UseAuthentication();
+app.UseAuthorization();
+
+
+app.MapControllerRoute(
+ name: "default",
+ pattern: "{controller}/{action=Index}/{id?}"
+);
+
+app.UseSpa(spa =>
+{
+ // To learn more about options for serving an Angular SPA from ASP.NET Core,
+ // see https://go.microsoft.com/fwlink/?linkid=864501
+
+ spa.Options.SourcePath = "ClientApp";
+
+ if (builder.Environment.IsDevelopment())
+ {
+ spa.UseAngularCliServer(npmScript: "start");
+ }
+
+});
+
+app.Run();
diff --git a/src/Analysim.Web/Startup.cs b/src/Analysim.Web/Startup.cs
deleted file mode 100644
index 8d00382..0000000
--- a/src/Analysim.Web/Startup.cs
+++ /dev/null
@@ -1,149 +0,0 @@
-using AutoMapper;
-using Core.Interfaces;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.HttpOverrides;
-using Microsoft.AspNetCore.SpaServices.AngularCli;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-using Web.Extensions;
-
-namespace Web
-{
- public class Startup
- {
- public Startup(IConfiguration configuration)
- {
- Configuration = configuration;
- }
-
- public IConfiguration Configuration { get; }
-
- // This method gets called by the runtime. Use this method to add services to the container.
- public void ConfigureServices(IServiceCollection services)
- {
-
- services.ConfigureCors();
-
- services.ConfigureAuthorization();
-
- services.AddSwaggerGen(c =>
- {
- c.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
- {
- Title = "AnalySim API",
- Version = "v1"
- });
-
- c.AddSecurityDefinition("Bearer", new Microsoft.OpenApi.Models.OpenApiSecurityScheme
- {
- Name = "Authorization",
- Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey,
- Scheme = "Bearer",
- BearerFormat = "JWT",
- In = Microsoft.OpenApi.Models.ParameterLocation.Header,
- Description = "Enter 'Bearer' followed by your JWT token (e.g. 'Bearer eyJhbGci...')"
- });
-
- c.AddSecurityRequirement(new Microsoft.OpenApi.Models.OpenApiSecurityRequirement
- {
- {
- new Microsoft.OpenApi.Models.OpenApiSecurityScheme
- {
- Reference = new Microsoft.OpenApi.Models.OpenApiReference
- {
- Type = Microsoft.OpenApi.Models.ReferenceType.SecurityScheme,
- Id = "Bearer"
- }
- },
- new string[] {}
- }
- });
- });
-
-
- services.ConfigureIdentity();
-
- services.ConfigureDatabase(Configuration);
-
- services.ConfigureJWT(Configuration);
-
- services.ConfigureSpa();
-
- services.ConfigureLoggerService();
-
- services.ConfigureMailService(Configuration);
-
- services.AddAutoMapper(typeof(Startup));
-
- services.AddControllers(config =>
- {
- config.RespectBrowserAcceptHeader = true;
- config.ReturnHttpNotAcceptable = true;
- }).AddNewtonsoftJson(options =>
- options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore)
- .AddXmlDataContractSerializerFormatters();
- }
-
- // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
- public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerManager logger)
- {
- if (env.IsDevelopment())
- {
- app.UseDeveloperExceptionPage();
- app.UseSwagger();
- app.UseSwaggerUI();
- }
- 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.ConfigureExceptionHandler(logger);
- app.UseHttpsRedirection();
- app.UseStaticFiles();
-
- if (!env.IsDevelopment())
- {
- app.UseSpaStaticFiles();
- }
-
- app.UseCors("CorsPolicy");
-
- app.UseForwardedHeaders(new ForwardedHeadersOptions
- {
- ForwardedHeaders = ForwardedHeaders.All
- });
-
- app.UseRouting();
-
- app.UseAuthentication();
- app.UseAuthorization();
-
- app.UseEndpoints(endpoints =>
- {
- endpoints.MapControllerRoute(
- name: "default",
- pattern: "{controller}/{action=Index}/{id?}"
- );
- });
-
- app.UseSpa(spa =>
- {
- // To learn more about options for serving an Angular SPA from ASP.NET Core,
- // see https://go.microsoft.com/fwlink/?linkid=864501
-
- spa.Options.SourcePath = "ClientApp";
-
- if (env.IsDevelopment())
- {
- spa.UseAngularCliServer(npmScript: "start");
- }
-
- });
- }
- }
-}