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
run: dotnet restore
- name: Build
run: dotnet build --no-restore
run: dotnet build -c Release --no-restore

View File

@ -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:

View File

@ -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:

View File

@ -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>

View File

@ -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
{

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 bool Enable { get; set; }
public bool Enabled { get; set; }
public string ElasticServiceUrl { get; set; }
public string ElasticSearchIndex { get; set; }
}
}

View File

@ -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"));

View File

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

View File

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

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>();
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);
}
}

View File

@ -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
{

View File

@ -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();

View File

@ -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",

View File

@ -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": "*"
}

View File

@ -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"
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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": "*"
}

View File

@ -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": "*"
}

View File

@ -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"
}
}

View File

@ -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);
}
}

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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>

View File

@ -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",

View File

@ -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": "*"
}

View File

@ -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"
}
}

View File

@ -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);
}
}

View File

@ -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>

View File

@ -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",

View File

@ -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": "*"
}

View File

@ -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"
}
}

View File

@ -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);
}
}

View File

@ -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>

View File

@ -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>