Merge pull request #73 from meysamhadeli/develop

Develop
This commit is contained in:
Meysam Hadeli 2023-01-04 02:19:46 +03:30 committed by GitHub
commit 0117c5ccba
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
38 changed files with 226 additions and 195 deletions

View File

@ -20,5 +20,5 @@ jobs:
- name: Restore dependencies - name: Restore dependencies
run: dotnet restore run: dotnet restore
- name: Build - name: Build
run: dotnet build --no-restore run: dotnet build -c Release --no-restore

View File

@ -16,7 +16,7 @@ services:
- "5001:80" - "5001:80"
- "5000:443" - "5000:443"
depends_on: depends_on:
- db - sql
- rabbitmq - rabbitmq
- jaeger - jaeger
- elasticsearch - elasticsearch
@ -47,7 +47,7 @@ services:
- 5004:80 - 5004:80
- 5003:443 - 5003:443
depends_on: depends_on:
- db - sql
- rabbitmq - rabbitmq
- jaeger - jaeger
- elasticsearch - elasticsearch
@ -79,7 +79,7 @@ services:
- 6005:80 - 6005:80
- 5005:443 - 5005:443
depends_on: depends_on:
- db - sql
- rabbitmq - rabbitmq
- jaeger - jaeger
- elasticsearch - elasticsearch
@ -110,7 +110,7 @@ services:
- 6012:80 - 6012:80
- 5012:443 - 5012:443
depends_on: depends_on:
- db - sql
- rabbitmq - rabbitmq
- jaeger - jaeger
- elasticsearch - elasticsearch
@ -142,10 +142,10 @@ services:
- 6010:80 - 6010:80
- 5010:443 - 5010:443
depends_on: depends_on:
- db - sql
- rabbitmq - rabbitmq
- jaeger - jaeger
- eventstore.db - eventstore
- elasticsearch - elasticsearch
- kibana - kibana
- mongo - mongo
@ -163,8 +163,8 @@ services:
####################################################### #######################################################
# SqlServer # SqlServer
####################################################### #######################################################
db: sql:
container_name: sqldb container_name: sql
image: mcr.microsoft.com/mssql/server:2022-latest image: mcr.microsoft.com/mssql/server:2022-latest
restart: unless-stopped restart: unless-stopped
ports: ports:
@ -196,8 +196,8 @@ services:
# Rabbitmq # Rabbitmq
####################################################### #######################################################
rabbitmq: rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq container_name: rabbitmq
image: rabbitmq:3-management
restart: unless-stopped restart: unless-stopped
ports: ports:
- 5672:5672 - 5672:5672
@ -228,7 +228,8 @@ services:
####################################################### #######################################################
# EventStoreDB # EventStoreDB
####################################################### #######################################################
eventstore.db: eventstore:
container_name: eventstore
image: eventstore/eventstore:21.2.0-buster-slim image: eventstore/eventstore:21.2.0-buster-slim
restart: on-failure restart: on-failure
environment: environment:
@ -251,7 +252,7 @@ services:
# Mongo # Mongo
####################################################### #######################################################
mongo: mongo:
image: mongo:4 image: mongo:5
container_name: mongo container_name: mongo
restart: unless-stopped restart: unless-stopped
# environment: # environment:
@ -261,9 +262,6 @@ services:
- booking - booking
ports: ports:
- 27017:27017 - 27017:27017
volumes:
- mongo:/data/db
####################################################### #######################################################
# Elastic Search # Elastic Search
@ -310,8 +308,6 @@ networks:
volumes: volumes:
db-data: db-data:
external: false external: false
mongo:
driver: local
elasticsearch-data: elasticsearch-data:

View File

