mirror of
https://github.com/meysamhadeli/booking-microservices.git
synced 2026-04-13 12:15:46 +08:00
commit
0117c5ccba
2
.github/workflows/dotnet.yml
vendored
2
.github/workflows/dotnet.yml
vendored
@ -20,5 +20,5 @@ jobs:
|
||||
- name: Restore dependencies
|
||||
run: dotnet restore
|
||||
- name: Build
|
||||
run: dotnet build --no-restore
|
||||
run: dotnet build -c Release --no-restore
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ services:
|
||||
- "5001:80"
|
||||
- "5000:443"
|
||||
depends_on:
|
||||
- db
|
||||
- sql
|
||||
- rabbitmq
|
||||
- jaeger
|
||||
- elasticsearch
|
||||
@ -47,7 +47,7 @@ services:
|
||||
- 5004:80
|
||||
- 5003:443
|
||||
depends_on:
|
||||
- db
|
||||
- sql
|
||||
- rabbitmq
|
||||
- jaeger
|
||||
- elasticsearch
|
||||
@ -79,7 +79,7 @@ services:
|
||||
- 6005:80
|
||||
- 5005:443
|
||||
depends_on:
|
||||
- db
|
||||
- sql
|
||||
- rabbitmq
|
||||
- jaeger
|
||||
- elasticsearch
|
||||
@ -110,7 +110,7 @@ services:
|
||||
- 6012:80
|
||||
- 5012:443
|
||||
depends_on:
|
||||
- db
|
||||
- sql
|
||||
- rabbitmq
|
||||
- jaeger
|
||||
- elasticsearch
|
||||
@ -142,10 +142,10 @@ services:
|
||||
- 6010:80
|
||||
- 5010:443
|
||||
depends_on:
|
||||
- db
|
||||
- sql
|
||||
- rabbitmq
|
||||
- jaeger
|
||||
- eventstore.db
|
||||
- eventstore
|
||||
- elasticsearch
|
||||
- kibana
|
||||
- mongo
|
||||
@ -163,8 +163,8 @@ services:
|
||||
#######################################################
|
||||
# SqlServer
|
||||
#######################################################
|
||||
db:
|
||||
container_name: sqldb
|
||||
sql:
|
||||
container_name: sql
|
||||
image: mcr.microsoft.com/mssql/server:2022-latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
@ -196,8 +196,8 @@ services:
|
||||
# Rabbitmq
|
||||
#######################################################
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management
|
||||
container_name: rabbitmq
|
||||
image: rabbitmq:3-management
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 5672:5672
|
||||
@ -228,7 +228,8 @@ services:
|
||||
#######################################################
|
||||
# EventStoreDB
|
||||
#######################################################
|
||||
eventstore.db:
|
||||
eventstore:
|
||||
container_name: eventstore
|
||||
image: eventstore/eventstore:21.2.0-buster-slim
|
||||
restart: on-failure
|
||||
environment:
|
||||
@ -251,7 +252,7 @@ services:
|
||||
# Mongo
|
||||
#######################################################
|
||||
mongo:
|
||||
image: mongo:4
|
||||
image: mongo:5
|
||||
container_name: mongo
|
||||
restart: unless-stopped
|
||||
# environment:
|
||||
@ -261,9 +262,6 @@ services:
|
||||
- booking
|
||||
ports:
|
||||
- 27017:27017
|
||||
volumes:
|
||||
- mongo:/data/db
|
||||
|
||||
|
||||
#######################################################
|
||||
# Elastic Search
|
||||
@ -310,8 +308,6 @@ networks:
|
||||
volumes:
|
||||
db-data:
|
||||
external: false
|
||||
mongo:
|
||||
driver: local
|
||||
elasticsearch-data:
|
||||
|
||||
|
||||
|
||||
@ -5,8 +5,8 @@ services:
|
||||
# Rabbitmq
|
||||
#######################################################
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management
|
||||
container_name: rabbitmq
|
||||
image: rabbitmq:3-management
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 5672:5672
|
||||
@ -18,8 +18,8 @@ services:
|
||||
#######################################################
|
||||
# SqlServer
|
||||
#######################################################
|
||||
db:
|
||||
container_name: sqldb
|
||||
sql:
|
||||
container_name: sql
|
||||
image: mcr.microsoft.com/mssql/server:2022-latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
@ -50,8 +50,8 @@ services:
|
||||
# Jaeger
|
||||
#######################################################
|
||||
jaeger:
|
||||
image: jaegertracing/all-in-one
|
||||
container_name: jaeger
|
||||
image: jaegertracing/all-in-one
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- booking
|
||||
@ -68,7 +68,8 @@ services:
|
||||
#######################################################
|
||||
# EventStoreDB
|
||||
#######################################################
|
||||
eventstore.db:
|
||||
eventstore:
|
||||
container_name: eventstore
|
||||
image: eventstore/eventstore:21.2.0-buster-slim
|
||||
restart: on-failure
|
||||
environment:
|
||||
@ -91,7 +92,7 @@ services:
|
||||
# Mongo
|
||||
#######################################################
|
||||
mongo:
|
||||
image: mongo:4
|
||||
image: mongo:5
|
||||
container_name: mongo
|
||||
restart: unless-stopped
|
||||
# environment:
|
||||
@ -101,8 +102,6 @@ services:
|
||||
- booking
|
||||
ports:
|
||||
- 27017:27017
|
||||
volumes:
|
||||
- mongo:/data/db
|
||||
|
||||
|
||||
#######################################################
|
||||
@ -162,8 +161,6 @@ networks:
|
||||
volumes:
|
||||
db-data:
|
||||
external: false
|
||||
mongo:
|
||||
driver: local
|
||||
elasticsearch-data:
|
||||
|
||||
|
||||
|
||||
@ -8,31 +8,31 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Ardalis.GuardClauses" Version="4.0.1" />
|
||||
<PackageReference Include="Asp.Versioning.Abstractions" Version="7.0.0-preview.1" />
|
||||
<PackageReference Include="Asp.Versioning.Http" Version="7.0.0-preview.1" />
|
||||
<PackageReference Include="Asp.Versioning.Mvc" Version="7.0.0-preview.1" />
|
||||
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="7.0.0-preview.1" />
|
||||
<PackageReference Include="Asp.Versioning.Abstractions" Version="7.0.0" />
|
||||
<PackageReference Include="Asp.Versioning.Http" Version="7.0.0" />
|
||||
<PackageReference Include="Asp.Versioning.Mvc" Version="7.0.0" />
|
||||
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="7.0.0" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.Elasticsearch" Version="6.0.2" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.EventStore" Version="6.0.3" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.Rabbitmq" Version="6.0.2" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.SqlServer" Version="6.0.2" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.UI.SQLite.Storage" Version="6.0.5" />
|
||||
<PackageReference Include="Ben.BlockingDetector" Version="0.0.4" />
|
||||
<PackageReference Include="EasyCaching.Core" Version="1.7.0" />
|
||||
<PackageReference Include="EasyCaching.InMemory" Version="1.7.0" />
|
||||
<PackageReference Include="EasyCaching.Core" Version="1.8.0" />
|
||||
<PackageReference Include="EasyCaching.InMemory" Version="1.8.0" />
|
||||
<PackageReference Include="EasyNetQ.Management.Client" Version="1.4.2" />
|
||||
<PackageReference Include="EFCore.NamingConventions" Version="7.0.0" />
|
||||
<PackageReference Include="EntityFrameworkCore.Triggered" Version="3.2.1" />
|
||||
<PackageReference Include="EntityFrameworkCore.Triggered" Version="3.2.2" />
|
||||
<PackageReference Include="Figgle" Version="0.4.1" />
|
||||
<PackageReference Include="FluentValidation" Version="11.3.0" />
|
||||
<PackageReference Include="FluentValidation" Version="11.4.0" />
|
||||
<PackageReference Include="FluentValidation.AspNetCore" Version="11.2.2" />
|
||||
<PackageReference Include="Grpc.Core.Testing" Version="2.46.5" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.0">
|
||||
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.1">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="7.0.0" />
|
||||
<PackageReference Include="Mongo2Go" Version="3.1.3" />
|
||||
<PackageReference Include="NSubstitute" Version="4.4.0" />
|
||||
@ -44,36 +44,37 @@
|
||||
</PackageReference>
|
||||
<PackageReference Include="Hellang.Middleware.ProblemDetails" Version="6.5.1" />
|
||||
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
|
||||
<PackageReference Include="IdGen" Version="3.0.2" />
|
||||
<PackageReference Include="IdGen" Version="3.0.3" />
|
||||
<PackageReference Include="Mapster" Version="7.3.0" />
|
||||
<PackageReference Include="Mapster.DependencyInjection" Version="1.0.0" />
|
||||
<PackageReference Include="MediatR" Version="11.0.0" />
|
||||
<PackageReference Include="MediatR" Version="11.1.0" />
|
||||
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="11.0.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Binder" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Http.Polly" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.PlatformAbstractions" Version="1.1.0" />
|
||||
<PackageReference Include="MongoDB.Driver" Version="2.18.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
|
||||
<PackageReference Include="OpenTelemetry.Contrib.Instrumentation.MassTransit" Version="1.0.0-beta2" />
|
||||
<PackageReference Include="Scrutor" Version="4.2.0" />
|
||||
<PackageReference Include="Scrutor.AspNetCore" Version="3.3.0" />
|
||||
<PackageReference Include="Sentry.Serilog" Version="3.25.0" />
|
||||
<PackageReference Include="Serilog" Version="2.12.0" />
|
||||
<PackageReference Include="Serilog.AspNetCore" Version="6.0.1" />
|
||||
<PackageReference Include="Serilog.AspNetCore" Version="6.1.0" />
|
||||
<PackageReference Include="Serilog.Enrichers.Span" Version="3.0.0" />
|
||||
<PackageReference Include="Serilog.Exceptions" Version="8.4.0" />
|
||||
<PackageReference Include="Serilog.Formatting.Elasticsearch" Version="8.4.1" />
|
||||
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
|
||||
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="8.4.1" />
|
||||
<PackageReference Include="Serilog.Sinks.Seq" Version="5.2.1" />
|
||||
<PackageReference Include="Serilog.Sinks.Seq" Version="5.2.2" />
|
||||
<PackageReference Include="Serilog.Sinks.SpectreConsole" Version="0.3.3" />
|
||||
<PackageReference Include="Serilog.Sinks.XUnit" Version="3.0.3" />
|
||||
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
|
||||
@ -83,23 +84,24 @@
|
||||
<PackageReference Include="AspNetCore.HealthChecks.UI" Version="6.0.5" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" Version="6.0.5" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="6.0.5" />
|
||||
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="7.0.1" />
|
||||
<PackageReference Include="AspNetCore.HealthChecks.MongoDb" Version="6.0.2" />
|
||||
<PackageReference Include="System.Interactive.Async" Version="6.0.1" />
|
||||
<PackageReference Include="MassTransit" Version="8.0.9-develop.658" />
|
||||
<PackageReference Include="MassTransit.RabbitMQ" Version="8.0.9-develop.658" />
|
||||
<PackageReference Include="DotNetCore.CAP" Version="6.2.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="6.2.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.MongoDB" Version="6.2.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.OpenTelemetry" Version="6.2.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="6.2.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.SqlServer" Version="6.2.1" />
|
||||
<PackageReference Include="MassTransit" Version="8.0.10" />
|
||||
<PackageReference Include="MassTransit.RabbitMQ" Version="8.0.10" />
|
||||
<PackageReference Include="DotNetCore.CAP" Version="7.0.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="7.0.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.MongoDB" Version="7.0.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.OpenTelemetry" Version="7.0.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="7.0.1" />
|
||||
<PackageReference Include="DotNetCore.CAP.SqlServer" Version="7.0.1" />
|
||||
<PackageReference Include="Duende.IdentityServer" Version="6.2.0" />
|
||||
<PackageReference Include="Duende.IdentityServer.AspNetIdentity" Version="6.2.0" />
|
||||
<PackageReference Include="Duende.IdentityServer.EntityFramework" Version="6.2.0" />
|
||||
<PackageReference Include="Duende.IdentityServer.EntityFramework.Storage" Version="6.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="7.0.0" />
|
||||
<PackageReference Include="Testcontainers" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="7.0.1" />
|
||||
<PackageReference Include="Testcontainers" Version="2.3.0" />
|
||||
<PackageReference Include="Unchase.Swashbuckle.AspNetCore.Extensions" Version="2.7.1" />
|
||||
<PackageReference Include="Yarp.ReverseProxy" Version="1.1.1" />
|
||||
<PackageReference Include="Microsoft.Identity.Web" Version="2.0.5-preview" />
|
||||
|
||||
@ -121,28 +123,27 @@
|
||||
|
||||
<PackageReference Include="EventStore.Client.Grpc.Streams" Version="22.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.0" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.0" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="7.0.1" />
|
||||
|
||||
<PackageReference Include="Nito.AsyncEx" Version="5.1.2" />
|
||||
<PackageReference Include="AutoBogus" Version="2.13.1" />
|
||||
<PackageReference Include="Bogus" Version="34.0.2" />
|
||||
<PackageReference Include="FluentAssertions" Version="6.8.0" />
|
||||
<PackageReference Include="MediatR" Version="9.0.0" />
|
||||
<PackageReference Include="Respawn" Version="6.0.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
|
||||
<PackageReference Include="Moq" Version="4.18.2" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="7.0.1" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.1" />
|
||||
<PackageReference Include="Moq" Version="4.18.4" />
|
||||
|
||||
<PackageReference Include="Google.Protobuf" Version="3.21.9" />
|
||||
<PackageReference Include="Grpc.Net.Client" Version="2.49.0" />
|
||||
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.49.0" />
|
||||
<PackageReference Include="Google.Protobuf" Version="3.21.12" />
|
||||
<PackageReference Include="Grpc.Net.Client" Version="2.51.0" />
|
||||
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.51.0" />
|
||||
<PackageReference Update="AsyncFixer" Version="1.6.0" />
|
||||
<PackageReference Update="Meziantou.Analyzer" Version="1.0.747" />
|
||||
<PackageReference Update="Meziantou.Analyzer" Version="1.0.758" />
|
||||
<PackageReference Remove="Microsoft.VisualStudio.Threading.Analyzers" />
|
||||
<PackageReference Update="Microsoft.VisualStudio.Threading.Analyzers" Version="17.4.27" />
|
||||
<PackageReference Update="Roslynator.Analyzers" Version="4.1.2" />
|
||||
<PackageReference Update="Roslynator.CodeAnalysis.Analyzers" Version="4.1.2" />
|
||||
<PackageReference Update="Roslynator.Formatting.Analyzers" Version="4.1.2" />
|
||||
<PackageReference Update="Roslynator.Analyzers" Version="4.2.0" />
|
||||
<PackageReference Update="Roslynator.CodeAnalysis.Analyzers" Version="4.2.0" />
|
||||
<PackageReference Update="Roslynator.Formatting.Analyzers" Version="4.2.0" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
@ -16,6 +16,10 @@ public static class Extensions
|
||||
{
|
||||
public static IServiceCollection AddCustomHealthCheck(this IServiceCollection services)
|
||||
{
|
||||
var healthOptions = services.GetOptions<HealthOptions>(nameof(HealthOptions));
|
||||
|
||||
if (!healthOptions.Enabled) return services;
|
||||
|
||||
var appOptions = services.GetOptions<AppOptions>(nameof(AppOptions));
|
||||
var sqlOptions = services.GetOptions<DatabaseOptions>(nameof(DatabaseOptions));
|
||||
var rabbitMqOptions = services.GetOptions<RabbitMqOptions>(nameof(RabbitMqOptions));
|
||||
@ -23,7 +27,9 @@ public static class Extensions
|
||||
var logOptions = services.GetOptions<LogOptions>(nameof(LogOptions));
|
||||
|
||||
var healthChecksBuilder = services.AddHealthChecks()
|
||||
.AddRabbitMQ(rabbitConnectionString: $"amqp://{rabbitMqOptions.UserName}:{rabbitMqOptions.Password}@{rabbitMqOptions.HostName}")
|
||||
.AddRabbitMQ(
|
||||
rabbitConnectionString:
|
||||
$"amqp://{rabbitMqOptions.UserName}:{rabbitMqOptions.Password}@{rabbitMqOptions.HostName}")
|
||||
.AddElasticsearch(logOptions.Elastic.ElasticServiceUrl);
|
||||
|
||||
if (mongoOptions.ConnectionString is not null)
|
||||
@ -43,6 +49,10 @@ public static class Extensions
|
||||
|
||||
public static WebApplication UseCustomHealthCheck(this WebApplication app)
|
||||
{
|
||||
var healthOptions = app.Configuration.GetOptions<HealthOptions>(nameof(HealthOptions));
|
||||
|
||||
if (!healthOptions.Enabled) return app;
|
||||
|
||||
app.UseHealthChecks("/healthz",
|
||||
new HealthCheckOptions
|
||||
{
|
||||
|
||||
6
src/BuildingBlocks/HealthCheck/HealthOptions.cs
Normal file
6
src/BuildingBlocks/HealthCheck/HealthOptions.cs
Normal file
@ -0,0 +1,6 @@
|
||||
namespace BuildingBlocks.HealthCheck;
|
||||
|
||||
public class HealthOptions
|
||||
{
|
||||
public bool Enabled { get; set; } = true;
|
||||
}
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
public class ElasticOptions
|
||||
{
|
||||
public bool Enable { get; set; }
|
||||
public bool Enabled { get; set; }
|
||||
public string ElasticServiceUrl { get; set; }
|
||||
public string ElasticSearchIndex { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@ -38,7 +38,7 @@ namespace BuildingBlocks.Logging
|
||||
.Enrich.FromLogContext()
|
||||
.ReadFrom.Configuration(context.Configuration);
|
||||
|
||||
if (logOptions.Elastic is { Enable: true })
|
||||
if (logOptions.Elastic is { Enabled: true })
|
||||
{
|
||||
loggerConfiguration.WriteTo.Elasticsearch(
|
||||
new ElasticsearchSinkOptions(new Uri(logOptions.Elastic.ElasticServiceUrl))
|
||||
@ -48,7 +48,26 @@ namespace BuildingBlocks.Logging
|
||||
});
|
||||
}
|
||||
|
||||
if (logOptions.File is { Enable: true })
|
||||
|
||||
if (logOptions?.Sentry is {Enabled: true})
|
||||
{
|
||||
var minimumBreadcrumbLevel = Enum.TryParse<LogEventLevel>(logOptions.Level, true, out var minBreadcrumbLevel)
|
||||
? minBreadcrumbLevel
|
||||
: LogEventLevel.Information;
|
||||
|
||||
var minimumEventLevel = Enum.TryParse<LogEventLevel>(logOptions.Sentry.MinimumEventLevel, true, out var minEventLevel)
|
||||
? minEventLevel
|
||||
: LogEventLevel.Error;
|
||||
|
||||
loggerConfiguration.WriteTo.Sentry(o =>
|
||||
{
|
||||
o.Dsn = logOptions.Sentry.Dsn;
|
||||
o.MinimumBreadcrumbLevel = minimumBreadcrumbLevel;
|
||||
o.MinimumEventLevel = minimumEventLevel;
|
||||
});
|
||||
}
|
||||
|
||||
if (logOptions.File is { Enabled: true })
|
||||
{
|
||||
var root = env.ContentRootPath;
|
||||
Directory.CreateDirectory(Path.Combine(root, "logs"));
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
|
||||
public class FileOptions
|
||||
{
|
||||
public bool Enable { get; set; }
|
||||
public bool Enabled { get; set; }
|
||||
public string Path { get; set; }
|
||||
public string Interval { get; set; }
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,9 @@
|
||||
{
|
||||
public string Level { get; set; }
|
||||
public ElasticOptions Elastic { get; set; }
|
||||
|
||||
public SentryOptions Sentry { get; set; }
|
||||
public FileOptions File { get; set; }
|
||||
public string LogTemplate { get; set; }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
9
src/BuildingBlocks/Logging/SentryOptions.cs
Normal file
9
src/BuildingBlocks/Logging/SentryOptions.cs
Normal file
@ -0,0 +1,9 @@
|
||||
namespace BuildingBlocks.Logging;
|
||||
|
||||
public class SentryOptions
|
||||
{
|
||||
public bool Enabled { get; set; }
|
||||
public string Dsn { get; set; }
|
||||
public string MinimumBreadcrumbLevel { get; set; }
|
||||
public string MinimumEventLevel { get; set; }
|
||||
}
|
||||
@ -9,8 +9,7 @@ public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<PersistMes
|
||||
{
|
||||
var builder = new DbContextOptionsBuilder<PersistMessageDbContext>();
|
||||
|
||||
builder.UseSqlServer(
|
||||
"Data Source=.\\sqlexpress;Initial Catalog=PersistMessageDB;Persist Security Info=False;Integrated Security=SSPI;TrustServerCertificate=True");
|
||||
builder.UseSqlServer("Server=localhost;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True");
|
||||
return new PersistMessageDbContext(builder.Options);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,6 +5,7 @@ using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.OpenApi.Models;
|
||||
using Swashbuckle.AspNetCore.SwaggerGen;
|
||||
using Unchase.Swashbuckle.AspNetCore.Extensions.Extensions;
|
||||
|
||||
namespace BuildingBlocks.Swagger;
|
||||
|
||||
@ -17,7 +18,7 @@ public static class ServiceCollectionExtensions
|
||||
// https://github.com/dotnet/aspnet-api-versioning/tree/88323136a97a59fcee24517a514c1a445530c7e2/examples/AspNetCore/WebApi/MinimalOpenApiExample
|
||||
public static IServiceCollection AddCustomSwagger(this IServiceCollection services,
|
||||
IConfiguration configuration,
|
||||
Assembly assembly)
|
||||
params Assembly[] assemblies)
|
||||
{
|
||||
// https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/openapi
|
||||
services.AddEndpointsApiExplorer();
|
||||
@ -31,9 +32,14 @@ public static class ServiceCollectionExtensions
|
||||
{
|
||||
options.OperationFilter<SwaggerDefaultValues>();
|
||||
|
||||
var xmlFile = XmlCommentsFilePath(assembly);
|
||||
if (File.Exists(xmlFile)) options.IncludeXmlComments(xmlFile);
|
||||
foreach (var assembly in assemblies)
|
||||
{
|
||||
var xmlFile = XmlCommentsFilePath(assembly);
|
||||
|
||||
if (File.Exists(xmlFile)) options.IncludeXmlComments(xmlFile);
|
||||
}
|
||||
|
||||
options.AddEnumsWithValuesFixFilters();
|
||||
|
||||
options.AddSecurityRequirement(new OpenApiSecurityRequirement
|
||||
{
|
||||
|
||||
@ -48,7 +48,7 @@ public static class TestContainers
|
||||
Username = Guid.NewGuid().ToString("D"),
|
||||
Password = Guid.NewGuid().ToString("D"),
|
||||
})
|
||||
.WithImage("mongo:4")
|
||||
.WithImage("mongo:5")
|
||||
.WithCleanUp(true)
|
||||
.Build();
|
||||
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=db;Database=PersistMessageDB;User ID=sa;Password=@Aa123456"
|
||||
"ConnectionString": "Server=sql;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"RabbitMqOptions": {
|
||||
"HostName": "rabbitmq",
|
||||
|
||||
@ -6,13 +6,19 @@
|
||||
"Level": "information",
|
||||
"LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}",
|
||||
"Elastic": {
|
||||
"Enable": true,
|
||||
"Enabled": true,
|
||||
"ElasticServiceUrl": "http://localhost:9200"
|
||||
},
|
||||
"File": {
|
||||
"enable": false,
|
||||
"path": "logs/logs.txt",
|
||||
"interval": "day"
|
||||
"Enabled": false,
|
||||
"Path": "logs/logs.txt",
|
||||
"Interval": "day"
|
||||
},
|
||||
"Sentry": {
|
||||
"Enabled": false,
|
||||
"Dsn": "",
|
||||
"MinimumBreadcrumbLevel": "information",
|
||||
"MinimumEventLevel":"error"
|
||||
}
|
||||
},
|
||||
"Jwt": {
|
||||
@ -37,10 +43,13 @@
|
||||
"ConnectionString": "mongodb://localhost:27017",
|
||||
"DatabaseName": "booking-db"
|
||||
},
|
||||
"HealthOptions": {
|
||||
"Enabled": false
|
||||
},
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=.\\sqlexpress;Database=PersistMessageDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"ConnectionString": "Server=localhost;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
|
||||
@ -24,6 +24,6 @@
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=.\\sqlexpress;Database=PersistMessageDB_Test;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"ConnectionString": "Server=localhost;Database=PersistMessageDB_Test;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Grpc.Tools" Version="2.50.0">
|
||||
<PackageReference Include="Grpc.Tools" Version="2.51.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
|
||||
@ -12,18 +12,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
|
||||
<PackageReference Include="xunit" Version="2.4.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="3.2.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
}
|
||||
},
|
||||
"DatabaseOptions": {
|
||||
"DefaultConnection": "Server=db;Database=FlightDB;User ID=sa;Password=@Aa123456"
|
||||
"DefaultConnection": "Server=sql;Database=FlightDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"Jwt": {
|
||||
"Authority": "https://localhost:5005",
|
||||
@ -23,7 +23,7 @@
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=db;Database=PersistMessageDB;User ID=sa;Password=@Aa123456"
|
||||
"ConnectionString": "Server=sql;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
|
||||
@ -6,17 +6,23 @@
|
||||
"Level": "information",
|
||||
"LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}",
|
||||
"Elastic": {
|
||||
"Enable": true,
|
||||
"Enabled": true,
|
||||
"ElasticServiceUrl": "http://localhost:9200"
|
||||
},
|
||||
"File": {
|
||||
"enable": false,
|
||||
"path": "logs/logs.txt",
|
||||
"interval": "day"
|
||||
"Enabled": false,
|
||||
"Path": "logs/logs.txt",
|
||||
"Interval": "day"
|
||||
},
|
||||
"Sentry": {
|
||||
"Enabled": false,
|
||||
"Dsn": "",
|
||||
"MinimumBreadcrumbLevel": "information",
|
||||
"MinimumEventLevel": "error"
|
||||
}
|
||||
},
|
||||
"DatabaseOptions": {
|
||||
"DefaultConnection": "Server=.\\sqlexpress;Database=FlightDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"DefaultConnection": "Server=localhost;Database=FlightDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"MongoOptions": {
|
||||
"ConnectionString": "mongodb://localhost:27017",
|
||||
@ -36,7 +42,10 @@
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=.\\sqlexpress;Database=PersistMessageDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"ConnectionString": "Server=localhost;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"HealthOptions": {
|
||||
"Enabled": false
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"DatabaseOptions": {
|
||||
"DefaultConnection": "Server=.\\sqlexpress;Database=FlightDB_Test;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"DefaultConnection": "Server=localhost;Database=FlightDB_Test;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"RabbitMqOptions": {
|
||||
"HostName": "localhost",
|
||||
@ -20,6 +20,6 @@
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 2,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=.\\sqlexpress;Database=PersistMessageDB_Test;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"ConnectionString": "Server=localhost;Database=PersistMessageDB_Test;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,7 +9,7 @@ namespace Flight.Data
|
||||
{
|
||||
var builder = new DbContextOptionsBuilder<FlightDbContext>();
|
||||
|
||||
builder.UseSqlServer("Data Source=.\\sqlexpress;Initial Catalog=FlightDB;Persist Security Info=False;Integrated Security=SSPI;TrustServerCertificate=True");
|
||||
builder.UseSqlServer("Server=localhost;Database=FlightDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True");
|
||||
return new FlightDbContext(builder.Options, null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5,9 +5,9 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Grpc.AspNetCore" Version="2.49.0" />
|
||||
<PackageReference Include="Grpc.Net.Client" Version="2.49.0" />
|
||||
<PackageReference Include="Grpc.Tools" Version="2.50.0">
|
||||
<PackageReference Include="Grpc.AspNetCore" Version="2.51.0" />
|
||||
<PackageReference Include="Grpc.Net.Client" Version="2.51.0" />
|
||||
<PackageReference Include="Grpc.Tools" Version="2.51.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
|
||||
@ -15,18 +15,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
|
||||
<PackageReference Include="xunit" Version="2.4.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="3.2.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@ -12,18 +12,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
|
||||
<PackageReference Include="xunit" Version="2.4.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="3.2.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@ -12,14 +12,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="3.2.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
|
||||
<PackageReference Include="xunit" Version="2.4.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
{
|
||||
"App": "Identity-Service",
|
||||
"DatabaseOptions": {
|
||||
"DefaultConnection": "Server=db;Database=IdentityDB;User ID=sa;Password=@Aa123456"
|
||||
"DefaultConnection": "Server=sql;Database=IdentityDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=db;Database=PersistMessageDB;User ID=sa;Password=@Aa123456"
|
||||
"ConnectionString": "Server=sql;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"RabbitMqOptions": {
|
||||
"HostName": "rabbitmq",
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"Name": "Identity-Service"
|
||||
},
|
||||
"DatabaseOptions": {
|
||||
"DefaultConnection": "Server=.\\sqlexpress;Database=IdentityDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"DefaultConnection": "Server=localhost;Database=IdentityDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"RabbitMqOptions": {
|
||||
"HostName": "localhost",
|
||||
@ -20,19 +20,28 @@
|
||||
"Level": "information",
|
||||
"LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}",
|
||||
"Elastic": {
|
||||
"Enable": true,
|
||||
"Enabled": true,
|
||||
"ElasticServiceUrl": "http://localhost:9200"
|
||||
},
|
||||
"File": {
|
||||
"enable": false,
|
||||
"path": "logs/logs.txt",
|
||||
"interval": "day"
|
||||
"Enabled": false,
|
||||
"Path": "logs/logs.txt",
|
||||
"Interval": "day"
|
||||
},
|
||||
"Sentry": {
|
||||
"Enabled": false,
|
||||
"Dsn": "",
|
||||
"MinimumBreadcrumbLevel": "information",
|
||||
"MinimumEventLevel":"error"
|
||||
}
|
||||
},
|
||||
"HealthOptions": {
|
||||
"Enabled": false
|
||||
},
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=.\\sqlexpress;Database=PersistMessageDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"ConnectionString": "Server=localhost;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"DatabaseOptions": {
|
||||
"DefaultConnection": "Server=.\\sqlexpress;Database=IdentityDB_Test;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"DefaultConnection": "Server=localhost;Database=IdentityDB_Test;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"RabbitMqOptions": {
|
||||
"HostName": "localhost",
|
||||
@ -20,6 +20,6 @@
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=.\\sqlexpress;Database=PersistMessageDB_Test;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"ConnectionString": "Server=localhost;Database=PersistMessageDB_Test;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,7 +9,7 @@ public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<IdentityCo
|
||||
{
|
||||
var builder = new DbContextOptionsBuilder<IdentityContext>();
|
||||
|
||||
builder.UseSqlServer("Server=.\\sqlexpress;Database=IdentityDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True");
|
||||
builder.UseSqlServer("Server=localhost;Database=IdentityDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True");
|
||||
return new IdentityContext(builder.Options, null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,18 +12,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
|
||||
<PackageReference Include="xunit" Version="2.4.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="3.2.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
{
|
||||
"App": "Passenger-Service",
|
||||
"DatabaseOptions": {
|
||||
"DefaultConnection": "Server=db;Database=PassengerDB;User ID=sa;Password=@Aa123456"
|
||||
|
||||
"DefaultConnection": "Server=sql;Database=PassengerDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=db;Database=PersistMessageDB;User ID=sa;Password=@Aa123456"
|
||||
"ConnectionString": "Server=sql;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"Jwt": {
|
||||
"Authority": "https://localhost:5005",
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
"Name": "Passenger-Service"
|
||||
},
|
||||
"DatabaseOptions": {
|
||||
"DefaultConnection": "Server=.\\sqlexpress;Database=PassengerDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"DefaultConnection": "Server=localhost;Database=PassengerDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"MongoOptions": {
|
||||
"ConnectionString": "mongodb://localhost:27017",
|
||||
@ -24,19 +24,28 @@
|
||||
"Level": "information",
|
||||
"LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}",
|
||||
"Elastic": {
|
||||
"Enable": true,
|
||||
"Enabled": true,
|
||||
"ElasticServiceUrl": "http://localhost:9200"
|
||||
},
|
||||
"File": {
|
||||
"enable": false,
|
||||
"path": "logs/logs.txt",
|
||||
"interval": "day"
|
||||
"Enabled": false,
|
||||
"Path": "logs/logs.txt",
|
||||
"Interval": "day"
|
||||
},
|
||||
"Sentry": {
|
||||
"Enabled": false,
|
||||
"Dsn": "",
|
||||
"MinimumBreadcrumbLevel": "information",
|
||||
"MinimumEventLevel":"error"
|
||||
}
|
||||
},
|
||||
"HealthOptions": {
|
||||
"Enabled": false
|
||||
},
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=.\\sqlexpress;Database=PersistMessageDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"ConnectionString": "Server=localhost;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"AllowedHosts": "*"
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"DatabaseOptions": {
|
||||
"DefaultConnection": "Server=.\\sqlexpress;Database=PassengerDB;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"DefaultConnection": "Server=localhost;Database=PassengerDB_Test;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
},
|
||||
"RabbitMqOptions": {
|
||||
"HostName": "localhost",
|
||||
@ -20,6 +20,6 @@
|
||||
"PersistMessageOptions": {
|
||||
"Interval": 30,
|
||||
"Enabled": true,
|
||||
"ConnectionString": "Server=.\\sqlexpress;Database=PersistMessageDB_Test;Trusted_Connection=True;MultipleActiveResultSets=true;TrustServerCertificate=True"
|
||||
"ConnectionString": "Server=localhost;Database=PersistMessageDB_Test;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
|
||||
}
|
||||
}
|
||||
|
||||
@ -9,8 +9,7 @@ public class DesignTimeDbContextFactory: IDesignTimeDbContextFactory<PassengerDb
|
||||
{
|
||||
var builder = new DbContextOptionsBuilder<PassengerDbContext>();
|
||||
|
||||
builder.UseSqlServer(
|
||||
"Data Source=.\\sqlexpress;Initial Catalog=PassengerDB;Persist Security Info=False;Integrated Security=SSPI;TrustServerCertificate=True");
|
||||
builder.UseSqlServer("Server=localhost;Database=PassengerDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True");
|
||||
return new PassengerDbContext(builder.Options, null);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Grpc.AspNetCore" Version="2.49.0" />
|
||||
<PackageReference Include="Grpc.AspNetCore" Version="2.51.0" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
|
||||
@ -12,18 +12,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
|
||||
<PackageReference Include="xunit" Version="2.4.2" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="coverlet.collector" Version="3.2.0">
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user