From b81b16da33c315e4171ccc7736f1f448d4e13b96 Mon Sep 17 00:00:00 2001 From: Ion Dormenco Date: Sun, 4 Apr 2021 11:34:29 +0300 Subject: [PATCH 1/3] Add CORS --- Src/DeUrgenta.Api/Startup.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/Src/DeUrgenta.Api/Startup.cs b/Src/DeUrgenta.Api/Startup.cs index 2c75098..6284a71 100644 --- a/Src/DeUrgenta.Api/Startup.cs +++ b/Src/DeUrgenta.Api/Startup.cs @@ -11,6 +11,7 @@ using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; @@ -31,6 +32,7 @@ public Startup(IConfiguration configuration, IWebHostEnvironment environment) public List AuthSchemes { get; set; } private string _swaggerClientName; + private string _corsPolicyName; // This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) @@ -62,13 +64,21 @@ public void ConfigureServices(IServiceCollection services) services.AddSwaggerFor(applicationAssemblies, Configuration); services.AddMediatR(applicationAssemblies); + _corsPolicyName = "MyPolicy"; + services.AddCors(o => o.AddPolicy(_corsPolicyName, builder => + { + builder.AllowAnyOrigin() + .AllowAnyMethod() + .AllowAnyHeader(); + })); + } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, DeUrgenta.Domain.DeUrgentaContext dbContext) + public void Configure(IApplicationBuilder app, Domain.DeUrgentaContext dbContext) { - //dbContext.Database.Migrate(); - + dbContext.Database.Migrate(); + app.UseCors(_corsPolicyName); if (WebHostEnvironment.IsDevelopment()) { app.UseDeveloperExceptionPage(); From 751d1bd94dae542f943408e0b1e089dad0701e37 Mon Sep 17 00:00:00 2001 From: Ion Dormenco Date: Sun, 4 Apr 2021 12:04:51 +0300 Subject: [PATCH 2/3] Add serilog --- Src/.env | 10 +++++ Src/DeUrgenta.Api/DeUrgenta.Api.csproj | 4 ++ Src/DeUrgenta.Api/Program.cs | 35 ++++++++++++++++- .../DeUrgentaContextModelSnapshot.cs | 2 - .../DeUrgenta.IdentityServer.csproj | 4 +- Src/DeUrgenta.IdentityServer/Program.cs | 16 +++++++- .../DeUrgenta.RecurringJobs.csproj | 4 ++ Src/DeUrgenta.RecurringJobs/Program.cs | 39 ++++++++++++++++--- Src/DeUrgenta.RecurringJobs/Startup.cs | 3 +- 9 files changed, 104 insertions(+), 13 deletions(-) create mode 100644 Src/.env diff --git a/Src/.env b/Src/.env new file mode 100644 index 0000000..4993ad7 --- /dev/null +++ b/Src/.env @@ -0,0 +1,10 @@ +FROM_EMAIL=noreply@deurgenta.ro +SENDGRID_API_KEY= +ASPNETCORE_URLS=http://+:80 +DB_CONNECTION_STRING=Server=postgres;Port=5432;Database=de-urgenta-db;User Id=docker;Password=docker; +TEMPLATE_FOLDER=EmailTemplates +SWAGGER_REDIRECT_URIS=https://localhost:5040/swagger/oauth2-redirect.html +SWAGGER_CORS=https://localhost:5040 +IDENTITYSERVER_URL=http://localhost:5042 +HANGFIRE_USERNAME=admin +HANGFIRE_PASSWORD=demo1234 diff --git a/Src/DeUrgenta.Api/DeUrgenta.Api.csproj b/Src/DeUrgenta.Api/DeUrgenta.Api.csproj index 7fbfb15..14bde54 100644 --- a/Src/DeUrgenta.Api/DeUrgenta.Api.csproj +++ b/Src/DeUrgenta.Api/DeUrgenta.Api.csproj @@ -20,6 +20,10 @@ all runtime; build; native; contentfiles; analyzers; buildtransitive + + + + diff --git a/Src/DeUrgenta.Api/Program.cs b/Src/DeUrgenta.Api/Program.cs index d7374fe..618318b 100644 --- a/Src/DeUrgenta.Api/Program.cs +++ b/Src/DeUrgenta.Api/Program.cs @@ -1,5 +1,10 @@ +using System; +using System.IO; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; +using Serilog; +using Serilog.Events; +using Serilog.Sinks.SystemConsole.Themes; namespace DeUrgenta.Api { @@ -7,11 +12,39 @@ public class Program { public static void Main(string[] args) { - CreateHostBuilder(args).Build().Run(); + const string loggerTemplate = @"{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u4}]<{ThreadId}> [{SourceContext:l}] {Message:lj}{NewLine}{Exception}"; + var baseDir = AppDomain.CurrentDomain.BaseDirectory; + var logfile = Path.Combine(baseDir, "logs", "log.txt"); + + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Verbose() + .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) + .MinimumLevel.Override("System", LogEventLevel.Warning) + .MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information) + .Enrich.FromLogContext() + .WriteTo.File(logfile, LogEventLevel.Information, loggerTemplate, + rollingInterval: RollingInterval.Day, retainedFileCountLimit: 90) + .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Literate) + .CreateLogger(); + + try + { + Log.Information("Starting up"); + CreateHostBuilder(args).Build().Run(); + } + catch (Exception ex) + { + Log.Fatal(ex, "Application start-up failed"); + } + finally + { + Log.CloseAndFlush(); + } } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) + .UseSerilog() .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); diff --git a/Src/DeUrgenta.Domain/Migrations/DeUrgentaContextModelSnapshot.cs b/Src/DeUrgenta.Domain/Migrations/DeUrgentaContextModelSnapshot.cs index 370a6d5..0ed1603 100644 --- a/Src/DeUrgenta.Domain/Migrations/DeUrgentaContextModelSnapshot.cs +++ b/Src/DeUrgenta.Domain/Migrations/DeUrgentaContextModelSnapshot.cs @@ -1,9 +1,7 @@ // using System; -using DeUrgenta.Domain; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Npgsql.EntityFrameworkCore.PostgreSQL.Metadata; namespace DeUrgenta.Domain.Migrations diff --git a/Src/DeUrgenta.IdentityServer/DeUrgenta.IdentityServer.csproj b/Src/DeUrgenta.IdentityServer/DeUrgenta.IdentityServer.csproj index 3abb29d..ff6d631 100644 --- a/Src/DeUrgenta.IdentityServer/DeUrgenta.IdentityServer.csproj +++ b/Src/DeUrgenta.IdentityServer/DeUrgenta.IdentityServer.csproj @@ -19,7 +19,9 @@ - + + + diff --git a/Src/DeUrgenta.IdentityServer/Program.cs b/Src/DeUrgenta.IdentityServer/Program.cs index f2c60a0..01d3ef0 100644 --- a/Src/DeUrgenta.IdentityServer/Program.cs +++ b/Src/DeUrgenta.IdentityServer/Program.cs @@ -26,11 +26,25 @@ public static void Main(string[] args) rollingInterval: RollingInterval.Day, retainedFileCountLimit: 90) .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Literate) .CreateLogger(); - CreateHostBuilder(args).Build().Run(); + + try + { + Log.Information("Starting up"); + CreateHostBuilder(args).Build().Run(); + } + catch (Exception ex) + { + Log.Fatal(ex, "Application start-up failed"); + } + finally + { + Log.CloseAndFlush(); + } } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) + .UseSerilog() .ConfigureWebHostDefaults(webBuilder => { webBuilder diff --git a/Src/DeUrgenta.RecurringJobs/DeUrgenta.RecurringJobs.csproj b/Src/DeUrgenta.RecurringJobs/DeUrgenta.RecurringJobs.csproj index 585445a..c67d8b9 100644 --- a/Src/DeUrgenta.RecurringJobs/DeUrgenta.RecurringJobs.csproj +++ b/Src/DeUrgenta.RecurringJobs/DeUrgenta.RecurringJobs.csproj @@ -13,6 +13,10 @@ + + + + diff --git a/Src/DeUrgenta.RecurringJobs/Program.cs b/Src/DeUrgenta.RecurringJobs/Program.cs index 2cb625b..0bbe06f 100644 --- a/Src/DeUrgenta.RecurringJobs/Program.cs +++ b/Src/DeUrgenta.RecurringJobs/Program.cs @@ -1,11 +1,10 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +using System.IO; using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; +using Serilog; +using Serilog.Events; +using Serilog.Sinks.SystemConsole.Themes; namespace DeUrgenta.RecurringJobs { @@ -13,11 +12,39 @@ public class Program { public static void Main(string[] args) { - CreateHostBuilder(args).Build().Run(); + const string loggerTemplate = @"{Timestamp:yyyy-MM-dd HH:mm:ss} [{Level:u4}]<{ThreadId}> [{SourceContext:l}] {Message:lj}{NewLine}{Exception}"; + var baseDir = AppDomain.CurrentDomain.BaseDirectory; + var logfile = Path.Combine(baseDir, "logs", "log.txt"); + + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Verbose() + .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) + .MinimumLevel.Override("System", LogEventLevel.Warning) + .MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information) + .Enrich.FromLogContext() + .WriteTo.File(logfile, LogEventLevel.Information, loggerTemplate, + rollingInterval: RollingInterval.Day, retainedFileCountLimit: 90) + .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Literate) + .CreateLogger(); + + try + { + Log.Information("Starting up"); + CreateHostBuilder(args).Build().Run(); + } + catch (Exception ex) + { + Log.Fatal(ex, "Application start-up failed"); + } + finally + { + Log.CloseAndFlush(); + } } public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) + .UseSerilog() .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); diff --git a/Src/DeUrgenta.RecurringJobs/Startup.cs b/Src/DeUrgenta.RecurringJobs/Startup.cs index a4578c7..0d673b7 100644 --- a/Src/DeUrgenta.RecurringJobs/Startup.cs +++ b/Src/DeUrgenta.RecurringJobs/Startup.cs @@ -7,7 +7,6 @@ using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using Microsoft.EntityFrameworkCore; namespace DeUrgenta.RecurringJobs { @@ -30,7 +29,7 @@ public void ConfigureServices(IServiceCollection services) } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DeUrgenta.Domain.DeUrgentaContext dbContext) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, DeUrgentaContext dbContext) { dbContext.Database.Migrate(); From e824eaaef1458be28a5c4484b1ffbdec52bb13aa Mon Sep 17 00:00:00 2001 From: Ion Dormenco Date: Sun, 4 Apr 2021 12:19:15 +0300 Subject: [PATCH 3/3] Remove and ignore .env --- .gitignore | 1 + Src/.env | 10 ---------- 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 Src/.env diff --git a/.gitignore b/.gitignore index 231515f..0a6ffe3 100644 --- a/.gitignore +++ b/.gitignore @@ -335,3 +335,4 @@ ASALocalRun/ # de-urgenta specific Src/postgres_data +.env \ No newline at end of file diff --git a/Src/.env b/Src/.env deleted file mode 100644 index 4993ad7..0000000 --- a/Src/.env +++ /dev/null @@ -1,10 +0,0 @@ -FROM_EMAIL=noreply@deurgenta.ro -SENDGRID_API_KEY= -ASPNETCORE_URLS=http://+:80 -DB_CONNECTION_STRING=Server=postgres;Port=5432;Database=de-urgenta-db;User Id=docker;Password=docker; -TEMPLATE_FOLDER=EmailTemplates -SWAGGER_REDIRECT_URIS=https://localhost:5040/swagger/oauth2-redirect.html -SWAGGER_CORS=https://localhost:5040 -IDENTITYSERVER_URL=http://localhost:5042 -HANGFIRE_USERNAME=admin -HANGFIRE_PASSWORD=demo1234