@ -5,8 +5,8 @@ services:
# Rabbitmq # Rabbitmq
####################################################### #######################################################
rabbitmq: rabbitmq:
image: rabbitmq:3-management
container_name: rabbitmq container_name: rabbitmq
image: rabbitmq:3-management
restart: unless-stopped restart: unless-stopped
ports: ports:
- 5672:5672 - 5672:5672
@ -18,8 +18,8 @@ services:
####################################################### #######################################################
# SqlServer # SqlServer
####################################################### #######################################################
db: sql:
container_name: sqldb container_name: sql
image: mcr.microsoft.com/mssql/server:2022-latest image: mcr.microsoft.com/mssql/server:2022-latest
restart: unless-stopped restart: unless-stopped
ports: ports:
@ -50,8 +50,8 @@ services:
# Jaeger # Jaeger
####################################################### #######################################################
jaeger: jaeger:
image: jaegertracing/all-in-one
container_name: jaeger container_name: jaeger
image: jaegertracing/all-in-one
restart: unless-stopped restart: unless-stopped
networks: networks:
- booking - booking
@ -68,7 +68,8 @@ services:
####################################################### #######################################################
# EventStoreDB # EventStoreDB
####################################################### #######################################################
eventstore.db: eventstore:
container_name: eventstore
image: eventstore/eventstore:21.2.0-buster-slim image: eventstore/eventstore:21.2.0-buster-slim
restart: on-failure restart: on-failure
environment: environment:
@ -91,7 +92,7 @@ services:
# Mongo # Mongo
####################################################### #######################################################
mongo: mongo:
image: mongo:4 image: mongo:5
container_name: mongo container_name: mongo
restart: unless-stopped restart: unless-stopped
# environment: # environment:
@ -101,8 +102,6 @@ services:
- booking - booking
ports: ports:
- 27017:27017 - 27017:27017
volumes:
- mongo:/data/db
####################################################### #######################################################
@ -162,8 +161,6 @@ networks:
volumes: volumes:
db-data: db-data:
external: false external: false
mongo:
driver: local
elasticsearch-data: elasticsearch-data:

View File

