diff --git a/MBDEVproAPI.API/GlobalUsings.cs b/MBDEVproAPI.API/GlobalUsings.cs index 1fb1a1e..ea436fa 100644 --- a/MBDEVproAPI.API/GlobalUsings.cs +++ b/MBDEVproAPI.API/GlobalUsings.cs @@ -23,5 +23,6 @@ //global using Microsoft.OpenApi.Models; global using Serilog; global using Serilog.Formatting.Json; -global using Microsoft.OpenApi; +global using Microsoft.OpenApi; +global using Scalar.AspNetCore; diff --git a/MBDEVproAPI.API/MBDEVproAPI.API.csproj b/MBDEVproAPI.API/MBDEVproAPI.API.csproj index f2b34cb..75ed335 100644 --- a/MBDEVproAPI.API/MBDEVproAPI.API.csproj +++ b/MBDEVproAPI.API/MBDEVproAPI.API.csproj @@ -15,7 +15,7 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive - + @@ -23,7 +23,9 @@ - + + + diff --git a/MBDEVproAPI.API/Program.cs b/MBDEVproAPI.API/Program.cs index ea158c6..55a50a9 100644 --- a/MBDEVproAPI.API/Program.cs +++ b/MBDEVproAPI.API/Program.cs @@ -1,7 +1,12 @@ +var builder = WebApplication.CreateBuilder(args); +var logger = new LoggerConfiguration() + .ReadFrom.Configuration(builder.Configuration) + .Enrich.FromLogContext() + .CreateLogger(); +builder.Host.UseSerilog(logger); + -using Scalar.AspNetCore; -var builder = WebApplication.CreateBuilder(args); //DATABASE CONNECTION builder.Services.AddDbContext(options => @@ -45,11 +50,13 @@ var app = builder.Build(); +app.UseSerilogRequestLogging(); + // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { - app.MapOpenApi(); // Expose the OpenAPI JSON endpoint - app.MapScalarApiReference(); // Map the Scalar UI endpoint + //app.MapOpenApi(); // Expose the OpenAPI JSON endpoint + //app.MapScalarApiReference(); // Map the Scalar UI endpoint Log.Information("MBDEVproAPI: (Development Environment)"); app.UseDeveloperExceptionPage(); @@ -72,16 +79,25 @@ if (app.Environment.IsDevelopment() || app.Environment.EnvironmentName == "Test") { - app.UseSwagger(); - app.UseSwaggerUI(c => - { - //c.SwaggerEndpoint("/MBDEVproAPI/swagger/v1/swagger.json", "MBDEVproAPI v1 .NET CORE 10"); - c.SwaggerEndpoint("../swagger/v1/swagger.json", "MBDEVproAPI v1 .NET CORE 10"); - // ENDPOINTS: https://localhost:7092/swagger/index.html - // JSON: https://localhost:7092/swagger/v1/swagger.json - }); + //app.UseSwagger(); + //app.UseSwaggerUI(c => + //{ + // //c.SwaggerEndpoint("/MBDEVproAPI/swagger/v1/swagger.json", "MBDEVproAPI v1 .NET CORE 10"); + // c.SwaggerEndpoint("../swagger/v1/swagger.json", "MBDEVproAPI v1 .NET CORE 10"); + // // ENDPOINTS: https://localhost:7092/swagger/index.html + // // JSON: https://localhost:7092/swagger/v1/swagger.json + //}); } + + +//DEMO so can test with swagger and scalar UI, can remove later +app.MapOpenApi(); // Expose the OpenAPI JSON endpoint +app.MapScalarApiReference(); // Map the Scalar UI endpoint + +Log.Information("MBDEVproAPI: (Development Environment)"); +//app.UseDeveloperExceptionPage(); // For local only, can change later for testing and production environments, can also add custom error handling middleware for production environment. + app.MapScalarApiReference(options => { options.Title = "MBDEVproAPI v1 .NET CORE 10"; @@ -90,11 +106,25 @@ }); +//DEMO so can test with swagger and scalar UI, can remove later +app.UseSwagger(); +app.UseSwaggerUI(c => +{ + //c.SwaggerEndpoint("/MBDEVproAPI/swagger/v1/swagger.json", "MBDEVproAPI v1 .NET CORE 10"); + c.SwaggerEndpoint("../swagger/v1/swagger.json", "MBDEVproAPI v1 .NET CORE 10"); + // ENDPOINTS: https://localhost:7092/swagger/index.html + // JSON: https://localhost:7092/swagger/v1/swagger.json +}); + +app.UseSerilogRequestLogging(); // Add Serilog request logging middleware +app.UseDeveloperExceptionPage(); // For local only, can change later for testing and production environments, can also add custom error handling middleware for production environment. //Middleware app.UseHttpsRedirection(); +app.UseStaticFiles(); + app.UseAuthorization(); app.MapControllers(); diff --git a/MBDEVproAPI.API/appsettings.Development.json b/MBDEVproAPI.API/appsettings.Development.json index 720c196..186a07e 100644 --- a/MBDEVproAPI.API/appsettings.Development.json +++ b/MBDEVproAPI.API/appsettings.Development.json @@ -1,14 +1,12 @@ { "ConnectionStrings": { - //"DefaultConnection": "Server=ComputerPro7.local;Database=MBDEVproDB;Trusted_Connection=True;MultipleActiveResultSets=true", - // Use Secrets if passwords and so on... - "DefaultConnection": "Server=COMPUTERPRO7\\MSSQLSERVER2025;Initial Catalog=MBDEVproDB;Integrated Security=True;Encrypt=False;Trust Server Certificate=True" + "DefaultConnection": "Server=COMPUTERPRO7\\MSSQLSERVER2025;Initial Catalog=MBDEVproDB;Integrated Security=True;Encrypt=False;Trust Server Certificate=True" }, "APISettings": { //"APIUrl": "https://localhost:7092/api/Customer/", //"AuthenticateUrl": "Account/Login", - //"ProjectID": "0", + //"BusinessID": "0", //"IsUserExist": "Account/IsUserExist" }, @@ -16,7 +14,7 @@ "DefaultProjectSettings": { "ProjectName": "MBDEVproAPI", "Description": "MBDEVproAPI version .NET CORE 10", - "DefaultFinishInspectionsStatus": "COMPLETED", + "SomeKey": "xcxc", "SessionTimeout": "900000", "ApplicationURL": "https://www.google.com", "JSReport_TimeOutValue": "200000000", @@ -35,26 +33,37 @@ "BaseUri": "https://localhost:7092/api/Customer/", "ValidateTokenUri": "Auth/ValidateAppAccessToken" }, - "AllowedHosts": "*", - "Serilog": { - "Using": [ "Serilog.Exceptions" ], - "MinimumLevel": { - "Default": "Debug", - "Override": { - "Microsoft": "Warning", - "System": "Warning" - } - }, - "Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId", "WithExceptionDetails" ], - "WriteTo": [ - { - "Name": "ApplicationInsights", - "Args": { - "connectionString": "InstrumentationKey=xxxxx;IngestionEndpoint=https://MBDEVproAPI.applicationinsights.azure.com/;LiveEndpoint=https://MBDEVproAPI.livediagnostics.monitor.azure.com/;ApplicationId=xxxxx", - "telemetryConverter": "Serilog.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights" + "HttpsRedirection": { + "Enabled": true, + "SSLPort": 443 + }, + "AllowedHosts": "*", + "Serilog": { + "Using": [ "Serilog.Exceptions" ], + "MinimumLevel": { + "Default": "Debug", + "Override": { + "Microsoft": "Warning", + "System": "Warning" } - } - - ] - } -} \ No newline at end of file + }, + "Enrich": [ "FromLogContext", "WithMachineName", "WithProcessId", "WithThreadId", "WithExceptionDetails" ], + "WriteTo": [ + { "Name": "Console" }, + { + "Name": "File", + "Args": { + "path": "X:\\Logs\\MBDEVpro\\MBDEVproAPI\\Development\\log.txt", + "outputTemplate": "{Timestamp:G} {Message}{NewLine:1}{Exception:1}" + } + }, + { + "Name": "File", + "Args": { + "path": "X:\\Logs\\MBDEVpro\\MBDEVproAPI\\Development\\log.json", + "formatter": "Serilog.Formatting.Json.JsonFormatter, Serilog" + } + } + ] + } + } \ No newline at end of file diff --git a/MBDEVproAPI.API/appsettings.json b/MBDEVproAPI.API/appsettings.json index 10f68b8..8c3ffb4 100644 --- a/MBDEVproAPI.API/appsettings.json +++ b/MBDEVproAPI.API/appsettings.json @@ -5,5 +5,9 @@ "Microsoft.AspNetCore": "Warning" } }, + "HttpsRedirection": { + "Enabled": true, + "SSLPort": 443 + }, "AllowedHosts": "*" } diff --git a/MBDEVproAPI.BLL/MBDEVproAPI.BLL.csproj b/MBDEVproAPI.BLL/MBDEVproAPI.BLL.csproj index 1cb3782..407cd5d 100644 --- a/MBDEVproAPI.BLL/MBDEVproAPI.BLL.csproj +++ b/MBDEVproAPI.BLL/MBDEVproAPI.BLL.csproj @@ -16,6 +16,8 @@ + +