@ -8,31 +8,31 @@
<ItemGroup> <ItemGroup>
<PackageReference Include="Ardalis.GuardClauses" Version="4.0.1" /> <PackageReference Include="Ardalis.GuardClauses" Version="4.0.1" />
<PackageReference Include="Asp.Versioning.Abstractions" Version="7.0.0-preview.1" /> <PackageReference Include="Asp.Versioning.Abstractions" Version="7.0.0" />
<PackageReference Include="Asp.Versioning.Http" Version="7.0.0-preview.1" /> <PackageReference Include="Asp.Versioning.Http" Version="7.0.0" />
<PackageReference Include="Asp.Versioning.Mvc" Version="7.0.0-preview.1" /> <PackageReference Include="Asp.Versioning.Mvc" Version="7.0.0" />
<PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="7.0.0-preview.1" /> <PackageReference Include="Asp.Versioning.Mvc.ApiExplorer" Version="7.0.0" />
<PackageReference Include="AspNetCore.HealthChecks.Elasticsearch" Version="6.0.2" /> <PackageReference Include="AspNetCore.HealthChecks.Elasticsearch" Version="6.0.2" />
<PackageReference Include="AspNetCore.HealthChecks.EventStore" Version="6.0.3" /> <PackageReference Include="AspNetCore.HealthChecks.EventStore" Version="6.0.3" />
<PackageReference Include="AspNetCore.HealthChecks.Rabbitmq" Version="6.0.2" /> <PackageReference Include="AspNetCore.HealthChecks.Rabbitmq" Version="6.0.2" />
<PackageReference Include="AspNetCore.HealthChecks.SqlServer" 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="AspNetCore.HealthChecks.UI.SQLite.Storage" Version="6.0.5" />
<PackageReference Include="Ben.BlockingDetector" Version="0.0.4" /> <PackageReference Include="Ben.BlockingDetector" Version="0.0.4" />
<PackageReference Include="EasyCaching.Core" Version="1.7.0" /> <PackageReference Include="EasyCaching.Core" Version="1.8.0" />
<PackageReference Include="EasyCaching.InMemory" Version="1.7.0" /> <PackageReference Include="EasyCaching.InMemory" Version="1.8.0" />
<PackageReference Include="EasyNetQ.Management.Client" Version="1.4.2" /> <PackageReference Include="EasyNetQ.Management.Client" Version="1.4.2" />
<PackageReference Include="EFCore.NamingConventions" Version="7.0.0" /> <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="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="FluentValidation.AspNetCore" Version="11.2.2" />
<PackageReference Include="Grpc.Core.Testing" Version="2.46.5" /> <PackageReference Include="Grpc.Core.Testing" Version="2.46.5" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.0" /> <PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="7.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.0"> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.1">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </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="Microsoft.Extensions.DependencyModel" Version="7.0.0" />
<PackageReference Include="Mongo2Go" Version="3.1.3" /> <PackageReference Include="Mongo2Go" Version="3.1.3" />
<PackageReference Include="NSubstitute" Version="4.4.0" /> <PackageReference Include="NSubstitute" Version="4.4.0" />
@ -44,36 +44,37 @@
</PackageReference> </PackageReference>
<PackageReference Include="Hellang.Middleware.ProblemDetails" Version="6.5.1" /> <PackageReference Include="Hellang.Middleware.ProblemDetails" Version="6.5.1" />
<PackageReference Include="Humanizer.Core" Version="2.14.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" Version="7.3.0" />
<PackageReference Include="Mapster.DependencyInjection" Version="1.0.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="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.AspNetCore.Http" Version="2.2.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="7.0.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.0" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="7.0.0" /> <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" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" 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.Logging.Abstractions" Version="7.0.0" />
<PackageReference Include="Microsoft.Extensions.PlatformAbstractions" Version="1.1.0" /> <PackageReference Include="Microsoft.Extensions.PlatformAbstractions" Version="1.1.0" />
<PackageReference Include="MongoDB.Driver" Version="2.18.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="OpenTelemetry.Contrib.Instrumentation.MassTransit" Version="1.0.0-beta2" />
<PackageReference Include="Scrutor" Version="4.2.0" /> <PackageReference Include="Scrutor" Version="4.2.0" />
<PackageReference Include="Scrutor.AspNetCore" Version="3.3.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" 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.Enrichers.Span" Version="3.0.0" />
<PackageReference Include="Serilog.Exceptions" Version="8.4.0" /> <PackageReference Include="Serilog.Exceptions" Version="8.4.0" />
<PackageReference Include="Serilog.Formatting.Elasticsearch" Version="8.4.1" /> <PackageReference Include="Serilog.Formatting.Elasticsearch" Version="8.4.1" />
<PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" /> <PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.Elasticsearch" Version="8.4.1" /> <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.SpectreConsole" Version="0.3.3" />
<PackageReference Include="Serilog.Sinks.XUnit" Version="3.0.3" /> <PackageReference Include="Serilog.Sinks.XUnit" Version="3.0.3" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" /> <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" Version="6.0.5" />
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" 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="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="AspNetCore.HealthChecks.MongoDb" Version="6.0.2" />
<PackageReference Include="System.Interactive.Async" Version="6.0.1" /> <PackageReference Include="System.Interactive.Async" Version="6.0.1" />
<PackageReference Include="MassTransit" Version="8.0.9-develop.658" /> <PackageReference Include="MassTransit" Version="8.0.10" />
<PackageReference Include="MassTransit.RabbitMQ" Version="8.0.9-develop.658" /> <PackageReference Include="MassTransit.RabbitMQ" Version="8.0.10" />
<PackageReference Include="DotNetCore.CAP" Version="6.2.1" /> <PackageReference Include="DotNetCore.CAP" Version="7.0.1" />
<PackageReference Include="DotNetCore.CAP.Dashboard" Version="6.2.1" /> <PackageReference Include="DotNetCore.CAP.Dashboard" Version="7.0.1" />
<PackageReference Include="DotNetCore.CAP.MongoDB" Version="6.2.1" /> <PackageReference Include="DotNetCore.CAP.MongoDB" Version="7.0.1" />
<PackageReference Include="DotNetCore.CAP.OpenTelemetry" Version="6.2.1" /> <PackageReference Include="DotNetCore.CAP.OpenTelemetry" Version="7.0.1" />
<PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="6.2.1" /> <PackageReference Include="DotNetCore.CAP.RabbitMQ" Version="7.0.1" />
<PackageReference Include="DotNetCore.CAP.SqlServer" Version="6.2.1" /> <PackageReference Include="DotNetCore.CAP.SqlServer" Version="7.0.1" />
<PackageReference Include="Duende.IdentityServer" Version="6.2.0" /> <PackageReference Include="Duende.IdentityServer" Version="6.2.0" />
<PackageReference Include="Duende.IdentityServer.AspNetIdentity" 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" Version="6.2.0" />
<PackageReference Include="Duende.IdentityServer.EntityFramework.Storage" 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="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="7.0.1" />
<PackageReference Include="Testcontainers" Version="2.2.0" /> <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="Yarp.ReverseProxy" Version="1.1.1" />
<PackageReference Include="Microsoft.Identity.Web" Version="2.0.5-preview" /> <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="EventStore.Client.Grpc.Streams" Version="22.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.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="Nito.AsyncEx" Version="5.1.2" />
<PackageReference Include="AutoBogus" Version="2.13.1" /> <PackageReference Include="AutoBogus" Version="2.13.1" />
<PackageReference Include="Bogus" Version="34.0.2" /> <PackageReference Include="Bogus" Version="34.0.2" />
<PackageReference Include="FluentAssertions" Version="6.8.0" /> <PackageReference Include="FluentAssertions" Version="6.8.0" />
<PackageReference Include="MediatR" Version="9.0.0" />
<PackageReference Include="Respawn" Version="6.0.0" /> <PackageReference Include="Respawn" Version="6.0.0" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" Version="7.0.0" /> <PackageReference Include="Microsoft.AspNetCore.TestHost" Version="7.0.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.1" />
<PackageReference Include="Moq" Version="4.18.2" /> <PackageReference Include="Moq" Version="4.18.4" />
<PackageReference Include="Google.Protobuf" Version="3.21.9" /> <PackageReference Include="Google.Protobuf" Version="3.21.12" />
<PackageReference Include="Grpc.Net.Client" Version="2.49.0" /> <PackageReference Include="Grpc.Net.Client" Version="2.51.0" />
<PackageReference Include="Grpc.Net.ClientFactory" Version="2.49.0" /> <PackageReference Include="Grpc.Net.ClientFactory" Version="2.51.0" />
<PackageReference Update="AsyncFixer" Version="1.6.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 Remove="Microsoft.VisualStudio.Threading.Analyzers" />
<PackageReference Update="Microsoft.VisualStudio.Threading.Analyzers" Version="17.4.27" /> <PackageReference Update="Microsoft.VisualStudio.Threading.Analyzers" Version="17.4.27" />
<PackageReference Update="Roslynator.Analyzers" Version="4.1.2" /> <PackageReference Update="Roslynator.Analyzers" Version="4.2.0" />
<PackageReference Update="Roslynator.CodeAnalysis.Analyzers" Version="4.1.2" /> <PackageReference Update="Roslynator.CodeAnalysis.Analyzers" Version="4.2.0" />
<PackageReference Update="Roslynator.Formatting.Analyzers" Version="4.1.2" /> <PackageReference Update="Roslynator.Formatting.Analyzers" Version="4.2.0" />
</ItemGroup> </ItemGroup>

View File

@ -16,6 +16,10 @@ public static class Extensions
{ {
public static IServiceCollection AddCustomHealthCheck(this IServiceCollection services) 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 appOptions = services.GetOptions<AppOptions>(nameof(AppOptions));
var sqlOptions = services.GetOptions<DatabaseOptions>(nameof(DatabaseOptions)); var sqlOptions = services.GetOptions<DatabaseOptions>(nameof(DatabaseOptions));
var rabbitMqOptions = services.GetOptions<RabbitMqOptions>(nameof(RabbitMqOptions)); var rabbitMqOptions = services.GetOptions<RabbitMqOptions>(nameof(RabbitMqOptions));
@ -23,7 +27,9 @@ public static class Extensions
var logOptions = services.GetOptions<LogOptions>(nameof(LogOptions)); var logOptions = services.GetOptions<LogOptions>(nameof(LogOptions));
var healthChecksBuilder = services.AddHealthChecks() 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); .AddElasticsearch(logOptions.Elastic.ElasticServiceUrl);
if (mongoOptions.ConnectionString is not null) if (mongoOptions.ConnectionString is not null)
@ -43,6 +49,10 @@ public static class Extensions
public static WebApplication UseCustomHealthCheck(this WebApplication app) public static WebApplication UseCustomHealthCheck(this WebApplication app)
{ {
var healthOptions = app.Configuration.GetOptions<HealthOptions>(nameof(HealthOptions));
if (!healthOptions.Enabled) return app;
app.UseHealthChecks("/healthz", app.UseHealthChecks("/healthz",
new HealthCheckOptions new HealthCheckOptions
{ {

View File

@ -0,0 +1,6 @@
namespace BuildingBlocks.HealthCheck;
public class HealthOptions
{
public bool Enabled { get; set; } = true;
}

View File

@ -2,7 +2,7 @@
public class ElasticOptions public class ElasticOptions
{ {
public bool Enable { get; set; } public bool Enabled { get; set; }
public string ElasticServiceUrl { get; set; } public string ElasticServiceUrl { get; set; }
public string ElasticSearchIndex { get; set; } public string ElasticSearchIndex { get; set; }
} }

View File

@ -38,7 +38,7 @@ namespace BuildingBlocks.Logging
.Enrich.FromLogContext() .Enrich.FromLogContext()
.ReadFrom.Configuration(context.Configuration); .ReadFrom.Configuration(context.Configuration);
if (logOptions.Elastic is { Enable: true }) if (logOptions.Elastic is { Enabled: true })
{ {
loggerConfiguration.WriteTo.Elasticsearch( loggerConfiguration.WriteTo.Elasticsearch(
new ElasticsearchSinkOptions(new Uri(logOptions.Elastic.ElasticServiceUrl)) 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; var root = env.ContentRootPath;
Directory.CreateDirectory(Path.Combine(root, "logs")); Directory.CreateDirectory(Path.Combine(root, "logs"));

View File

@ -2,7 +2,7 @@
public class FileOptions public class FileOptions
{ {
public bool Enable { get; set; } public bool Enabled { get; set; }
public string Path { get; set; } public string Path { get; set; }
public string Interval { get; set; } public string Interval { get; set; }
} }

View File

@ -4,7 +4,9 @@
{ {
public string Level { get; set; } public string Level { get; set; }
public ElasticOptions Elastic { get; set; } public ElasticOptions Elastic { get; set; }
public SentryOptions Sentry { get; set; }
public FileOptions File { get; set; } public FileOptions File { get; set; }
public string LogTemplate { get; set; } public string LogTemplate { get; set; }
} }
} }

View 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; }
}

View File

@ -9,8 +9,7 @@ public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<PersistMes
{ {
var builder = new DbContextOptionsBuilder<PersistMessageDbContext>(); var builder = new DbContextOptionsBuilder<PersistMessageDbContext>();
builder.UseSqlServer( builder.UseSqlServer("Server=localhost;Database=PersistMessageDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True");
"Data Source=.\\sqlexpress;Initial Catalog=PersistMessageDB;Persist Security Info=False;Integrated Security=SSPI;TrustServerCertificate=True");
return new PersistMessageDbContext(builder.Options); return new PersistMessageDbContext(builder.Options);
} }
} }

View File

@ -5,6 +5,7 @@ using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Microsoft.OpenApi.Models; using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen; using Swashbuckle.AspNetCore.SwaggerGen;
using Unchase.Swashbuckle.AspNetCore.Extensions.Extensions;
namespace BuildingBlocks.Swagger; namespace BuildingBlocks.Swagger;
@ -17,7 +18,7 @@ public static class ServiceCollectionExtensions
// https://github.com/dotnet/aspnet-api-versioning/tree/88323136a97a59fcee24517a514c1a445530c7e2/examples/AspNetCore/WebApi/MinimalOpenApiExample // https://github.com/dotnet/aspnet-api-versioning/tree/88323136a97a59fcee24517a514c1a445530c7e2/examples/AspNetCore/WebApi/MinimalOpenApiExample
public static IServiceCollection AddCustomSwagger(this IServiceCollection services, public static IServiceCollection AddCustomSwagger(this IServiceCollection services,
IConfiguration configuration, IConfiguration configuration,
Assembly assembly) params Assembly[] assemblies)
{ {
// https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/openapi // https://learn.microsoft.com/en-us/aspnet/core/fundamentals/minimal-apis/openapi
services.AddEndpointsApiExplorer(); services.AddEndpointsApiExplorer();
@ -31,9 +32,14 @@ public static class ServiceCollectionExtensions
{ {
options.OperationFilter<SwaggerDefaultValues>(); options.OperationFilter<SwaggerDefaultValues>();
var xmlFile = XmlCommentsFilePath(assembly); foreach (var assembly in assemblies)
if (File.Exists(xmlFile)) options.IncludeXmlComments(xmlFile); {
var xmlFile = XmlCommentsFilePath(assembly);
if (File.Exists(xmlFile)) options.IncludeXmlComments(xmlFile);
}
options.AddEnumsWithValuesFixFilters();
options.AddSecurityRequirement(new OpenApiSecurityRequirement options.AddSecurityRequirement(new OpenApiSecurityRequirement
{ {

View File

@ -48,7 +48,7 @@ public static class TestContainers
Username = Guid.NewGuid().ToString("D"), Username = Guid.NewGuid().ToString("D"),
Password = Guid.NewGuid().ToString("D"), Password = Guid.NewGuid().ToString("D"),
}) })
.WithImage("mongo:4") .WithImage("mongo:5")
.WithCleanUp(true) .WithCleanUp(true)
.Build(); .Build();

View File

@ -9,7 +9,7 @@
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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": { "RabbitMqOptions": {
"HostName": "rabbitmq", "HostName": "rabbitmq",

View File

@ -6,13 +6,19 @@
"Level": "information", "Level": "information",
"LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}", "LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}",
"Elastic": { "Elastic": {
"Enable": true, "Enabled": true,
"ElasticServiceUrl": "http://localhost:9200" "ElasticServiceUrl": "http://localhost:9200"
}, },
"File": { "File": {
"enable": false, "Enabled": false,
"path": "logs/logs.txt", "Path": "logs/logs.txt",
"interval": "day" "Interval": "day"
},
"Sentry": {
"Enabled": false,
"Dsn": "",
"MinimumBreadcrumbLevel": "information",
"MinimumEventLevel":"error"
} }
}, },
"Jwt": { "Jwt": {
@ -37,10 +43,13 @@
"ConnectionString": "mongodb://localhost:27017", "ConnectionString": "mongodb://localhost:27017",
"DatabaseName": "booking-db" "DatabaseName": "booking-db"
}, },
"HealthOptions": {
"Enabled": false
},
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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": "*" "AllowedHosts": "*"
} }

View File

@ -24,6 +24,6 @@
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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"
} }
} }

View File

@ -6,7 +6,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Grpc.Tools" Version="2.50.0"> <PackageReference Include="Grpc.Tools" Version="2.51.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

View File

@ -12,18 +12,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
<PackageReference Include="xunit" Version="2.4.2" /> <PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5"> <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>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -7,7 +7,7 @@
} }
}, },
"DatabaseOptions": { "DatabaseOptions": {
"DefaultConnection": "Server=db;Database=FlightDB;User ID=sa;Password=@Aa123456" "DefaultConnection": "Server=sql;Database=FlightDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
}, },
"Jwt": { "Jwt": {
"Authority": "https://localhost:5005", "Authority": "https://localhost:5005",
@ -23,7 +23,7 @@
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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": "*" "AllowedHosts": "*"
} }

View File

@ -6,17 +6,23 @@
"Level": "information", "Level": "information",
"LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}", "LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}",
"Elastic": { "Elastic": {
"Enable": true, "Enabled": true,
"ElasticServiceUrl": "http://localhost:9200" "ElasticServiceUrl": "http://localhost:9200"
}, },
"File": { "File": {
"enable": false, "Enabled": false,
"path": "logs/logs.txt", "Path": "logs/logs.txt",
"interval": "day" "Interval": "day"
},
"Sentry": {
"Enabled": false,
"Dsn": "",
"MinimumBreadcrumbLevel": "information",
"MinimumEventLevel": "error"
} }
}, },
"DatabaseOptions": { "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": { "MongoOptions": {
"ConnectionString": "mongodb://localhost:27017", "ConnectionString": "mongodb://localhost:27017",
@ -36,7 +42,10 @@
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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": "*" "AllowedHosts": "*"
} }

View File

@ -1,6 +1,6 @@
{ {
"DatabaseOptions": { "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": { "RabbitMqOptions": {
"HostName": "localhost", "HostName": "localhost",
@ -20,6 +20,6 @@
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 2, "Interval": 2,
"Enabled": true, "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"
} }
} }

View File

@ -9,7 +9,7 @@ namespace Flight.Data
{ {
var builder = new DbContextOptionsBuilder<FlightDbContext>(); 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); return new FlightDbContext(builder.Options, null);
} }
} }

View File

@ -5,9 +5,9 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Grpc.AspNetCore" Version="2.49.0" /> <PackageReference Include="Grpc.AspNetCore" Version="2.51.0" />
<PackageReference Include="Grpc.Net.Client" Version="2.49.0" /> <PackageReference Include="Grpc.Net.Client" Version="2.51.0" />
<PackageReference Include="Grpc.Tools" Version="2.50.0"> <PackageReference Include="Grpc.Tools" Version="2.51.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>

View File

@ -15,18 +15,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
<PackageReference Include="xunit" Version="2.4.2" /> <PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5"> <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>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -12,18 +12,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
<PackageReference Include="xunit" Version="2.4.2" /> <PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5"> <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>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -12,14 +12,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5"> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <PackageReference Include="xunit" Version="2.4.2" />
<PrivateAssets>all</PrivateAssets> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
</PackageReference>
<PackageReference Include="coverlet.collector" Version="3.2.0">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,12 +1,12 @@
{ {
"App": "Identity-Service", "App": "Identity-Service",
"DatabaseOptions": { "DatabaseOptions": {
"DefaultConnection": "Server=db;Database=IdentityDB;User ID=sa;Password=@Aa123456" "DefaultConnection": "Server=sql;Database=IdentityDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
}, },
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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": { "RabbitMqOptions": {
"HostName": "rabbitmq", "HostName": "rabbitmq",

View File

@ -3,7 +3,7 @@
"Name": "Identity-Service" "Name": "Identity-Service"
}, },
"DatabaseOptions": { "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": { "RabbitMqOptions": {
"HostName": "localhost", "HostName": "localhost",
@ -20,19 +20,28 @@
"Level": "information", "Level": "information",
"LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}", "LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}",
"Elastic": { "Elastic": {
"Enable": true, "Enabled": true,
"ElasticServiceUrl": "http://localhost:9200" "ElasticServiceUrl": "http://localhost:9200"
}, },
"File": { "File": {
"enable": false, "Enabled": false,
"path": "logs/logs.txt", "Path": "logs/logs.txt",
"interval": "day" "Interval": "day"
},
"Sentry": {
"Enabled": false,
"Dsn": "",
"MinimumBreadcrumbLevel": "information",
"MinimumEventLevel":"error"
} }
}, },
"HealthOptions": {
"Enabled": false
},
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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": "*" "AllowedHosts": "*"
} }

View File

@ -1,6 +1,6 @@
{ {
"DatabaseOptions": { "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": { "RabbitMqOptions": {
"HostName": "localhost", "HostName": "localhost",
@ -20,6 +20,6 @@
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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"
} }
} }

View File

@ -9,7 +9,7 @@ public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<IdentityCo
{ {
var builder = new DbContextOptionsBuilder<IdentityContext>(); 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); return new IdentityContext(builder.Options, null);
} }
} }

View File

@ -12,18 +12,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
<PackageReference Include="xunit" Version="2.4.2" /> <PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5"> <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>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@ -1,12 +1,13 @@
{ {
"App": "Passenger-Service", "App": "Passenger-Service",
"DatabaseOptions": { "DatabaseOptions": {
"DefaultConnection": "Server=db;Database=PassengerDB;User ID=sa;Password=@Aa123456"
"DefaultConnection": "Server=sql;Database=PassengerDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True"
}, },
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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": { "Jwt": {
"Authority": "https://localhost:5005", "Authority": "https://localhost:5005",

View File

@ -3,7 +3,7 @@
"Name": "Passenger-Service" "Name": "Passenger-Service"
}, },
"DatabaseOptions": { "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": { "MongoOptions": {
"ConnectionString": "mongodb://localhost:27017", "ConnectionString": "mongodb://localhost:27017",
@ -24,19 +24,28 @@
"Level": "information", "Level": "information",
"LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}", "LogTemplate": "{Timestamp:HH:mm:ss} [{Level:u4}] {Message:lj}{NewLine}{Exception}",
"Elastic": { "Elastic": {
"Enable": true, "Enabled": true,
"ElasticServiceUrl": "http://localhost:9200" "ElasticServiceUrl": "http://localhost:9200"
}, },
"File": { "File": {
"enable": false, "Enabled": false,
"path": "logs/logs.txt", "Path": "logs/logs.txt",
"interval": "day" "Interval": "day"
},
"Sentry": {
"Enabled": false,
"Dsn": "",
"MinimumBreadcrumbLevel": "information",
"MinimumEventLevel":"error"
} }
}, },
"HealthOptions": {
"Enabled": false
},
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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": "*" "AllowedHosts": "*"
} }

View File

@ -1,6 +1,6 @@
{ {
"DatabaseOptions": { "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": { "RabbitMqOptions": {
"HostName": "localhost", "HostName": "localhost",
@ -20,6 +20,6 @@
"PersistMessageOptions": { "PersistMessageOptions": {
"Interval": 30, "Interval": 30,
"Enabled": true, "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"
} }
} }

View File

@ -9,8 +9,7 @@ public class DesignTimeDbContextFactory: IDesignTimeDbContextFactory<PassengerDb
{ {
var builder = new DbContextOptionsBuilder<PassengerDbContext>(); var builder = new DbContextOptionsBuilder<PassengerDbContext>();
builder.UseSqlServer( builder.UseSqlServer("Server=localhost;Database=PassengerDB;User ID=sa;Password=@Aa123456;TrustServerCertificate=True");
"Data Source=.\\sqlexpress;Initial Catalog=PassengerDB;Persist Security Info=False;Integrated Security=SSPI;TrustServerCertificate=True");
return new PassengerDbContext(builder.Options, null); return new PassengerDbContext(builder.Options, null);
} }
} }

View File

@ -6,7 +6,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <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"> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.0">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

View File

@ -12,18 +12,9 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="7.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.4.0" />
<PackageReference Include="xunit" Version="2.4.2" /> <PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5"> <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>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>