From ce4fb2529a5f760f2bf1775c3e4e24e7dcf73ac6 Mon Sep 17 00:00:00 2001 From: Nocco Giovanni Emanuele Date: Mon, 16 Dec 2024 19:30:30 +0100 Subject: [PATCH 1/8] Add Docker support for new services and update SDK version to 9.0.0 --- README.md | 12 +-- .../Genocs.APIGateway/appsettings.Docker.json | 83 ------------------- .../Genocs.APIGateway/appsettings.json | 2 +- src/apps/apigateway.dockerfile | 7 +- src/apps/docker-compose.override.yml | 8 +- src/apps/docker-compose.yml | 62 +++++++++++--- src/apps/global.json | 7 ++ ...-webapi.dockerfile => identity.dockerfile} | 7 +- .../appsettings.Docker.json | 44 ---------- src/apps/launchSettings.json | 11 +++ src/apps/local copy.env | 10 --- ...er-webapi.dockerfile => orders.dockerfile} | 9 +- .../orders/Genocs.Orders.WebApi/Program.cs | 10 +-- .../appsettings.Docker.json | 49 ----------- ...-webapi.dockerfile => products.dockerfile} | 9 +- .../Genocs.Products.WebApi/Program.cs | 10 +-- .../appsettings.Docker.json | 44 ---------- ...r-webapi.dockerfile => signalr.dockerfile} | 9 +- .../signalr/Genocs.SignalR.WebApi/Program.cs | 6 +- .../appsettings.docker.json | 44 ---------- 20 files changed, 109 insertions(+), 334 deletions(-) delete mode 100644 src/apps/api-gateway/Genocs.APIGateway/appsettings.Docker.json create mode 100644 src/apps/global.json rename src/apps/{identity-webapi.dockerfile => identity.dockerfile} (88%) delete mode 100644 src/apps/identity/Genocs.Identities.WebApi/appsettings.Docker.json create mode 100644 src/apps/launchSettings.json delete mode 100644 src/apps/local copy.env rename src/apps/{order-webapi.dockerfile => orders.dockerfile} (83%) delete mode 100644 src/apps/orders/Genocs.Orders.WebApi/appsettings.Docker.json rename src/apps/{product-webapi.dockerfile => products.dockerfile} (83%) delete mode 100644 src/apps/products/Genocs.Products.WebApi/appsettings.Docker.json rename src/apps/{signalr-webapi.dockerfile => signalr.dockerfile} (90%) delete mode 100644 src/apps/signalr/Genocs.SignalR.WebApi/appsettings.docker.json diff --git a/README.md b/README.md index 0b0fc551..008eb4a3 100644 --- a/README.md +++ b/README.md @@ -474,13 +474,13 @@ The build and run process can be done by using docker-compose cd src/apps # Build with docker compose -docker compose -f ./docker-compose.yml -f ./docker-compose.override.yml --env-file ./local.env --project-name genocs-app build +docker compose -f ./docker-compose.yml -f ./docker-compose.override.yml --env-file ./local.env --project-name genocs build # *** Before running the solution remember to check *** # *** if the infrastructure services were setup *** # Run with docker compose -docker compose -f ./docker-compose.yml --env-file ./local.env --project-name genocs-app up -d +docker compose -f ./docker-compose.yml --env-file ./local.env --project-name genocs up -d # Clean Docker cache docker builder prune @@ -496,16 +496,16 @@ cd src/apps docker build -t genocs/apigateway:1.0.0 -t genocs/apigateway:latest -f ./apigateway.dockerfile . # Build the identity service -docker build -t genocs/identities:1.0.0 -t genocs/identities:latest -f ./identity-webapi.dockerfile . +docker build -t genocs/identities:1.0.0 -t genocs/identities:latest -f ./identity.dockerfile . # Build the order service -docker build -t genocs/orders:1.0.0 -t genocs/orders:latest -f ./containers/order-webapi.dockerfile . +docker build -t genocs/orders:1.0.0 -t genocs/orders:latest -f ./containers/order.dockerfile . # Build the product service -docker build -t genocs/products:1.0.0 -t genocs/products:latest -f ./product-webapi.dockerfile . +docker build -t genocs/products:1.0.0 -t genocs/products:latest -f ./product.dockerfile . # Build the signalr service -docker build -t genocs/signalr:1.0.0 -t genocs/signalr:latest -f ./signalr-webapi.dockerfile . +docker build -t genocs/signalr:1.0.0 -t genocs/signalr:latest -f ./signalr.dockerfile . # Push on Dockerhub diff --git a/src/apps/api-gateway/Genocs.APIGateway/appsettings.Docker.json b/src/apps/api-gateway/Genocs.APIGateway/appsettings.Docker.json deleted file mode 100644 index 258ab8cd..00000000 --- a/src/apps/api-gateway/Genocs.APIGateway/appsettings.Docker.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "consul": { - "enabled": true, - "url": "http://consul:8500", - "service": "api-gateway", - "address": "api-gateway", - "port": "80" - }, - "fabio": { - "enabled": true, - "url": "http://localhost:9999", - "service": "api-gateway" - }, - "logger": { - "seq": { - "enabled": true, - "url": "http://seq:5341" - } - }, - "monitoring": { - "jaeger": "jaeger" - }, - "jaeger": { - "enabled": true, - "serviceName": "orders", - "endpoint": "http://localhost:4317", - "protocol": "Grpc", - "processorType": "Batch", - "maxQueueSize": 2048, - "scheduledDelayMilliseconds": 5000, - "exporterTimeoutMilliseconds": 30000, - "maxExportBatchSize": 512 - }, - "metrics": { - "enabled": true, - "influxEnabled": true, - "prometheusEnabled": true, - "influxUrl": "http://influxdb:8086", - "env": "docker" - }, - "prometheus": { - "enabled": true - }, - "mongodb": { - "connectionString": "mongodb://mongodb:27017", - "enableTracing": true - }, - "redis": { - "connectionString": "redis" - }, - "reverseProxy": { - "clusters": { - "identity-cluster": { - "destinations": { - "destination1": { - "address": "http://identity-service" - } - } - }, - "products-cluster": { - "destinations": { - "destination1": { - "address": "http://products-service" - } - } - }, - "orders-cluster": { - "destinations": { - "destination1": { - "address": "http://orders-service" - } - } - }, - "signalr-cluster": { - "destinations": { - "destination1": { - "address": "http://signalr-service" - } - } - } - } - } -} \ No newline at end of file diff --git a/src/apps/api-gateway/Genocs.APIGateway/appsettings.json b/src/apps/api-gateway/Genocs.APIGateway/appsettings.json index 7a83b97f..0305d3a5 100644 --- a/src/apps/api-gateway/Genocs.APIGateway/appsettings.json +++ b/src/apps/api-gateway/Genocs.APIGateway/appsettings.json @@ -75,7 +75,7 @@ "interval": "day" }, "seq": { - "enabled": true, + "enabled": false, "url": "http://localhost:5341", "apiKey": "secret" }, diff --git a/src/apps/apigateway.dockerfile b/src/apps/apigateway.dockerfile index bc8ad175..101e25c6 100644 --- a/src/apps/apigateway.dockerfile +++ b/src/apps/apigateway.dockerfile @@ -17,12 +17,11 @@ COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.APIGateway" -RUN dotnet build "Genocs.APIGateway.csproj" -c Release -o /app/build - FROM build-env AS publish -RUN dotnet publish "Genocs.APIGateway.csproj" -c Release -o /app/publish +RUN dotnet build "Genocs.APIGateway.csproj" -c Release -o /app/build +# RUN dotnet publish "Genocs.APIGateway.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/publish . +COPY --from=publish /app/build . ENTRYPOINT ["dotnet", "Genocs.APIGateway.dll"] \ No newline at end of file diff --git a/src/apps/docker-compose.override.yml b/src/apps/docker-compose.override.yml index d0f46c92..98f33d4b 100644 --- a/src/apps/docker-compose.override.yml +++ b/src/apps/docker-compose.override.yml @@ -7,19 +7,19 @@ services: identity-service: build: context: . - dockerfile: identity-webapi.dockerfile + dockerfile: identity.dockerfile products-service: build: context: . - dockerfile: product-webapi.dockerfile + dockerfile: products.dockerfile orders-service: build: context: . - dockerfile: order-webapi.dockerfile + dockerfile: orders.dockerfile signalr-service: build: context: . - dockerfile: signalr-webapi.dockerfile + dockerfile: signalr.dockerfile diff --git a/src/apps/docker-compose.yml b/src/apps/docker-compose.yml index 20ee5733..a94d8ee2 100644 --- a/src/apps/docker-compose.yml +++ b/src/apps/docker-compose.yml @@ -4,9 +4,20 @@ services: hostname: api-gateway container_name: api-gateway environment: - - ASPNETCORE_ENVIRONMENT=Docker + - ASPNETCORE_ENVIRONMENT=Development + - consul__url=http://consul:8500 + - consul__address=api-gateway + - consul__port=8080 + - fabio__url=http://fabio:9999 + - jaeger__udpHost=http://jaeger:4317 + - openTelemetry__otlpEndpoint=http://jaeger:4317 + - mongodb__connectionString=mongodb://mongodb:27017 + - reverseProxy__clusters__identity-cluster__destinations__destination1__address=http://identity-service:8080 + - reverseProxy__clusters__products-cluster__destinations__destination1__address=http://products-service:8080 + - reverseProxy__clusters__orders-cluster__destinations__destination1__address=http://orders-service:8080 + ports: - - 5500:80 + - 5500:8080 networks: - genocs # network_mode: bridge @@ -18,9 +29,17 @@ services: hostname: identity-service container_name: identity-service environment: - - ASPNETCORE_ENVIRONMENT=Docker + - ASPNETCORE_ENVIRONMENT=Development + - consul__url=http://consul:8500 + - consul__address=identity-service + - consul__port=8080 + - fabio__url=http://fabio:9999 + - jaeger__udpHost=http://jaeger:4317 + - openTelemetry__otlpEndpoint=http://jaeger:4317 + - mongodb__connectionString=mongodb://mongodb:27017 + ports: - - 5500:80 + - 5510:8080 networks: - genocs # network_mode: bridge @@ -32,9 +51,17 @@ services: hostname: products-service container_name: products-service environment: - - ASPNETCORE_ENVIRONMENT=Docker + - ASPNETCORE_ENVIRONMENT=Development + - consul__url=http://consul:8500 + - consul__address=products-service + - consul__port=8080 + - fabio__url=http://fabio:9999 + - jaeger__udpHost=http://jaeger:4317 + - openTelemetry__otlpEndpoint=http://jaeger:4317 + - mongodb__connectionString=mongodb://mongodb:27017 + ports: - - 5510:80 + - 5520:8080 #ports: networks: - genocs @@ -47,9 +74,17 @@ services: hostname: orders-service container_name: orders-service environment: - - ASPNETCORE_ENVIRONMENT=Docker + - ASPNETCORE_ENVIRONMENT=Development + - consul__url=http://consul:8500 + - consul__address=orders-service + - consul__port=8080 + - fabio__url=http://fabio:9999 + - jaeger__udpHost=http://jaeger:4317 + - openTelemetry__otlpEndpoint=http://jaeger:4317 + - mongodb__connectionString=mongodb://mongodb:27017 + ports: - - 5530:80 + - 5530:8080 #ports: networks: - genocs @@ -62,9 +97,16 @@ services: hostname: signalr-service container_name: signalr-service environment: - - ASPNETCORE_ENVIRONMENT=Docker + - ASPNETCORE_ENVIRONMENT=Development + - consul__url=http://consul:8500 + - consul__address=signalr-service + - consul__port=8080 + - fabio__url=http://fabio:9999 + - jaeger__udpHost=http://jaeger:4317 + - openTelemetry__otlpEndpoint=http://jaeger:4317 + - mongodb__connectionString=mongodb://mongodb:27017 ports: - - 5540:80 + - 5540:8080 #ports: networks: - genocs diff --git a/src/apps/global.json b/src/apps/global.json new file mode 100644 index 00000000..6d77f621 --- /dev/null +++ b/src/apps/global.json @@ -0,0 +1,7 @@ +{ + "sdk": { + "version": "9.0.0", + "rollForward": "latestMajor", + "allowPrerelease": true + } +} diff --git a/src/apps/identity-webapi.dockerfile b/src/apps/identity.dockerfile similarity index 88% rename from src/apps/identity-webapi.dockerfile rename to src/apps/identity.dockerfile index e7b1b4e9..b564a2ea 100644 --- a/src/apps/identity-webapi.dockerfile +++ b/src/apps/identity.dockerfile @@ -17,12 +17,11 @@ COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.Identities.WebApi" -RUN dotnet build "Genocs.Identities.WebApi.csproj" -c Release -o /app/build - FROM build-env AS publish -RUN dotnet publish "Genocs.Identities.WebApi.csproj" -c Release -o /app/publish +RUN dotnet build "Genocs.Identities.WebApi.csproj" -c Release -o /app/build +# RUN dotnet publish "Genocs.Identities.WebApi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/publish . +COPY --from=publish /app/build . ENTRYPOINT ["dotnet", "Genocs.Identities.WebApi.dll"] \ No newline at end of file diff --git a/src/apps/identity/Genocs.Identities.WebApi/appsettings.Docker.json b/src/apps/identity/Genocs.Identities.WebApi/appsettings.Docker.json deleted file mode 100644 index 77e1d860..00000000 --- a/src/apps/identity/Genocs.Identities.WebApi/appsettings.Docker.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "consul": { - "enabled": true, - "url": "http://consul:8500", - "service": "identity-service", - "address": "identity-service", - "port": "80" - }, - "fabio": { - "enabled": true, - "url": "http://localhost:9999", - "service": "identity-service" - }, - "logger": { - "seq": { - "enabled": true, - "url": "http://seq:5341" - } - }, - "monitoring": { - "jaeger": "jaeger" - }, - "jaeger": { - "enabled": true, - "udpHost": "jaeger", - "serviceName": "identity-service" - }, - "metrics": { - "enabled": true, - "influxEnabled": true, - "prometheusEnabled": true, - "influxUrl": "http://influxdb:8086", - "env": "docker" - }, - "prometheus": { - "enabled": true - }, - "mongodb": { - "connectionString": "mongodb://mongodb:27017" - }, - "redis": { - "connectionString": "redis" - } -} \ No newline at end of file diff --git a/src/apps/launchSettings.json b/src/apps/launchSettings.json new file mode 100644 index 00000000..dc2b791d --- /dev/null +++ b/src/apps/launchSettings.json @@ -0,0 +1,11 @@ +{ + "profiles": { + "Docker Compose": { + "commandName": "DockerCompose", + "commandVersion": "1.0", + "serviceActions": { + "genocs.demo.webapi": "StartDebugging" + } + } + } +} diff --git a/src/apps/local copy.env b/src/apps/local copy.env deleted file mode 100644 index 14349d0a..00000000 --- a/src/apps/local copy.env +++ /dev/null @@ -1,10 +0,0 @@ -# Compose supports declaring default environment variables in an environment file named .env placed in the folder docker-compose command is executed from (current working directory). -# Compose expects each line in an env file to be in VAR=VAL format. Lines beginning with # (i.e. comments) are ignored, as are blank lines. -# Note: Values present in the environment at runtime will always override those defined inside the .env file. Similarly, values passed via command-line arguments take precedence as well. - -# The IP below should be swapped to your real IP or DNS name, like 192.168.88.248, etc. if testing from remote browsers or mobile devices - -PROJECT_EXTERNAL_DNS_NAME_OR_IP=localhost - -# The docker image version -DOCKER_IMAGE_TAG=6.0.0 diff --git a/src/apps/order-webapi.dockerfile b/src/apps/orders.dockerfile similarity index 83% rename from src/apps/order-webapi.dockerfile rename to src/apps/orders.dockerfile index 7777f490..7dadaa9a 100644 --- a/src/apps/order-webapi.dockerfile +++ b/src/apps/orders.dockerfile @@ -16,14 +16,11 @@ COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.Orders.WebApi" -RUN dotnet restore "Genocs.Orders.WebApi.csproj" - -RUN dotnet build "Genocs.Orders.WebApi.csproj" -c Release -o /app/build - FROM build-env AS publish -RUN dotnet publish "Genocs.Orders.WebApi.csproj" -c Release -o /app/publish +RUN dotnet build "Genocs.Orders.WebApi.csproj" -c Release -o /app/build +# RUN dotnet publish "Genocs.Orders.WebApi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/publish . +COPY --from=publish /app/build . ENTRYPOINT ["dotnet", "Genocs.Orders.WebApi.dll"] \ No newline at end of file diff --git a/src/apps/orders/Genocs.Orders.WebApi/Program.cs b/src/apps/orders/Genocs.Orders.WebApi/Program.cs index c74adb39..5768dfa3 100644 --- a/src/apps/orders/Genocs.Orders.WebApi/Program.cs +++ b/src/apps/orders/Genocs.Orders.WebApi/Program.cs @@ -39,14 +39,14 @@ IGenocsBuilder gnxBuilder = await builder .AddGenocs() - .AddErrorHandler() - .AddServices() + .AddOpenTelemetry() + .AddMetrics() .AddHttpClient() - .AddCorrelationContextLogging() .AddConsul() .AddFabio() - .AddOpenTelemetry() - .AddMetrics() + .AddErrorHandler() + .AddServices() + .AddCorrelationContextLogging() .AddMongo() .AddMongoRepository("orders") .AddCommandHandlers() diff --git a/src/apps/orders/Genocs.Orders.WebApi/appsettings.Docker.json b/src/apps/orders/Genocs.Orders.WebApi/appsettings.Docker.json deleted file mode 100644 index 3e7e1474..00000000 --- a/src/apps/orders/Genocs.Orders.WebApi/appsettings.Docker.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "consul": { - "enabled": true, - "url": "http://consul:8500", - "service": "orders-service", - "address": "orders-service", - "port": "80" - }, - "fabio": { - "enabled": true, - "url": "http://fabio:9999", - "service": "orders-service" - }, - "logger": { - "seq": { - "enabled": true, - "url": "http://seq:5341" - } - }, - "monitoring": { - "jaeger": "jaeger" - }, - "jaeger": { - "enabled": true, - "udpHost": "jaeger", - "serviceName": "orders-service" - }, - "metrics": { - "enabled": true, - "influxEnabled": true, - "prometheusEnabled": true, - "influxUrl": "http://influxdb:8086", - "env": "docker" - }, - "prometheus": { - "enabled": true - }, - "mongodb": { - "connectionString": "mongodb://mongodb:27017" - }, - "redis": { - "connectionString": "redis" - }, - "httpClient": { - "services": { - "products": "product" - } - } -} \ No newline at end of file diff --git a/src/apps/product-webapi.dockerfile b/src/apps/products.dockerfile similarity index 83% rename from src/apps/product-webapi.dockerfile rename to src/apps/products.dockerfile index 7adc2bf9..530e99eb 100644 --- a/src/apps/product-webapi.dockerfile +++ b/src/apps/products.dockerfile @@ -16,14 +16,11 @@ COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.Products.WebApi" -RUN dotnet restore "Genocs.Products.WebApi.csproj" - -RUN dotnet build "Genocs.Products.WebApi.csproj" -c Release -o /app/build - FROM build-env AS publish -RUN dotnet publish "Genocs.Products.WebApi.csproj" -c Release -o /app/publish +RUN dotnet build "Genocs.Products.WebApi.csproj" -c Release -o /app/build +# RUN dotnet publish "Genocs.Products.WebApi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/publish . +COPY --from=publish /app/build . ENTRYPOINT ["dotnet", "Genocs.Products.WebApi.dll"] \ No newline at end of file diff --git a/src/apps/products/Genocs.Products.WebApi/Program.cs b/src/apps/products/Genocs.Products.WebApi/Program.cs index b3bec71a..3adab090 100644 --- a/src/apps/products/Genocs.Products.WebApi/Program.cs +++ b/src/apps/products/Genocs.Products.WebApi/Program.cs @@ -37,14 +37,14 @@ IGenocsBuilder gnxBuilder = await builder .AddGenocs() - .AddErrorHandler() - .AddServices() + .AddOpenTelemetry() + .AddMetrics() .AddHttpClient() - .AddCorrelationContextLogging() .AddConsul() .AddFabio() - .AddOpenTelemetry() - .AddMetrics() + .AddErrorHandler() + .AddServices() + .AddCorrelationContextLogging() .AddMongo() .AddMongoRepository("products") .AddCommandHandlers() diff --git a/src/apps/products/Genocs.Products.WebApi/appsettings.Docker.json b/src/apps/products/Genocs.Products.WebApi/appsettings.Docker.json deleted file mode 100644 index b68c544e..00000000 --- a/src/apps/products/Genocs.Products.WebApi/appsettings.Docker.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "consul": { - "enabled": true, - "url": "http://consul:8500", - "service": "products-service", - "address": "products-service", - "port": "80" - }, - "fabio": { - "enabled": true, - "url": "http://fabio:9999", - "service": "products-service" - }, - "logger": { - "seq": { - "enabled": true, - "url": "http://seq:5341" - } - }, - "monitoring": { - "jaeger": "jaeger" - }, - "jaeger": { - "enabled": true, - "udpHost": "jaeger", - "serviceName": "orders-service" - }, - "metrics": { - "enabled": true, - "influxEnabled": true, - "prometheusEnabled": true, - "influxUrl": "http://influxdb:8086", - "env": "docker" - }, - "prometheus": { - "enabled": true - }, - "mongodb": { - "connectionString": "mongodb://mongodb:27017" - }, - "redis": { - "connectionString": "redis" - } -} \ No newline at end of file diff --git a/src/apps/signalr-webapi.dockerfile b/src/apps/signalr.dockerfile similarity index 90% rename from src/apps/signalr-webapi.dockerfile rename to src/apps/signalr.dockerfile index abf8892c..2ace84bc 100644 --- a/src/apps/signalr-webapi.dockerfile +++ b/src/apps/signalr.dockerfile @@ -31,14 +31,11 @@ COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.SignalR.WebApi" -RUN dotnet restore "Genocs.SignalR.WebApi.csproj" - -RUN dotnet build "Genocs.SignalR.WebApi.csproj" -c Release -o /app/build - FROM build-env AS publish -RUN dotnet publish "Genocs.SignalR.WebApi.csproj" -c Release -o /app/publish +RUN dotnet build "Genocs.SignalR.WebApi.csproj" -c Release -o /app/build +# RUN dotnet publish "Genocs.SignalR.WebApi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/publish . +COPY --from=publish /app/build . ENTRYPOINT ["dotnet", "Genocs.SignalR.WebApi.dll"] diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Program.cs b/src/apps/signalr/Genocs.SignalR.WebApi/Program.cs index b563d9bb..fe751715 100644 --- a/src/apps/signalr/Genocs.SignalR.WebApi/Program.cs +++ b/src/apps/signalr/Genocs.SignalR.WebApi/Program.cs @@ -32,11 +32,11 @@ IGenocsBuilder gnxBuilder = await builder .AddGenocs() - .AddCorrelationContextLogging() - .AddJwt() - .AddErrorHandler() .AddOpenTelemetry() .AddMetrics() + .AddJwt() + .AddCorrelationContextLogging() + .AddErrorHandler() .AddMongo() .AddCommandHandlers() .AddEventHandlers() diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/appsettings.docker.json b/src/apps/signalr/Genocs.SignalR.WebApi/appsettings.docker.json deleted file mode 100644 index d88f7d05..00000000 --- a/src/apps/signalr/Genocs.SignalR.WebApi/appsettings.docker.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "consul": { - "enabled": true, - "url": "http://consul:8500", - "service": "signalr-service", - "address": "signalr-service", - "port": "80" - }, - "fabio": { - "enabled": true, - "url": "http://fabio:9999", - "service": "signalr-service" - }, - "logger": { - "seq": { - "enabled": true, - "url": "http://seq:5341" - } - }, - "monitoring": { - "jaeger": "jaeger" - }, - "jaeger": { - "enabled": true, - "udpHost": "jaeger", - "serviceName": "signalr-service" - }, - "metrics": { - "enabled": true, - "influxEnabled": true, - "prometheusEnabled": true, - "influxUrl": "http://influxdb:8086", - "env" :"docker" - }, - "prometheus": { - "enabled": true - }, - "mongodb": { - "connectionString": "mongodb://mongodb:27017" - }, - "redis": { - "connectionString": "redis" - } -} \ No newline at end of file From bd049fd1a2dade9af2db7dfb25d3f2318e183c2e Mon Sep 17 00:00:00 2001 From: Nocco Giovanni Emanuele Date: Wed, 18 Dec 2024 12:34:48 +0100 Subject: [PATCH 2/8] Update projects and Dockerfiles for .NET 9.0 support - Updated project files for `Genocs.APIGateway`, `Genocs.Identities.Application`, `Genocs.Identities.WebApi`, `Genocs.Orders.WebApi`, `Genocs.Products.WebApi`, and `Genocs.SignalR.WebApi` to target .NET 9.0. - Removed `IsPublishable` and `IsPackable` properties from project files; updated `UserSecretsId` in `Genocs.Orders.WebApi`. - Modified Dockerfiles to expose ports 8080 and 8081, and included additional configuration files in the build context. - Streamlined Docker build process by removing redundant copy commands and ensuring proper publish execution. - Added `IMAGE_VERSION` environment variable in `local.env` for Docker image versioning. - Updated constructor in `ProductServiceClient.cs` to include new parameters for `VaultOptions` and `SecurityOptions`, with added XML documentation. --- .../Genocs.APIGateway.csproj | 1 - src/apps/apigateway.dockerfile | 22 +++++++++-------- src/apps/identity.dockerfile | 22 +++++++++-------- .../Genocs.Identities.Application.csproj | 1 - .../Genocs.Identities.WebApi.csproj | 1 - src/apps/local.env | 1 + src/apps/orders.dockerfile | 22 +++++++++-------- .../Genocs.Orders.WebApi.csproj | 3 +-- .../Services/ProductServiceClient.cs | 8 +++---- src/apps/products.dockerfile | 24 ++++++++++--------- .../Genocs.Products.WebApi.csproj | 1 - src/apps/signalr.dockerfile | 23 +++++++++--------- .../Genocs.SignalR.WebApi.csproj | 1 - 13 files changed, 67 insertions(+), 63 deletions(-) diff --git a/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj b/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj index e8833e8c..3ce80156 100644 --- a/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj +++ b/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj @@ -2,7 +2,6 @@ net9.0 - false false diff --git a/src/apps/apigateway.dockerfile b/src/apps/apigateway.dockerfile index 101e25c6..47fd8490 100644 --- a/src/apps/apigateway.dockerfile +++ b/src/apps/apigateway.dockerfile @@ -2,26 +2,28 @@ FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app -EXPOSE 80 -EXPOSE 443 +EXPOSE 8080 +EXPOSE 8081 + FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build-env WORKDIR /src +COPY ["Directory.Build.props", "."] +COPY ["Directory.Build.targets", "."] +COPY ["NuGet.config", "."] +COPY ["dotnet.ruleset", "."] +COPY ["stylecop.json", "."] + COPY ["api-gateway/Genocs.APIGateway", "Genocs.APIGateway/"] -COPY ["Directory.Build.props", "Directory.Build.props"] -COPY ["Directory.Build.targets", "Directory.Build.targets"] -COPY ["NuGet.config", "NuGet.config"] -COPY ["dotnet.ruleset", "dotnet.ruleset"] -COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.APIGateway" -FROM build-env AS publish RUN dotnet build "Genocs.APIGateway.csproj" -c Release -o /app/build -# RUN dotnet publish "Genocs.APIGateway.csproj" -c Release -o /app/publish +FROM build-env AS publish +RUN dotnet publish "Genocs.APIGateway.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/build . +COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "Genocs.APIGateway.dll"] \ No newline at end of file diff --git a/src/apps/identity.dockerfile b/src/apps/identity.dockerfile index b564a2ea..43621380 100644 --- a/src/apps/identity.dockerfile +++ b/src/apps/identity.dockerfile @@ -2,26 +2,28 @@ FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app -EXPOSE 80 -EXPOSE 443 +EXPOSE 8080 +EXPOSE 8081 FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build-env WORKDIR /src + +COPY ["Directory.Build.props", "."] +COPY ["Directory.Build.targets", "."] +COPY ["NuGet.config", "."] +COPY ["dotnet.ruleset", "."] +COPY ["stylecop.json", "."] + COPY ["identity/Genocs.Identities.WebApi", "Genocs.Identities.WebApi/"] COPY ["identity/Genocs.Identities.Application", "Genocs.Identities.Application/"] -COPY ["Directory.Build.props", "Directory.Build.props"] -COPY ["Directory.Build.targets", "Directory.Build.targets"] -COPY ["NuGet.config", "NuGet.config"] -COPY ["dotnet.ruleset", "dotnet.ruleset"] -COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.Identities.WebApi" -FROM build-env AS publish RUN dotnet build "Genocs.Identities.WebApi.csproj" -c Release -o /app/build -# RUN dotnet publish "Genocs.Identities.WebApi.csproj" -c Release -o /app/publish +FROM build-env AS publish +RUN dotnet publish "Genocs.Identities.WebApi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/build . +COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "Genocs.Identities.WebApi.dll"] \ No newline at end of file diff --git a/src/apps/identity/Genocs.Identities.Application/Genocs.Identities.Application.csproj b/src/apps/identity/Genocs.Identities.Application/Genocs.Identities.Application.csproj index c80f6df4..12d1d623 100644 --- a/src/apps/identity/Genocs.Identities.Application/Genocs.Identities.Application.csproj +++ b/src/apps/identity/Genocs.Identities.Application/Genocs.Identities.Application.csproj @@ -2,7 +2,6 @@ net9.0 - false false diff --git a/src/apps/identity/Genocs.Identities.WebApi/Genocs.Identities.WebApi.csproj b/src/apps/identity/Genocs.Identities.WebApi/Genocs.Identities.WebApi.csproj index 065f72fe..67c9978b 100644 --- a/src/apps/identity/Genocs.Identities.WebApi/Genocs.Identities.WebApi.csproj +++ b/src/apps/identity/Genocs.Identities.WebApi/Genocs.Identities.WebApi.csproj @@ -2,7 +2,6 @@ net9.0 - false false Genocs diff --git a/src/apps/local.env b/src/apps/local.env index e700bc88..ffe61454 100644 --- a/src/apps/local.env +++ b/src/apps/local.env @@ -1 +1,2 @@ +# This is the image tag used during the docker build IMAGE_VERSION=1.0.0 diff --git a/src/apps/orders.dockerfile b/src/apps/orders.dockerfile index 7dadaa9a..92d99683 100644 --- a/src/apps/orders.dockerfile +++ b/src/apps/orders.dockerfile @@ -2,25 +2,27 @@ FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app -EXPOSE 80 -EXPOSE 443 +EXPOSE 8080 +EXPOSE 8081 FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build-env WORKDIR /src + +COPY ["Directory.Build.props", "."] +COPY ["Directory.Build.targets", "."] +COPY ["NuGet.config", "."] +COPY ["dotnet.ruleset", "."] +COPY ["stylecop.json", "."] + COPY ["orders/Genocs.Orders.WebApi", "Genocs.Orders.WebApi/"] -COPY ["Directory.Build.props", "Directory.Build.props"] -COPY ["Directory.Build.targets", "Directory.Build.targets"] -COPY ["NuGet.config", "NuGet.config"] -COPY ["dotnet.ruleset", "dotnet.ruleset"] -COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.Orders.WebApi" -FROM build-env AS publish RUN dotnet build "Genocs.Orders.WebApi.csproj" -c Release -o /app/build -# RUN dotnet publish "Genocs.Orders.WebApi.csproj" -c Release -o /app/publish +FROM build-env AS publish +RUN dotnet publish "Genocs.Orders.WebApi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/build . +COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "Genocs.Orders.WebApi.dll"] \ No newline at end of file diff --git a/src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj b/src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj index ba5d1d8e..57faccf6 100644 --- a/src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj +++ b/src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj @@ -2,9 +2,8 @@ net9.0 - false false - _genocs + Genocs Linux ..\.. diff --git a/src/apps/orders/Genocs.Orders.WebApi/Services/ProductServiceClient.cs b/src/apps/orders/Genocs.Orders.WebApi/Services/ProductServiceClient.cs index c2754e4b..c89525e6 100644 --- a/src/apps/orders/Genocs.Orders.WebApi/Services/ProductServiceClient.cs +++ b/src/apps/orders/Genocs.Orders.WebApi/Services/ProductServiceClient.cs @@ -19,14 +19,14 @@ public class ProductServiceClient : IProductServiceClient /// The standard constructor. /// /// The http client. + /// The client Options. /// The certification service. - /// - /// - /// + /// The Key Vault Options. + /// The Security Options like Certificates. public ProductServiceClient( IHttpClient client, - ICertificatesService certificatesService, HttpClientOptions httpClientOptions, + ICertificatesService certificatesService, VaultOptions vaultOptions, SecurityOptions securityOptions) { diff --git a/src/apps/products.dockerfile b/src/apps/products.dockerfile index 530e99eb..dcca17f1 100644 --- a/src/apps/products.dockerfile +++ b/src/apps/products.dockerfile @@ -2,25 +2,27 @@ FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app -EXPOSE 80 -EXPOSE 443 +EXPOSE 8080 +EXPOSE 8081 FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build-env WORKDIR /src + +COPY ["Directory.Build.props", "."] +COPY ["Directory.Build.targets", "."] +COPY ["NuGet.config", "."] +COPY ["dotnet.ruleset", "."] +COPY ["stylecop.json", "."] + COPY ["products/Genocs.Products.WebApi", "Genocs.Products.WebApi/"] -COPY ["Directory.Build.props", "Directory.Build.props"] -COPY ["Directory.Build.targets", "Directory.Build.targets"] -COPY ["NuGet.config", "NuGet.config"] -COPY ["dotnet.ruleset", "dotnet.ruleset"] -COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.Products.WebApi" -FROM build-env AS publish RUN dotnet build "Genocs.Products.WebApi.csproj" -c Release -o /app/build -# RUN dotnet publish "Genocs.Products.WebApi.csproj" -c Release -o /app/publish +FROM build-env AS publish +RUN dotnet publish "Genocs.Products.WebApi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/build . -ENTRYPOINT ["dotnet", "Genocs.Products.WebApi.dll"] \ No newline at end of file +COPY --from=publish /app/publish . +ENTRYPOINT ["dotnet", "Genocs.Products.WebApi.dll"] diff --git a/src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj b/src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj index ef9addda..39143b83 100644 --- a/src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj +++ b/src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj @@ -2,7 +2,6 @@ net9.0 - false false Genocs diff --git a/src/apps/signalr.dockerfile b/src/apps/signalr.dockerfile index 2ace84bc..e890a6e8 100644 --- a/src/apps/signalr.dockerfile +++ b/src/apps/signalr.dockerfile @@ -10,8 +10,8 @@ FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base WORKDIR /app -EXPOSE 80 -EXPOSE 443 +EXPOSE 8080 +EXPOSE 8081 # FROM mcr.microsoft.com/dotnet/core/sdk:3.0 AS build-env # FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build-env @@ -20,22 +20,23 @@ EXPOSE 443 # FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env # FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build-env - WORKDIR /src + +COPY ["Directory.Build.props", "."] +COPY ["Directory.Build.targets", "."] +COPY ["NuGet.config", "."] +COPY ["dotnet.ruleset", "."] +COPY ["stylecop.json", "."] + COPY ["signalr/Genocs.SignalR.WebApi", "Genocs.SignalR.WebApi/"] -COPY ["Directory.Build.props", "Directory.Build.props"] -COPY ["Directory.Build.targets", "Directory.Build.targets"] -COPY ["NuGet.config", "NuGet.config"] -COPY ["dotnet.ruleset", "dotnet.ruleset"] -COPY ["stylecop.json", "stylecop.json"] WORKDIR "/src/Genocs.SignalR.WebApi" -FROM build-env AS publish RUN dotnet build "Genocs.SignalR.WebApi.csproj" -c Release -o /app/build -# RUN dotnet publish "Genocs.SignalR.WebApi.csproj" -c Release -o /app/publish +FROM build-env AS publish +RUN dotnet publish "Genocs.SignalR.WebApi.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app -COPY --from=publish /app/build . +COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "Genocs.SignalR.WebApi.dll"] diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj b/src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj index dda61a2f..086f777f 100644 --- a/src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj +++ b/src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj @@ -2,7 +2,6 @@ net9.0 - false false Genocs From 7d8761036b796bdacc472dc295904d8d464b8127 Mon Sep 17 00:00:00 2001 From: Nocco Giovanni Emanuele Date: Wed, 18 Dec 2024 20:08:36 +0100 Subject: [PATCH 3/8] Add MongoDB config provider for YARP in APIGateway This commit introduces a MongoDB-based configuration provider for the YARP library in the Genocs.APIGateway project. Key changes include: - Added project and package references for `Genocs.Persistence.MongoDb`. - Created `MongoDbOptions` class for MongoDB configuration settings. - Defined `IMongodbConfigProvider` interface extending `IProxyConfigProvider`. - Implemented `MongodbConfigProvider` to read configurations from MongoDB collections. - Added `MongoDbConfigProviderExtensions` with `LoadFromDatabase` method for integration. - Updated `Startup.cs` to utilize the new MongoDB configuration provider. - Modified `appsettings.json` to include MongoDB configuration sections. - Added necessary using directives across various files. --- .../Configurations/MongoDbOptions.cs | 13 ++ .../Genocs.APIGateway.csproj | 5 + .../Providers/IMongodbConfigProvider.cs | 5 + .../MongoDbConfigProviderExtensions.cs | 26 ++++ .../Providers/MongodbConfigProvider.cs | 121 ++++++++++++++++++ .../api-gateway/Genocs.APIGateway/Startup.cs | 12 +- .../Genocs.APIGateway/appsettings.json | 4 + 7 files changed, 183 insertions(+), 3 deletions(-) create mode 100644 src/apps/api-gateway/Genocs.APIGateway/Configurations/MongoDbOptions.cs create mode 100644 src/apps/api-gateway/Genocs.APIGateway/Providers/IMongodbConfigProvider.cs create mode 100644 src/apps/api-gateway/Genocs.APIGateway/Providers/MongoDbConfigProviderExtensions.cs create mode 100644 src/apps/api-gateway/Genocs.APIGateway/Providers/MongodbConfigProvider.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Configurations/MongoDbOptions.cs b/src/apps/api-gateway/Genocs.APIGateway/Configurations/MongoDbOptions.cs new file mode 100644 index 00000000..cb9f63bb --- /dev/null +++ b/src/apps/api-gateway/Genocs.APIGateway/Configurations/MongoDbOptions.cs @@ -0,0 +1,13 @@ +namespace Genocs.APIGateway.Configurations; + +public class MongoDbOptions +{ + /// + /// Default section name. + /// + public const string Position = "yarp_mongodb"; + + public string RoutesCollection { get; set; } = "yarp_routes"; + + public string? ClustersCollection { get; set; } = "yarp_clusters"; +} \ No newline at end of file diff --git a/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj b/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj index 3ce80156..22715533 100644 --- a/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj +++ b/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj @@ -11,6 +11,7 @@ + @@ -23,6 +24,7 @@ + @@ -48,4 +50,7 @@ + + + diff --git a/src/apps/api-gateway/Genocs.APIGateway/Providers/IMongodbConfigProvider.cs b/src/apps/api-gateway/Genocs.APIGateway/Providers/IMongodbConfigProvider.cs new file mode 100644 index 00000000..c41cb5f1 --- /dev/null +++ b/src/apps/api-gateway/Genocs.APIGateway/Providers/IMongodbConfigProvider.cs @@ -0,0 +1,5 @@ +using Yarp.ReverseProxy.Configuration; + +namespace Genocs.APIGateway.Providers; + +public interface IMongodbConfigProvider : IProxyConfigProvider; diff --git a/src/apps/api-gateway/Genocs.APIGateway/Providers/MongoDbConfigProviderExtensions.cs b/src/apps/api-gateway/Genocs.APIGateway/Providers/MongoDbConfigProviderExtensions.cs new file mode 100644 index 00000000..8c0f079c --- /dev/null +++ b/src/apps/api-gateway/Genocs.APIGateway/Providers/MongoDbConfigProviderExtensions.cs @@ -0,0 +1,26 @@ +using Genocs.APIGateway.Configurations; +using Genocs.Persistence.MongoDb; +using Yarp.ReverseProxy.Configuration; + +namespace Genocs.APIGateway.Providers; + +public static class MongoDbConfigProviderExtensions +{ + /// + /// Adds an InMemoryConfigProvider. + /// + /// + public static IReverseProxyBuilder LoadFromDatabase(this IReverseProxyBuilder builder, IConfiguration configuration) + { + IConfiguration config = configuration ?? throw new ArgumentNullException("config"); + + MongoDbOptions options = new MongoDbOptions(); + + config.Bind(MongoDbOptions.Position, options); + + builder.Services.AddSingleton((Func)((IServiceProvider sp) + => new MongodbConfigProvider(sp.GetRequiredService>(), sp.GetRequiredService(), options))); + + return builder; + } +} \ No newline at end of file diff --git a/src/apps/api-gateway/Genocs.APIGateway/Providers/MongodbConfigProvider.cs b/src/apps/api-gateway/Genocs.APIGateway/Providers/MongodbConfigProvider.cs new file mode 100644 index 00000000..304bc556 --- /dev/null +++ b/src/apps/api-gateway/Genocs.APIGateway/Providers/MongodbConfigProvider.cs @@ -0,0 +1,121 @@ +using Genocs.APIGateway.Configurations; +using Genocs.Persistence.MongoDb; +using Microsoft.Extensions.Primitives; +using MongoDB.Driver; +using Yarp.ReverseProxy.Configuration; + +namespace Genocs.APIGateway.Providers; + +/// +/// Provides an implementation of IProxyConfigProvider to support config read from MongoDB. +/// +public class MongodbConfigProvider : IMongodbConfigProvider +{ + // Marked as volatile so that updates are atomic + private InMemoryConfig _config; + + private IMongoDatabaseProvider _mongoDbDatabase; + + /// + /// Creates a new instance. + /// + public MongodbConfigProvider(ILogger logger, IMongoDatabaseProvider mongoDbDatabase, MongoDbOptions options) + { + _mongoDbDatabase = mongoDbDatabase; + var routes = _mongoDbDatabase.Database.GetCollection(options.RoutesCollection).Find(c => true).ToList(); + var clusters = _mongoDbDatabase.Database.GetCollection(options.ClustersCollection).Find(c => true).ToList(); + _config = new InMemoryConfig(routes, clusters, Guid.NewGuid().ToString()); + } + + /// + /// Creates a new instance. + /// + public MongodbConfigProvider(IReadOnlyList routes, IReadOnlyList clusters) + : this(routes, clusters, Guid.NewGuid().ToString()) + { + } + + /// + /// Creates a new instance, specifying a revision id of the configuration. + /// + public MongodbConfigProvider(IReadOnlyList routes, IReadOnlyList clusters, string revisionId) + { + _config = new InMemoryConfig(routes, clusters, revisionId); + } + + /// + /// Swaps the config state with a new snapshot of the configuration, then signals that the old one is outdated. + /// + public void Update(IReadOnlyList routes, IReadOnlyList clusters) + { + var newConfig = new InMemoryConfig(routes, clusters); + UpdateInternal(newConfig); + } + + /// + /// Swaps the config state with a new snapshot of the configuration, then signals that the old one is outdated. + /// + public void Update(IReadOnlyList routes, IReadOnlyList clusters, string revisionId) + { + var newConfig = new InMemoryConfig(routes, clusters, revisionId); + UpdateInternal(newConfig); + } + + private void UpdateInternal(InMemoryConfig newConfig) + { + var oldConfig = Interlocked.Exchange(ref _config, newConfig); + oldConfig.SignalChange(); + } + + /// + /// Implementation of the IProxyConfigProvider.GetConfig method to supply the current snapshot of configuration. + /// + /// An immutable snapshot of the current configuration state. + public IProxyConfig GetConfig() + => _config; + + /// + /// Implementation of IProxyConfig which is a snapshot of the current config state. The data for this class should be immutable. + /// + private class InMemoryConfig : IProxyConfig + { + // Used to implement the change token for the state + private readonly CancellationTokenSource _cts = new CancellationTokenSource(); + + public InMemoryConfig(IReadOnlyList routes, IReadOnlyList clusters) + : this(routes, clusters, Guid.NewGuid().ToString()) + { + } + + public InMemoryConfig(IReadOnlyList routes, IReadOnlyList clusters, string revisionId) + { + RevisionId = revisionId ?? throw new ArgumentNullException(nameof(revisionId)); + Routes = routes; + Clusters = clusters; + ChangeToken = new CancellationChangeToken(_cts.Token); + } + + /// + public string RevisionId { get; } + + /// + /// A snapshot of the list of routes for the proxy. + /// + public IReadOnlyList Routes { get; } + + /// + /// A snapshot of the list of Clusters which are collections of interchangeable destination endpoints. + /// + public IReadOnlyList Clusters { get; } + + /// + /// Fired to indicate the proxy state has changed, and that this snapshot is now stale. + /// + public IChangeToken ChangeToken { get; } + + internal void SignalChange() + { + _cts.Cancel(); + } + } +} \ No newline at end of file diff --git a/src/apps/api-gateway/Genocs.APIGateway/Startup.cs b/src/apps/api-gateway/Genocs.APIGateway/Startup.cs index 8a8d006b..1a8285e0 100644 --- a/src/apps/api-gateway/Genocs.APIGateway/Startup.cs +++ b/src/apps/api-gateway/Genocs.APIGateway/Startup.cs @@ -1,5 +1,6 @@ using Genocs.APIGateway.Configurations; using Genocs.APIGateway.Framework; +using Genocs.APIGateway.Providers; using Genocs.Auth; using Genocs.Core.Builders; using Genocs.MessageBrokers.RabbitMQ; @@ -7,6 +8,7 @@ using Genocs.Security; using Genocs.Tracing; using Genocs.WebApi; +using Genocs.Persistence.MongoDb.Extensions; using Yarp.ReverseProxy.Forwarder; namespace Genocs.APIGateway; @@ -31,13 +33,14 @@ private async Task ConfigureServicesAsync(IServiceCollection services) services.AddSingleton(); services.AddSingleton(); services.Configure(Configuration.GetSection(MessagingOptions.Position)); - services.AddReverseProxy() - .LoadFromConfig(Configuration.GetSection("ReverseProxy")); + services.AddSingleton(); IGenocsBuilder builder = services - .AddGenocs() + .AddGenocs(Configuration) .AddOpenTelemetry() + .AddMongo() + .AddMongoFast() .AddJwt() .AddPrometheus(); @@ -47,6 +50,9 @@ private async Task ConfigureServicesAsync(IServiceCollection services) .AddWebApi() .Build(); + services.AddReverseProxy() + .LoadFromDatabase(Configuration); + //services.AddAuthorization(options => //{ // options.AddPolicy("authenticatedUser", policy => diff --git a/src/apps/api-gateway/Genocs.APIGateway/appsettings.json b/src/apps/api-gateway/Genocs.APIGateway/appsettings.json index 0305d3a5..95add4f8 100644 --- a/src/apps/api-gateway/Genocs.APIGateway/appsettings.json +++ b/src/apps/api-gateway/Genocs.APIGateway/appsettings.json @@ -269,6 +269,10 @@ "allowedHosts": [ "localhost", "identity" ] } }, + "yarp_mongodb": { + "routesCollection": "yarp_routes", + "clustersCollection": "yarp_clusters" + }, "reverseProxy": { "routes": { "identity-route": { From 6a768977b7f0bb3231f71181bee64cddcbf731c9 Mon Sep 17 00:00:00 2001 From: Nocco Giovanni Emanuele Date: Sat, 28 Dec 2024 19:08:35 +0100 Subject: [PATCH 4/8] Update project files and refactor order handling - Clarified Docker Compose instructions in README.md. - Updated MassTransit.RabbitMQ package version in multiple projects. - Upgraded OpenTelemetry instrumentation packages in relevant projects. - Added PackageId, RootNamespace, and AssemblyName properties to several project files. - Refactored CreateOrder to handle multiple products and introduced OrderItem class. - Updated Order class to calculate total amount based on OrderItems. - Enhanced CreateProduct and Product classes with additional properties. - Maintained folder structure for logs in Genocs.SignalR.WebApi.csproj. --- README.md | 6 ++++- .../Genocs.Core.Demo.WebApi.csproj | 2 +- .../Genocs.Core.Demo.Worker.csproj | 2 +- .../Genocs.OpenTelemetry.csproj | 4 ++-- src/Genocs.Tracing/Genocs.Tracing.csproj | 4 ++-- .../Genocs.APIGateway.csproj | 6 ++--- .../Genocs.Identities.Application.csproj | 3 +++ .../Genocs.Identities.WebApi.csproj | 3 +++ .../Commands/CreateOrder.cs | 15 ++++-------- .../Commands/Handlers/CreateOrderHandler.cs | 14 +++++++---- .../Genocs.Orders.WebApi/Domain/Order.cs | 23 ++++++++++--------- .../Genocs.Orders.WebApi.csproj | 9 +++++--- .../Commands/CreateProduct.cs | 17 +++++--------- .../Commands/Handlers/CreateProductHandler.cs | 2 +- .../Genocs.Products.WebApi/DTO/ProductDto.cs | 3 ++- .../Genocs.Products.WebApi/Domain/Product.cs | 19 ++++++++------- .../Genocs.Products.WebApi.csproj | 4 +++- .../Genocs.SignalR.WebApi.csproj | 5 +++- 18 files changed, 79 insertions(+), 62 deletions(-) diff --git a/README.md b/README.md index 008eb4a3..b9845cb3 100644 --- a/README.md +++ b/README.md @@ -468,7 +468,11 @@ In that way you can test the entire flow. ### How to BUILD & RUN the application -The build and run process can be done by using docker-compose +The build and run process can be done by using docker-compose. + +Pre-requisites: +- Docker + ``` bash cd src/apps diff --git a/src/Genocs.Core.Demo.WebApi/Genocs.Core.Demo.WebApi.csproj b/src/Genocs.Core.Demo.WebApi/Genocs.Core.Demo.WebApi.csproj index f96ba041..6ceed4f4 100644 --- a/src/Genocs.Core.Demo.WebApi/Genocs.Core.Demo.WebApi.csproj +++ b/src/Genocs.Core.Demo.WebApi/Genocs.Core.Demo.WebApi.csproj @@ -32,7 +32,7 @@ - + diff --git a/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj b/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj index 08e02982..261cea6d 100644 --- a/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj +++ b/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj @@ -21,7 +21,7 @@ - + diff --git a/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj b/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj index e5bf8fd6..8f2ce300 100644 --- a/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj +++ b/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj @@ -37,9 +37,9 @@ - + - + diff --git a/src/Genocs.Tracing/Genocs.Tracing.csproj b/src/Genocs.Tracing/Genocs.Tracing.csproj index 8ed366ca..f34ef4d6 100644 --- a/src/Genocs.Tracing/Genocs.Tracing.csproj +++ b/src/Genocs.Tracing/Genocs.Tracing.csproj @@ -34,9 +34,9 @@ - + - + diff --git a/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj b/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj index 22715533..e9490776 100644 --- a/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj +++ b/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj @@ -2,6 +2,9 @@ net9.0 + Genocs.APIGateway + Genocs.APIGateway + Genocs.APIGateway false @@ -50,7 +53,4 @@ - - - diff --git a/src/apps/identity/Genocs.Identities.Application/Genocs.Identities.Application.csproj b/src/apps/identity/Genocs.Identities.Application/Genocs.Identities.Application.csproj index 12d1d623..9989bb1c 100644 --- a/src/apps/identity/Genocs.Identities.Application/Genocs.Identities.Application.csproj +++ b/src/apps/identity/Genocs.Identities.Application/Genocs.Identities.Application.csproj @@ -2,6 +2,9 @@ net9.0 + Genocs.Identities.Application + Genocs.Identities.Application + Genocs.Identities.Application false diff --git a/src/apps/identity/Genocs.Identities.WebApi/Genocs.Identities.WebApi.csproj b/src/apps/identity/Genocs.Identities.WebApi/Genocs.Identities.WebApi.csproj index 67c9978b..5c0f760f 100644 --- a/src/apps/identity/Genocs.Identities.WebApi/Genocs.Identities.WebApi.csproj +++ b/src/apps/identity/Genocs.Identities.WebApi/Genocs.Identities.WebApi.csproj @@ -2,6 +2,9 @@ net9.0 + Genocs.Identities.WebApi + Genocs.Identities.WebApi + Genocs.Identities.WebApi false Genocs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Commands/CreateOrder.cs b/src/apps/orders/Genocs.Orders.WebApi/Commands/CreateOrder.cs index 6f240821..7f4b35cc 100644 --- a/src/apps/orders/Genocs.Orders.WebApi/Commands/CreateOrder.cs +++ b/src/apps/orders/Genocs.Orders.WebApi/Commands/CreateOrder.cs @@ -2,16 +2,9 @@ namespace Genocs.Orders.WebApi.Commands; -public class CreateOrder : ICommand +public class CreateOrder(Guid orderId, Guid customerId, List products) : ICommand { - public Guid OrderId { get; } - public Guid CustomerId { get; } - public Guid ProductId { get; } - - public CreateOrder(Guid orderId, Guid customerId, Guid productId) - { - OrderId = orderId == Guid.Empty ? Guid.NewGuid() : orderId; - CustomerId = customerId; - ProductId = productId; - } + public Guid OrderId { get; } = orderId == Guid.Empty ? Guid.NewGuid() : orderId; + public Guid CustomerId { get; } = customerId; + public List Products { get; } = products; } \ No newline at end of file diff --git a/src/apps/orders/Genocs.Orders.WebApi/Commands/Handlers/CreateOrderHandler.cs b/src/apps/orders/Genocs.Orders.WebApi/Commands/Handlers/CreateOrderHandler.cs index 29bc880d..cff85de2 100644 --- a/src/apps/orders/Genocs.Orders.WebApi/Commands/Handlers/CreateOrderHandler.cs +++ b/src/apps/orders/Genocs.Orders.WebApi/Commands/Handlers/CreateOrderHandler.cs @@ -38,11 +38,17 @@ public async Task HandleAsync(CreateOrder command, CancellationToken cancellatio throw new InvalidOperationException($"Order with given id: {command.OrderId} already exists!"); } - _logger.LogInformation($"Fetching the product for order with id: {command.OrderId}..."); - var productDto = await _productServiceClient.GetAsync(command.ProductId) ?? throw new InvalidOperationException($"Product '{command.ProductId}' was not found. Requested for order '{command.OrderId}'"); - _logger.LogInformation($"Order '{command.OrderId}' will cost '{productDto.UnitPrice}'$."); + _logger.LogInformation($"Fetching products for order with id: {command.OrderId}..."); - var order = new Order(command.OrderId, command.CustomerId, productDto.UnitPrice); + List productItems = []; + + foreach (var productId in command.Products) + { + var productDto = await _productServiceClient.GetAsync(productId) ?? throw new InvalidOperationException($"Product '{productId}' was not found. Requested for order '{command.OrderId}'"); + productItems.Add(new OrderItem(productId, productDto.UnitPrice, 1)); + } + + var order = new Order(command.OrderId, command.CustomerId, productItems); await _repository.AddAsync(order); _logger.LogInformation($"Created order '{command.OrderId}' for customer '{command.CustomerId}'."); diff --git a/src/apps/orders/Genocs.Orders.WebApi/Domain/Order.cs b/src/apps/orders/Genocs.Orders.WebApi/Domain/Order.cs index ad0cfb06..944876a8 100644 --- a/src/apps/orders/Genocs.Orders.WebApi/Domain/Order.cs +++ b/src/apps/orders/Genocs.Orders.WebApi/Domain/Order.cs @@ -2,21 +2,22 @@ namespace Genocs.Orders.WebApi.Domain; -public class Order : IEntity +public class Order(Guid id, Guid customerId, List items ) : IEntity { - public Guid Id { get; private set; } - public Guid CustomerId { get; private set; } - public decimal TotalAmount { get; private set; } - - public Order(Guid id, Guid customerId, decimal totalAmount) - { - Id = id; - CustomerId = customerId; - TotalAmount = totalAmount; - } + public Guid Id { get; private set; } = id; + public Guid CustomerId { get; private set; } = customerId; + public List Items { get; private set; } = items; + public decimal TotalAmount { get; private set; } = items.Sum(c => c.UnitPrice * c.Quantity); public bool IsTransient() { throw new NotImplementedException(); } +} + +public class OrderItem(Guid productId, decimal unitPrice, int quantity) +{ + public Guid ProductId { get; private set; } = productId; + public decimal UnitPrice { get; private set; } = unitPrice; + public int Quantity { get; private set; } = quantity; } \ No newline at end of file diff --git a/src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj b/src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj index 57faccf6..7c026a5f 100644 --- a/src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj +++ b/src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj @@ -2,6 +2,9 @@ net9.0 + Genocs.Orders.WebApi + Genocs.Orders.WebApi + Genocs.Orders.WebApi false Genocs Linux @@ -32,7 +35,7 @@ - + @@ -47,11 +50,11 @@ - + - + diff --git a/src/apps/products/Genocs.Products.WebApi/Commands/CreateProduct.cs b/src/apps/products/Genocs.Products.WebApi/Commands/CreateProduct.cs index 4f101e6c..a378a6c3 100644 --- a/src/apps/products/Genocs.Products.WebApi/Commands/CreateProduct.cs +++ b/src/apps/products/Genocs.Products.WebApi/Commands/CreateProduct.cs @@ -2,16 +2,11 @@ namespace Genocs.Products.WebApi.Commands; -public class CreateProduct : ICommand +public class CreateProduct(Guid productId, string sku, decimal unitPrice, string? name, string? description) : ICommand { - public Guid ProductId { get; } - public string SKU { get; } - public decimal UnitPrice { get; } - - public CreateProduct(Guid productId, string sku, decimal unitPrice) - { - ProductId = productId == Guid.Empty ? Guid.NewGuid() : productId; - SKU = sku; - UnitPrice = unitPrice; - } + public Guid ProductId { get; } = productId == Guid.Empty ? Guid.NewGuid() : productId; + public string SKU { get; } = sku; + public decimal UnitPrice { get; } = unitPrice; + public string? Name { get; } = name; + public string? Description { get; } = description; } \ No newline at end of file diff --git a/src/apps/products/Genocs.Products.WebApi/Commands/Handlers/CreateProductHandler.cs b/src/apps/products/Genocs.Products.WebApi/Commands/Handlers/CreateProductHandler.cs index 51ac3aec..edc82040 100644 --- a/src/apps/products/Genocs.Products.WebApi/Commands/Handlers/CreateProductHandler.cs +++ b/src/apps/products/Genocs.Products.WebApi/Commands/Handlers/CreateProductHandler.cs @@ -34,7 +34,7 @@ public async Task HandleAsync(CreateProduct command, CancellationToken cancellat throw new InvalidOperationException($"Product with given id: {command.ProductId} already exists!"); } - var product = new Product(command.ProductId, command.SKU, command.UnitPrice); + var product = new Product(command.ProductId, command.SKU, command.UnitPrice, command.Name, command.Description); await _repository.AddAsync(product); _logger.LogInformation($"Created a product with id: {command.ProductId}, sku: {command.SKU}, unitPrice: {command.UnitPrice}."); diff --git a/src/apps/products/Genocs.Products.WebApi/DTO/ProductDto.cs b/src/apps/products/Genocs.Products.WebApi/DTO/ProductDto.cs index 90c573a9..2300f8f7 100644 --- a/src/apps/products/Genocs.Products.WebApi/DTO/ProductDto.cs +++ b/src/apps/products/Genocs.Products.WebApi/DTO/ProductDto.cs @@ -4,6 +4,7 @@ public class ProductDto { public Guid Id { get; set; } public string SKU { get; set; } = default!; - + public string? Name { get; set; } + public string? Description { get; set; } public decimal UnitPrice { get; set; } } \ No newline at end of file diff --git a/src/apps/products/Genocs.Products.WebApi/Domain/Product.cs b/src/apps/products/Genocs.Products.WebApi/Domain/Product.cs index 087a076f..0fbd865d 100644 --- a/src/apps/products/Genocs.Products.WebApi/Domain/Product.cs +++ b/src/apps/products/Genocs.Products.WebApi/Domain/Product.cs @@ -5,17 +5,20 @@ namespace Genocs.Products.WebApi.Domain; /// /// The product definition. /// -public class Product : IEntity +public class Product(Guid id, string sku, decimal unitPrice) : IEntity { - public Guid Id { get; private set; } - public string SKU { get; private set; } - public decimal UnitPrice { get; private set; } + public Guid Id { get; private set; } = id; + public string? Name { get; private set; } + public string? Description { get; private set; } - public Product(Guid id, string sku, decimal unitPrice) + public string SKU { get; private set; } = sku; + public decimal UnitPrice { get; private set; } = unitPrice; + + public Product(Guid id, string sku, decimal unitPrice, string? name, string? description) + : this(id, sku, unitPrice) { - Id = id; - SKU = sku; - UnitPrice = unitPrice; + Name = name; + Description = description; } public bool IsTransient() diff --git a/src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj b/src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj index 39143b83..9c0c6311 100644 --- a/src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj +++ b/src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj @@ -2,6 +2,9 @@ net9.0 + Genocs.Products.WebApi + Genocs.Products.WebApi + Genocs.Products.WebApi false Genocs @@ -46,7 +49,6 @@ - diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj b/src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj index 086f777f..08053fb3 100644 --- a/src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj +++ b/src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj @@ -2,6 +2,9 @@ net9.0 + Genocs.SignalR.WebApi + Genocs.SignalR.WebApi + Genocs.SignalR.WebApi false Genocs @@ -52,6 +55,6 @@ - + \ No newline at end of file From 48a5f9b79f3921052f85135d5e709aaa624fcfbc Mon Sep 17 00:00:00 2001 From: Nocco Giovanni Emanuele Date: Sat, 28 Dec 2024 19:58:01 +0100 Subject: [PATCH 5/8] Enhance README with application components overview and architecture diagram --- README.md | 14 +++++++++++++- assets/architecture_01.png | Bin 0 -> 168853 bytes 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 assets/architecture_01.png diff --git a/README.md b/README.md index b9845cb3..32f44ede 100644 --- a/README.md +++ b/README.md @@ -455,6 +455,9 @@ docker push genocs/demo-worker:latest ## Enterprise Application +### Application Components + + Inside **./src/apps** folder you can find a full-fledged application composed by: - ApiGateway - Identity Service @@ -464,7 +467,16 @@ Inside **./src/apps** folder you can find a full-fledged application composed by In that way you can test the entire flow. -**TODO**: Add a architecture diagram to show the components and how they interact with each other. +| Component | Description | Container Port | Visibility | +|-------------------|-----------------------------------|----------------|------------------------------| +| ApiGateway | Handles API requests | 5500 | Public | +| Identity Service | Manages user identities | 5510* | Private through API Gateway | +| Product Service | Manages product information | 5520* | Private through API Gateway | +| Order Service | Processes orders | 5530* | Private through API Gateway | +| SignalR Service | Handles real-time communication | 5540* | Private through API Gateway | + + +![Architecture](./assets/architecture_01.png) ### How to BUILD & RUN the application diff --git a/assets/architecture_01.png b/assets/architecture_01.png new file mode 100644 index 0000000000000000000000000000000000000000..67a4da458640684b6f8229bb27f21bba02de5438 GIT binary patch literal 168853 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

Tm$-;87^JtW2w4=u5{7{owfwk{xTu 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 Date: Sun, 29 Dec 2024 18:05:56 +0100 Subject: [PATCH 6/8] Enhance infrastructure, API, and SignalR integration Updated README.md with setup instructions for Docker services and monitoring tools. Modified API workbench configuration for endpoint changes. Refined application structure with new services, command/query handlers, and MongoDB configurations. Enhanced SignalR service for real-time notifications and improved error handling. Introduced new project files for ASP.NET Core web project, including appsettings.json for configuration and Program.cs/Startup.cs for application setup. Added SSL certificate files for secure communication. Implemented new classes for messaging options, correlation context, and middleware for user authentication and messaging. Created command handlers for user management and logging decorators for command/event handling. Added domain exceptions, repository interfaces, and DTOs for user operations. Enhanced UI with SignalR support for real-time notifications. --- README.md | 49 ++++++++++------ assets/Genocs-Library-Overview.drawio.png | Bin 357528 -> 0 bytes assets/architecture_01.png | Bin 168853 -> 207881 bytes genocs.sln | 42 ++++++------- .../APIGateway.WebApi.csproj} | 0 .../Configurations/MessagingOptions.cs | 0 .../Configurations/MongoDbOptions.cs | 0 .../Framework/CorrelationContext.cs | 0 .../Framework/CorrelationContextBuilder.cs | 0 .../Framework/CorrelationIdFactory.cs | 0 .../CustomForwarderHttpClientFactory.cs | 0 .../Framework/ICorrelationContextBuilder.cs | 0 .../Framework/LogContextMiddleware.cs | 0 .../Framework/MessagingMiddleware.cs | 0 .../Framework/RouteMatcher.cs | 0 .../Framework/UserMiddleware.cs | 0 .../Program.cs | 0 .../Properties/launchSettings.json | 0 .../Providers/IMongodbConfigProvider.cs | 0 .../MongoDbConfigProviderExtensions.cs | 0 .../Providers/MongodbConfigProvider.cs | 0 .../Startup.cs | 0 .../appsettings.json | 0 .../certs/localhost.cer | 0 .../certs/localhost.key | 0 .../certs/localhost.pem | 0 .../Genocs.APIGateway/README_NUGET.md | 55 ------------------ .../Genocs.APIGateway/certs/localhost.pfx | Bin 2381 -> 0 bytes .../certs/localhost.pfx | Bin 2381 -> 0 bytes .../Commands/CreateAdmin.cs | 0 .../Commands/CreateUser.cs | 0 .../Commands/Handlers/CreateAdminHandler.cs | 0 .../Commands/Handlers/CreateUserHandler.cs | 0 .../Commands/Handlers/LockUserHandler.cs | 0 .../Handlers/RevokeAccessTokenHandler.cs | 0 .../Handlers/RevokeRefreshTokenHandler.cs | 0 .../Commands/Handlers/SignInHandler.cs | 0 .../Commands/Handlers/UnlockUserHandler.cs | 0 .../Handlers/UseRefreshTokenHandler.cs | 0 .../Commands/LockUser.cs | 0 .../Commands/RevokeAccessToken.cs | 0 .../Commands/RevokeRefreshToken.cs | 0 .../Commands/SignIn.cs | 0 .../Commands/UnlockUser.cs | 0 .../Commands/UseRefreshToken.cs | 0 .../ContractAttribute.cs | 0 .../CorrelationContext.cs | 0 .../CorrelationIdFactory.cs | 0 .../DTO/AuthDto.cs | 0 .../DTO/PagedDto.cs | 0 .../DTO/UserDetailsDto.cs | 0 .../DTO/UserDto.cs | 0 .../LoggingCommandHandlerDecorator.cs | 0 .../LoggingEventHandlerDecorator.cs | 0 .../OutboxCommandHandlerDecorator.cs | 0 .../Decorators/OutboxEventHandlerDecorator.cs | 0 .../Domain/Constants/Policies.cs | 0 .../Domain/Constants/Roles.cs | 0 .../Domain/Entities/AggregateId.cs | 0 .../Domain/Entities/AggregateRoot.cs | 0 .../Domain/Entities/RefreshToken.cs | 0 .../Domain/Entities/Role.cs | 0 .../Domain/Entities/User.cs | 0 .../Domain/Exceptions/DomainException.cs | 0 .../Domain/Exceptions/EmailInUseException.cs | 0 .../Exceptions/EmptyRefreshTokenException.cs | 0 .../Exceptions/InvalidAggregateIdException.cs | 0 .../Exceptions/InvalidCredentialsException.cs | 0 .../Exceptions/InvalidEmailException.cs | 0 .../Domain/Exceptions/InvalidNameException.cs | 0 .../Exceptions/InvalidPasswordException.cs | 0 .../InvalidRefreshTokenException.cs | 0 .../Domain/Exceptions/InvalidRoleException.cs | 0 .../Domain/Exceptions/NameInUseException.cs | 0 .../RevokedRefreshTokenException.cs | 0 .../Domain/Exceptions/UserLockedException.cs | 0 .../Repositories/IRefreshTokenRepository.cs | 0 .../Domain/Repositories/IUserRepository.cs | 0 .../Events/SignedIn.cs | 0 .../Events/UserCreated.cs | 0 .../Events/UserLocked.cs | 0 .../Events/UserUnlocked.cs | 0 .../Exceptions/AppException.cs | 0 .../Exceptions/ExceptionToMessageMapper.cs | 0 .../Exceptions/ExceptionToResponseMapper.cs | 0 .../Exceptions/Extensions.cs | 0 .../Exceptions/UserNotFoundException.cs | 0 .../Extensions.cs | 0 .../Identities.Application.csproj} | 0 .../Logging/LogContextMiddleware.cs | 0 .../Mongo/Documents/RefreshTokenDocument.cs | 0 .../Mongo/Documents/UserDocument.cs | 0 .../Mongo/Extensions.cs | 0 .../Queries/Handlers/BrowseUsersHandler.cs | 0 .../Mongo/Queries/Handlers/GetUserHandler.cs | 0 .../Repositories/RefreshTokenRepository.cs | 0 .../Mongo/Repositories/UserRepository.cs | 0 .../Queries/BrowseUsers.cs | 0 .../Queries/GetUser.cs | 0 .../Services/IJwtProvider.cs | 0 .../Services/IMessageBroker.cs | 0 .../Services/IPasswordService.cs | 0 .../Services/IRng.cs | 0 .../Services/ITokenStorage.cs | 0 .../Services/JwtProvider.cs | 0 .../Services/MessageBroker.cs | 0 .../Services/PasswordService.cs | 0 .../Services/Rng.cs | 0 .../Services/TokenStorage.cs | 0 .../Identities.WebApi.csproj} | 2 +- .../Program.cs | 0 .../Properties/launchSettings.json | 0 .../appsettings.json | 0 .../certs/localhost.cer | 0 .../certs/localhost.key | 0 .../certs/localhost.pem | 0 .../Commands/CreateOrder.cs | 0 .../Commands/Handlers/CreateOrderHandler.cs | 0 .../Controllers/OrdersController.cs | 0 .../DTO/OrderDto.cs | 0 .../DTO/ProductDto.cs | 0 .../Domain/Order.cs | 0 .../Events/External/DeliveryStarted.cs | 0 .../Handlers/DeliveryStartedHandler.cs | 0 .../Events/OrderCreated.cs | 0 .../ExceptionToResponseMapper.cs | 0 .../Extensions.cs | 0 .../Orders.WebApi.csproj} | 0 .../Program.cs | 0 .../Properties/launchSettings.json | 0 .../Queries/GetOrder.cs | 0 .../Queries/Handlers/GetOrderHandler.cs | 0 .../Services/IProductServiceClient.cs | 0 .../Services/ProductServiceClient.cs | 0 .../appsettings.json | 0 .../Commands/CreateProduct.cs | 0 .../Commands/Handlers/CreateProductHandler.cs | 0 .../DTO/ProductDto.cs | 0 .../Domain/Product.cs | 0 .../Events/ProductCreated.cs | 0 .../ExceptionToResponseMapper.cs | 0 .../Extensions.cs | 0 .../Products.WebApi.csproj} | 0 .../Program.cs | 0 .../Properties/launchSettings.json | 0 .../Queries/BrowseProducts.cs | 0 .../Queries/GetProduct.cs | 0 .../Queries/Handlers/BrowseProductsHandler.cs | 0 .../Queries/Handlers/GetProductHandler.cs | 0 .../appsettings.json | 0 .../Handlers/PublishNotificationHandler.cs | 0 .../Commands/PublishNotification.cs | 0 .../Configurations/SignalROptions.cs | 0 .../Events/NotificationPosted.cs | 0 .../Exceptions/AppException.cs | 0 .../Exceptions/ExceptionToResponseMapper.cs | 0 .../Framework/Extensions.cs | 0 .../Handlers/OperationUpdatedHandler.cs | 0 .../Hubs/GenocsHub.cs | 0 .../Messages/Events/OperationCompleted.cs | 0 .../Messages/Events/OperationPending.cs | 0 .../Messages/Events/OperationRejected.cs | 0 .../Program.cs | 0 .../Properties/launchSettings.json | 0 .../Services/HubService.cs | 0 .../Services/HubWrapper.cs | 0 .../Services/IHubService.cs | 0 .../Services/IHubWrapper.cs | 0 .../SignalR.WebApi.csproj} | 0 .../appsettings.json | 0 .../certs/localhost.cer | 0 .../certs/localhost.key | 0 .../certs/localhost.pem | 0 .../wwwroot/signalr/index.html | 0 .../wwwroot/signalr/js/app.js | 0 .../wwwroot/signalr/js/appV2.js | 0 .../wwwroot/signalr/js/signalr.js | 0 177 files changed, 55 insertions(+), 93 deletions(-) delete mode 100644 assets/Genocs-Library-Overview.drawio.png rename src/apps/api-gateway/{Genocs.APIGateway/Genocs.APIGateway.csproj => APIGateway.WebApi/APIGateway.WebApi.csproj} (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Configurations/MessagingOptions.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Configurations/MongoDbOptions.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Framework/CorrelationContext.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Framework/CorrelationContextBuilder.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Framework/CorrelationIdFactory.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Framework/CustomForwarderHttpClientFactory.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Framework/ICorrelationContextBuilder.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Framework/LogContextMiddleware.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Framework/MessagingMiddleware.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Framework/RouteMatcher.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Framework/UserMiddleware.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Program.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Properties/launchSettings.json (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Providers/IMongodbConfigProvider.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Providers/MongoDbConfigProviderExtensions.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Providers/MongodbConfigProvider.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/Startup.cs (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/appsettings.json (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/certs/localhost.cer (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/certs/localhost.key (100%) rename src/apps/api-gateway/{Genocs.APIGateway => APIGateway.WebApi}/certs/localhost.pem (100%) delete mode 100644 src/apps/api-gateway/Genocs.APIGateway/README_NUGET.md delete mode 100644 src/apps/api-gateway/Genocs.APIGateway/certs/localhost.pfx delete mode 100644 src/apps/identity/Genocs.Identities.WebApi/certs/localhost.pfx rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/CreateAdmin.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/CreateUser.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/Handlers/CreateAdminHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/Handlers/CreateUserHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/Handlers/LockUserHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/Handlers/RevokeAccessTokenHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/Handlers/RevokeRefreshTokenHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/Handlers/SignInHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/Handlers/UnlockUserHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/Handlers/UseRefreshTokenHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/LockUser.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/RevokeAccessToken.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/RevokeRefreshToken.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/SignIn.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/UnlockUser.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Commands/UseRefreshToken.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/ContractAttribute.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/CorrelationContext.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/CorrelationIdFactory.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/DTO/AuthDto.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/DTO/PagedDto.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/DTO/UserDetailsDto.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/DTO/UserDto.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Decorators/LoggingCommandHandlerDecorator.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Decorators/LoggingEventHandlerDecorator.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Decorators/OutboxCommandHandlerDecorator.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Decorators/OutboxEventHandlerDecorator.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Constants/Policies.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Constants/Roles.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Entities/AggregateId.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Entities/AggregateRoot.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Entities/RefreshToken.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Entities/Role.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Entities/User.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/DomainException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/EmailInUseException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/EmptyRefreshTokenException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/InvalidAggregateIdException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/InvalidCredentialsException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/InvalidEmailException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/InvalidNameException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/InvalidPasswordException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/InvalidRefreshTokenException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/InvalidRoleException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/NameInUseException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/RevokedRefreshTokenException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Exceptions/UserLockedException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Repositories/IRefreshTokenRepository.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Domain/Repositories/IUserRepository.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Events/SignedIn.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Events/UserCreated.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Events/UserLocked.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Events/UserUnlocked.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Exceptions/AppException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Exceptions/ExceptionToMessageMapper.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Exceptions/ExceptionToResponseMapper.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Exceptions/Extensions.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Exceptions/UserNotFoundException.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Extensions.cs (100%) rename src/apps/identity/{Genocs.Identities.Application/Genocs.Identities.Application.csproj => Identities.Application/Identities.Application.csproj} (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Logging/LogContextMiddleware.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Mongo/Documents/RefreshTokenDocument.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Mongo/Documents/UserDocument.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Mongo/Extensions.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Mongo/Queries/Handlers/BrowseUsersHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Mongo/Queries/Handlers/GetUserHandler.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Mongo/Repositories/RefreshTokenRepository.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Mongo/Repositories/UserRepository.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Queries/BrowseUsers.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Queries/GetUser.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/IJwtProvider.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/IMessageBroker.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/IPasswordService.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/IRng.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/ITokenStorage.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/JwtProvider.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/MessageBroker.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/PasswordService.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/Rng.cs (100%) rename src/apps/identity/{Genocs.Identities.Application => Identities.Application}/Services/TokenStorage.cs (100%) rename src/apps/identity/{Genocs.Identities.WebApi/Genocs.Identities.WebApi.csproj => Identities.WebApi/Identities.WebApi.csproj} (89%) rename src/apps/identity/{Genocs.Identities.WebApi => Identities.WebApi}/Program.cs (100%) rename src/apps/identity/{Genocs.Identities.WebApi => Identities.WebApi}/Properties/launchSettings.json (100%) rename src/apps/identity/{Genocs.Identities.WebApi => Identities.WebApi}/appsettings.json (100%) rename src/apps/identity/{Genocs.Identities.WebApi => Identities.WebApi}/certs/localhost.cer (100%) rename src/apps/identity/{Genocs.Identities.WebApi => Identities.WebApi}/certs/localhost.key (100%) rename src/apps/identity/{Genocs.Identities.WebApi => Identities.WebApi}/certs/localhost.pem (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Commands/CreateOrder.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Commands/Handlers/CreateOrderHandler.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Controllers/OrdersController.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/DTO/OrderDto.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/DTO/ProductDto.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Domain/Order.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Events/External/DeliveryStarted.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Events/External/Handlers/DeliveryStartedHandler.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Events/OrderCreated.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/ExceptionToResponseMapper.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Extensions.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj => Orders.WebApi/Orders.WebApi.csproj} (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Program.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Properties/launchSettings.json (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Queries/GetOrder.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Queries/Handlers/GetOrderHandler.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Services/IProductServiceClient.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/Services/ProductServiceClient.cs (100%) rename src/apps/orders/{Genocs.Orders.WebApi => Orders.WebApi}/appsettings.json (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Commands/CreateProduct.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Commands/Handlers/CreateProductHandler.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/DTO/ProductDto.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Domain/Product.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Events/ProductCreated.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/ExceptionToResponseMapper.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Extensions.cs (100%) rename src/apps/products/{Genocs.Products.WebApi/Genocs.Products.WebApi.csproj => Products.WebApi/Products.WebApi.csproj} (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Program.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Properties/launchSettings.json (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Queries/BrowseProducts.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Queries/GetProduct.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Queries/Handlers/BrowseProductsHandler.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/Queries/Handlers/GetProductHandler.cs (100%) rename src/apps/products/{Genocs.Products.WebApi => Products.WebApi}/appsettings.json (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Commands/Handlers/PublishNotificationHandler.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Commands/PublishNotification.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Configurations/SignalROptions.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Events/NotificationPosted.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Exceptions/AppException.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Exceptions/ExceptionToResponseMapper.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Framework/Extensions.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Handlers/OperationUpdatedHandler.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Hubs/GenocsHub.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Messages/Events/OperationCompleted.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Messages/Events/OperationPending.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Messages/Events/OperationRejected.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Program.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Properties/launchSettings.json (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Services/HubService.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Services/HubWrapper.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Services/IHubService.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/Services/IHubWrapper.cs (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj => SignalR.WebApi/SignalR.WebApi.csproj} (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/appsettings.json (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/certs/localhost.cer (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/certs/localhost.key (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/certs/localhost.pem (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/wwwroot/signalr/index.html (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/wwwroot/signalr/js/app.js (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/wwwroot/signalr/js/appV2.js (100%) rename src/apps/signalr/{Genocs.SignalR.WebApi => SignalR.WebApi}/wwwroot/signalr/js/signalr.js (100%) diff --git a/README.md b/README.md index 32f44ede..9d7c10b9 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,9 @@ You can use **Docker compose** to setup the infrastructure components just by ru ``` bash cd ./containers -# Setup the infrastructure. Use this file to setup the basic infrastructure components (RabbitMQ, MongoDB) + +# Setup the infrastructure. +#Use this file to setup the basic infrastructure components (RabbitMQ, MongoDB) docker compose -f ./infrastructure.yml --env-file ./.env --project-name genocs up -d # Use this file only in case you want to setup Redis and PostgreSQL (no need if you use MongoDB) @@ -106,9 +108,7 @@ docker compose -f ./infrastructure-ml.yml --env-file ./.env --project-name genoc `infrastructure.yml` allows to install the basic infrastructure components. They are: - [RabbitMQ](https://rabbitmq.com) -- [Redis](https://redis.io) - [MongoDB](https://mongodb.com) -- [Postgres](https://www.postgresql.org/) `infrastructure-db.yml` allows to install Redis and PostgreSQL @@ -125,6 +125,7 @@ You can check them locally: `infrastructure-monitoring.yml` allows to install the monitoring infrastructure components. They are: +- [Aspire](https://learn.microsoft.com/en-us/dotnet/aspire/) - [Prometheus](https://prometheus.io/) - [Grafana](https://grafana.com/) - [InfluxDB](https://www.influxdata.com/) @@ -133,7 +134,7 @@ You can check them locally: You can find the console locally at: - +- [Aspire](localhost:18888): `localhost:18888` - [Prometheus](localhost:9090): `localhost:9090` - [Grafana](localhost:3000): `localhost:3000` - [InfluxDB](localhost:8086): `localhost:8086` @@ -141,29 +142,43 @@ You can find the console locally at: - [Seq](localhost:5341): `localhost:5341` -`infrastructure-scaling.yml` allows to install the scaling infrastructure components composed by Fabio and Consul. - +`infrastructure-scaling.yml` allows to install the scaling infrastructure components composed by a Fabio (Loadbalancer) Service Discovery (Consul) components. They are: - [Fabio](https://fabiolb.net/) - [Consul](https://www.consul.io/) - - `infrastructure-security.yml` allows to install the security infrastructure components. Inside the file you can find: - vault (Hashicorp) -The script below allows to setup the infrastructure components. This means that you can find all the containers inside the same network. - -The network is called `genocs`. +> ** NOTE** +> The commands above allows to setup infrastructure components, this means you can find all the containers inside the same network `genocs`. +> Whenever possible the data are persisted on the host machine by means of volumens, so you can restart the containers without losing data. + ``` yml networks: genocs: name: genocs-network driver: bridge + +volumes: + rabbitmq-data: + mongo-data: + redis-data: + postgres-data: + influx-data: + grafana-data: + jaeger-data: + seq-data: + vault-data: + elk-data: + fabio-data: + consul-data: + prometheus-data: + ml-data: ``` Remember to add the network configuration inside your docker compose file to setup the network, before running the containers. @@ -198,7 +213,7 @@ Use [**api-workbench**](./api-workbench.rest) inside Visual Studio code with [RE "address": "docker.for.mac.localhost", "port": "5070", "pingEnabled": true, - "pingEndpoint": "health", + "pingEndpoint": "healthz", "pingInterval": 3, "removeAfterInterval": 3 }, @@ -469,11 +484,11 @@ In that way you can test the entire flow. | Component | Description | Container Port | Visibility | |-------------------|-----------------------------------|----------------|------------------------------| -| ApiGateway | Handles API requests | 5500 | Public | -| Identity Service | Manages user identities | 5510* | Private through API Gateway | -| Product Service | Manages product information | 5520* | Private through API Gateway | -| Order Service | Processes orders | 5530* | Private through API Gateway | -| SignalR Service | Handles real-time communication | 5540* | Private through API Gateway | +| ApiGateway | Handles API requests | :5500 | Public | +| Identity Service | Manages user identities | :5510* | Private through API Gateway | +| Product Service | Manages product information | :5520* | Private through API Gateway | +| Order Service | Processes orders | :5530* | Private through API Gateway | +| SignalR Service | Handles real-time communication | :5540* | Private through API Gateway | ![Architecture](./assets/architecture_01.png) diff --git a/assets/Genocs-Library-Overview.drawio.png b/assets/Genocs-Library-Overview.drawio.png deleted file mode 100644 index ab45ae00cd50ce6841f3adaa2a5aabfff877dd81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 357528 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 ag9T&D`d{hj0IS#F*c^uYkp02lum2AY;K+^u delta 78075 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�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

M&(#x*w-**_MAAo0)Gldb$_+ezAb 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 Q0spBfX({GjGkyGj0DfCAhX4Qo diff --git a/genocs.sln b/genocs.sln index 53366e9e..cb7bf2c9 100644 --- a/genocs.sln +++ b/genocs.sln @@ -37,8 +37,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.HTTP", "src\Genocs.H EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.Auth", "src\Genocs.Auth\Genocs.Auth.csproj", "{63DFA0D8-D60E-4985-BD46-E6A2F253E2D5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "IdentityService", "IdentityService", "{6E25EB9D-CA55-4DF1-8A2A-5A8A20C4B849}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.WebApi", "src\Genocs.WebApi\Genocs.WebApi.csproj", "{612DA557-6D26-485A-A998-AAABEC1F796B}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.WebApi.Swagger", "src\Genocs.WebApi.Swagger\Genocs.WebApi.Swagger.csproj", "{E01C11ED-A212-4B57-A94B-0B4CA097AB49}" @@ -67,15 +65,27 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.Persistence.Redis", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.Secrets.Vault", "src\Genocs.Secrets.Vault\Genocs.Secrets.Vault.csproj", "{3AC0521F-192D-4B1F-8741-64D4505A5AA5}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "APIGateway", "APIGateway", "{E2C01E9C-032C-4CD2-A0DE-C1A7AB8A9C7B}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Application", "Application", "{140B7191-88E9-4EEE-9D86-9A70839F8507}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.APIGateway", "src\apps\api-gateway\Genocs.APIGateway\Genocs.APIGateway.csproj", "{C9E31675-9AD7-4EBC-9986-B64CCE869454}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "api-gateway", "api-gateway", "{E2C01E9C-032C-4CD2-A0DE-C1A7AB8A9C7B}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "identity", "identity", "{6E25EB9D-CA55-4DF1-8A2A-5A8A20C4B849}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "orders", "orders", "{80862789-8B42-4878-AC10-9CFF06A7313C}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "notification", "notification", "{160F94A8-C119-4C0F-94FA-E03673269AC8}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "notification-signalr", "notification-signalr", "{75D24F85-48AC-4058-AF8D-461FC6A360AD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "wallet", "wallet", "{9344A71B-D7EA-4C91-B303-2F8E8841B521}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.Identities.Application", "src\apps\identity\Genocs.Identities.Application\Genocs.Identities.Application.csproj", "{D1BE29BD-9518-42DA-9A34-C86D4287BAB5}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "products", "products", "{B2028A73-6C94-4166-A0BB-22080805E351}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.Identities.WebApi", "src\apps\identity\Genocs.Identities.WebApi\Genocs.Identities.WebApi.csproj", "{CA411C82-9B2F-45B2-AF3F-8650C971E49D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "APIGateway", "src\apps\api-gateway\APIGateway.WebApi\APIGateway.WebApi.csproj", "{C9E31675-9AD7-4EBC-9986-B64CCE869454}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identities.Application", "src\apps\identity\Identities.Application\Identities.Application.csproj", "{D1BE29BD-9518-42DA-9A34-C86D4287BAB5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Identities.WebApi", "src\apps\identity\Identities.WebApi\Identities.WebApi.csproj", "{CA411C82-9B2F-45B2-AF3F-8650C971E49D}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.Common", "src\Genocs.Common\Genocs.Common.csproj", "{2B25640E-3141-4AD1-AFDE-AFE4ADDBA45F}" EndProject @@ -95,9 +105,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_Solution Items", "_Solutio stylecop.json = stylecop.json EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OrdersService", "OrdersService", "{80862789-8B42-4878-AC10-9CFF06A7313C}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.Orders.WebApi", "src\apps\orders\Genocs.Orders.WebApi\Genocs.Orders.WebApi.csproj", "{F9F54FEC-23B0-4A83-B5E9-75CD476D4B22}" + +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Orders.WebApi", "src\apps\orders\Orders.WebApi\Orders.WebApi.csproj", "{F9F54FEC-23B0-4A83-B5E9-75CD476D4B22}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.Discovery.Consul", "src\Genocs.Discovery.Consul\Genocs.Discovery.Consul.csproj", "{C42D741B-EBCC-4770-907C-C8B980D22A65}" EndProject @@ -105,17 +114,10 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.LoadBalancing.Fabio" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.HTTP.RestEase", "src\Genocs.HTTP.RestEase\Genocs.HTTP.RestEase.csproj", "{C2CC0D45-CB64-4E0C-B875-6DB1667141E3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NotificationsService", "NotificationsService", "{160F94A8-C119-4C0F-94FA-E03673269AC8}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SignalR", "SignalR", "{75D24F85-48AC-4058-AF8D-461FC6A360AD}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WalletsService", "WalletsService", "{9344A71B-D7EA-4C91-B303-2F8E8841B521}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.SignalR.WebApi", "src\apps\signalr\Genocs.SignalR.WebApi\Genocs.SignalR.WebApi.csproj", "{6846DCBA-4D72-49DA-B4FE-70AAF5542AB2}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "ProductsService", "ProductsService", "{B2028A73-6C94-4166-A0BB-22080805E351}" + +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SignalR.WebApi", "src\apps\signalr\SignalR.WebApi\SignalR.WebApi.csproj", "{6846DCBA-4D72-49DA-B4FE-70AAF5542AB2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Genocs.Products.WebApi", "src\apps\products\Genocs.Products.WebApi\Genocs.Products.WebApi.csproj", "{6CE8740F-8561-481B-AC9F-D1E73C449235}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Products.WebApi", "src\apps\products\Products.WebApi\Products.WebApi.csproj", "{6CE8740F-8561-481B-AC9F-D1E73C449235}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Application", "Application", "{B184733D-2415-4517-BC65-26ED22EEB2C2}" ProjectSection(SolutionItems) = preProject diff --git a/src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj b/src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Genocs.APIGateway.csproj rename to src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj diff --git a/src/apps/api-gateway/Genocs.APIGateway/Configurations/MessagingOptions.cs b/src/apps/api-gateway/APIGateway.WebApi/Configurations/MessagingOptions.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Configurations/MessagingOptions.cs rename to src/apps/api-gateway/APIGateway.WebApi/Configurations/MessagingOptions.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Configurations/MongoDbOptions.cs b/src/apps/api-gateway/APIGateway.WebApi/Configurations/MongoDbOptions.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Configurations/MongoDbOptions.cs rename to src/apps/api-gateway/APIGateway.WebApi/Configurations/MongoDbOptions.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Framework/CorrelationContext.cs b/src/apps/api-gateway/APIGateway.WebApi/Framework/CorrelationContext.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Framework/CorrelationContext.cs rename to src/apps/api-gateway/APIGateway.WebApi/Framework/CorrelationContext.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Framework/CorrelationContextBuilder.cs b/src/apps/api-gateway/APIGateway.WebApi/Framework/CorrelationContextBuilder.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Framework/CorrelationContextBuilder.cs rename to src/apps/api-gateway/APIGateway.WebApi/Framework/CorrelationContextBuilder.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Framework/CorrelationIdFactory.cs b/src/apps/api-gateway/APIGateway.WebApi/Framework/CorrelationIdFactory.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Framework/CorrelationIdFactory.cs rename to src/apps/api-gateway/APIGateway.WebApi/Framework/CorrelationIdFactory.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Framework/CustomForwarderHttpClientFactory.cs b/src/apps/api-gateway/APIGateway.WebApi/Framework/CustomForwarderHttpClientFactory.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Framework/CustomForwarderHttpClientFactory.cs rename to src/apps/api-gateway/APIGateway.WebApi/Framework/CustomForwarderHttpClientFactory.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Framework/ICorrelationContextBuilder.cs b/src/apps/api-gateway/APIGateway.WebApi/Framework/ICorrelationContextBuilder.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Framework/ICorrelationContextBuilder.cs rename to src/apps/api-gateway/APIGateway.WebApi/Framework/ICorrelationContextBuilder.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Framework/LogContextMiddleware.cs b/src/apps/api-gateway/APIGateway.WebApi/Framework/LogContextMiddleware.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Framework/LogContextMiddleware.cs rename to src/apps/api-gateway/APIGateway.WebApi/Framework/LogContextMiddleware.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Framework/MessagingMiddleware.cs b/src/apps/api-gateway/APIGateway.WebApi/Framework/MessagingMiddleware.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Framework/MessagingMiddleware.cs rename to src/apps/api-gateway/APIGateway.WebApi/Framework/MessagingMiddleware.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Framework/RouteMatcher.cs b/src/apps/api-gateway/APIGateway.WebApi/Framework/RouteMatcher.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Framework/RouteMatcher.cs rename to src/apps/api-gateway/APIGateway.WebApi/Framework/RouteMatcher.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Framework/UserMiddleware.cs b/src/apps/api-gateway/APIGateway.WebApi/Framework/UserMiddleware.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Framework/UserMiddleware.cs rename to src/apps/api-gateway/APIGateway.WebApi/Framework/UserMiddleware.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Program.cs b/src/apps/api-gateway/APIGateway.WebApi/Program.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Program.cs rename to src/apps/api-gateway/APIGateway.WebApi/Program.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Properties/launchSettings.json b/src/apps/api-gateway/APIGateway.WebApi/Properties/launchSettings.json similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Properties/launchSettings.json rename to src/apps/api-gateway/APIGateway.WebApi/Properties/launchSettings.json diff --git a/src/apps/api-gateway/Genocs.APIGateway/Providers/IMongodbConfigProvider.cs b/src/apps/api-gateway/APIGateway.WebApi/Providers/IMongodbConfigProvider.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Providers/IMongodbConfigProvider.cs rename to src/apps/api-gateway/APIGateway.WebApi/Providers/IMongodbConfigProvider.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Providers/MongoDbConfigProviderExtensions.cs b/src/apps/api-gateway/APIGateway.WebApi/Providers/MongoDbConfigProviderExtensions.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Providers/MongoDbConfigProviderExtensions.cs rename to src/apps/api-gateway/APIGateway.WebApi/Providers/MongoDbConfigProviderExtensions.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Providers/MongodbConfigProvider.cs b/src/apps/api-gateway/APIGateway.WebApi/Providers/MongodbConfigProvider.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Providers/MongodbConfigProvider.cs rename to src/apps/api-gateway/APIGateway.WebApi/Providers/MongodbConfigProvider.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/Startup.cs b/src/apps/api-gateway/APIGateway.WebApi/Startup.cs similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/Startup.cs rename to src/apps/api-gateway/APIGateway.WebApi/Startup.cs diff --git a/src/apps/api-gateway/Genocs.APIGateway/appsettings.json b/src/apps/api-gateway/APIGateway.WebApi/appsettings.json similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/appsettings.json rename to src/apps/api-gateway/APIGateway.WebApi/appsettings.json diff --git a/src/apps/api-gateway/Genocs.APIGateway/certs/localhost.cer b/src/apps/api-gateway/APIGateway.WebApi/certs/localhost.cer similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/certs/localhost.cer rename to src/apps/api-gateway/APIGateway.WebApi/certs/localhost.cer diff --git a/src/apps/api-gateway/Genocs.APIGateway/certs/localhost.key b/src/apps/api-gateway/APIGateway.WebApi/certs/localhost.key similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/certs/localhost.key rename to src/apps/api-gateway/APIGateway.WebApi/certs/localhost.key diff --git a/src/apps/api-gateway/Genocs.APIGateway/certs/localhost.pem b/src/apps/api-gateway/APIGateway.WebApi/certs/localhost.pem similarity index 100% rename from src/apps/api-gateway/Genocs.APIGateway/certs/localhost.pem rename to src/apps/api-gateway/APIGateway.WebApi/certs/localhost.pem diff --git a/src/apps/api-gateway/Genocs.APIGateway/README_NUGET.md b/src/apps/api-gateway/Genocs.APIGateway/README_NUGET.md deleted file mode 100644 index a5eaef64..00000000 --- a/src/apps/api-gateway/Genocs.APIGateway/README_NUGET.md +++ /dev/null @@ -1,55 +0,0 @@ -# .NET Core API Gateway web api - -This package contains a set of functionalities to use http client for microservice, the library is designed by Genocs even thought a lot of insight came from community. -First of all I have to say thanks to devmentors - -The libraries are built using .NET7. - - -## Description - -Core NuGet package contains Open Telemetry and logging useful for DDD service. - - -## Support - -Please check the GitHub repository getting more info. - - -### DataProvider Settings -Following are the project settings needed to enable monitoring - -``` json - "AppSettings": { - "ServiceName": "Demo WebApi", - }, - "ConnectionStrings": { - "ApplicationInsights": "" - }, - "Monitoring": { - "Jaeger": "localhost", - } -``` - -## Release notes - -### [2023-03-04] 2.0.1 -- Updated nuget packages - -### [2023-03-04] 2.0.0 -- Revisited - -### [2023-02-06] 1.0.0-rc4.0 -- Updated Masstransit - -### [2023-01-01] 1.0.0-rc3.1 -- Updated Masstransit - -### [2023-01-01] 1.0.0-rc3.0 -- Moved to netstandart - -### [2023-01-01] 1.0.0-rc2.0 -- Refactory and standardization - - - diff --git a/src/apps/api-gateway/Genocs.APIGateway/certs/localhost.pfx b/src/apps/api-gateway/Genocs.APIGateway/certs/localhost.pfx deleted file mode 100644 index 8e1885b6b2f9035bd3cda9e0e935af3e58c8152f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2381 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 - + diff --git a/src/apps/identity/Genocs.Identities.WebApi/Program.cs b/src/apps/identity/Identities.WebApi/Program.cs similarity index 100% rename from src/apps/identity/Genocs.Identities.WebApi/Program.cs rename to src/apps/identity/Identities.WebApi/Program.cs diff --git a/src/apps/identity/Genocs.Identities.WebApi/Properties/launchSettings.json b/src/apps/identity/Identities.WebApi/Properties/launchSettings.json similarity index 100% rename from src/apps/identity/Genocs.Identities.WebApi/Properties/launchSettings.json rename to src/apps/identity/Identities.WebApi/Properties/launchSettings.json diff --git a/src/apps/identity/Genocs.Identities.WebApi/appsettings.json b/src/apps/identity/Identities.WebApi/appsettings.json similarity index 100% rename from src/apps/identity/Genocs.Identities.WebApi/appsettings.json rename to src/apps/identity/Identities.WebApi/appsettings.json diff --git a/src/apps/identity/Genocs.Identities.WebApi/certs/localhost.cer b/src/apps/identity/Identities.WebApi/certs/localhost.cer similarity index 100% rename from src/apps/identity/Genocs.Identities.WebApi/certs/localhost.cer rename to src/apps/identity/Identities.WebApi/certs/localhost.cer diff --git a/src/apps/identity/Genocs.Identities.WebApi/certs/localhost.key b/src/apps/identity/Identities.WebApi/certs/localhost.key similarity index 100% rename from src/apps/identity/Genocs.Identities.WebApi/certs/localhost.key rename to src/apps/identity/Identities.WebApi/certs/localhost.key diff --git a/src/apps/identity/Genocs.Identities.WebApi/certs/localhost.pem b/src/apps/identity/Identities.WebApi/certs/localhost.pem similarity index 100% rename from src/apps/identity/Genocs.Identities.WebApi/certs/localhost.pem rename to src/apps/identity/Identities.WebApi/certs/localhost.pem diff --git a/src/apps/orders/Genocs.Orders.WebApi/Commands/CreateOrder.cs b/src/apps/orders/Orders.WebApi/Commands/CreateOrder.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Commands/CreateOrder.cs rename to src/apps/orders/Orders.WebApi/Commands/CreateOrder.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Commands/Handlers/CreateOrderHandler.cs b/src/apps/orders/Orders.WebApi/Commands/Handlers/CreateOrderHandler.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Commands/Handlers/CreateOrderHandler.cs rename to src/apps/orders/Orders.WebApi/Commands/Handlers/CreateOrderHandler.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Controllers/OrdersController.cs b/src/apps/orders/Orders.WebApi/Controllers/OrdersController.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Controllers/OrdersController.cs rename to src/apps/orders/Orders.WebApi/Controllers/OrdersController.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/DTO/OrderDto.cs b/src/apps/orders/Orders.WebApi/DTO/OrderDto.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/DTO/OrderDto.cs rename to src/apps/orders/Orders.WebApi/DTO/OrderDto.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/DTO/ProductDto.cs b/src/apps/orders/Orders.WebApi/DTO/ProductDto.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/DTO/ProductDto.cs rename to src/apps/orders/Orders.WebApi/DTO/ProductDto.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Domain/Order.cs b/src/apps/orders/Orders.WebApi/Domain/Order.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Domain/Order.cs rename to src/apps/orders/Orders.WebApi/Domain/Order.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Events/External/DeliveryStarted.cs b/src/apps/orders/Orders.WebApi/Events/External/DeliveryStarted.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Events/External/DeliveryStarted.cs rename to src/apps/orders/Orders.WebApi/Events/External/DeliveryStarted.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Events/External/Handlers/DeliveryStartedHandler.cs b/src/apps/orders/Orders.WebApi/Events/External/Handlers/DeliveryStartedHandler.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Events/External/Handlers/DeliveryStartedHandler.cs rename to src/apps/orders/Orders.WebApi/Events/External/Handlers/DeliveryStartedHandler.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Events/OrderCreated.cs b/src/apps/orders/Orders.WebApi/Events/OrderCreated.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Events/OrderCreated.cs rename to src/apps/orders/Orders.WebApi/Events/OrderCreated.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/ExceptionToResponseMapper.cs b/src/apps/orders/Orders.WebApi/ExceptionToResponseMapper.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/ExceptionToResponseMapper.cs rename to src/apps/orders/Orders.WebApi/ExceptionToResponseMapper.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Extensions.cs b/src/apps/orders/Orders.WebApi/Extensions.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Extensions.cs rename to src/apps/orders/Orders.WebApi/Extensions.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj b/src/apps/orders/Orders.WebApi/Orders.WebApi.csproj similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Genocs.Orders.WebApi.csproj rename to src/apps/orders/Orders.WebApi/Orders.WebApi.csproj diff --git a/src/apps/orders/Genocs.Orders.WebApi/Program.cs b/src/apps/orders/Orders.WebApi/Program.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Program.cs rename to src/apps/orders/Orders.WebApi/Program.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Properties/launchSettings.json b/src/apps/orders/Orders.WebApi/Properties/launchSettings.json similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Properties/launchSettings.json rename to src/apps/orders/Orders.WebApi/Properties/launchSettings.json diff --git a/src/apps/orders/Genocs.Orders.WebApi/Queries/GetOrder.cs b/src/apps/orders/Orders.WebApi/Queries/GetOrder.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Queries/GetOrder.cs rename to src/apps/orders/Orders.WebApi/Queries/GetOrder.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Queries/Handlers/GetOrderHandler.cs b/src/apps/orders/Orders.WebApi/Queries/Handlers/GetOrderHandler.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Queries/Handlers/GetOrderHandler.cs rename to src/apps/orders/Orders.WebApi/Queries/Handlers/GetOrderHandler.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Services/IProductServiceClient.cs b/src/apps/orders/Orders.WebApi/Services/IProductServiceClient.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Services/IProductServiceClient.cs rename to src/apps/orders/Orders.WebApi/Services/IProductServiceClient.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/Services/ProductServiceClient.cs b/src/apps/orders/Orders.WebApi/Services/ProductServiceClient.cs similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/Services/ProductServiceClient.cs rename to src/apps/orders/Orders.WebApi/Services/ProductServiceClient.cs diff --git a/src/apps/orders/Genocs.Orders.WebApi/appsettings.json b/src/apps/orders/Orders.WebApi/appsettings.json similarity index 100% rename from src/apps/orders/Genocs.Orders.WebApi/appsettings.json rename to src/apps/orders/Orders.WebApi/appsettings.json diff --git a/src/apps/products/Genocs.Products.WebApi/Commands/CreateProduct.cs b/src/apps/products/Products.WebApi/Commands/CreateProduct.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Commands/CreateProduct.cs rename to src/apps/products/Products.WebApi/Commands/CreateProduct.cs diff --git a/src/apps/products/Genocs.Products.WebApi/Commands/Handlers/CreateProductHandler.cs b/src/apps/products/Products.WebApi/Commands/Handlers/CreateProductHandler.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Commands/Handlers/CreateProductHandler.cs rename to src/apps/products/Products.WebApi/Commands/Handlers/CreateProductHandler.cs diff --git a/src/apps/products/Genocs.Products.WebApi/DTO/ProductDto.cs b/src/apps/products/Products.WebApi/DTO/ProductDto.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/DTO/ProductDto.cs rename to src/apps/products/Products.WebApi/DTO/ProductDto.cs diff --git a/src/apps/products/Genocs.Products.WebApi/Domain/Product.cs b/src/apps/products/Products.WebApi/Domain/Product.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Domain/Product.cs rename to src/apps/products/Products.WebApi/Domain/Product.cs diff --git a/src/apps/products/Genocs.Products.WebApi/Events/ProductCreated.cs b/src/apps/products/Products.WebApi/Events/ProductCreated.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Events/ProductCreated.cs rename to src/apps/products/Products.WebApi/Events/ProductCreated.cs diff --git a/src/apps/products/Genocs.Products.WebApi/ExceptionToResponseMapper.cs b/src/apps/products/Products.WebApi/ExceptionToResponseMapper.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/ExceptionToResponseMapper.cs rename to src/apps/products/Products.WebApi/ExceptionToResponseMapper.cs diff --git a/src/apps/products/Genocs.Products.WebApi/Extensions.cs b/src/apps/products/Products.WebApi/Extensions.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Extensions.cs rename to src/apps/products/Products.WebApi/Extensions.cs diff --git a/src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj b/src/apps/products/Products.WebApi/Products.WebApi.csproj similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Genocs.Products.WebApi.csproj rename to src/apps/products/Products.WebApi/Products.WebApi.csproj diff --git a/src/apps/products/Genocs.Products.WebApi/Program.cs b/src/apps/products/Products.WebApi/Program.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Program.cs rename to src/apps/products/Products.WebApi/Program.cs diff --git a/src/apps/products/Genocs.Products.WebApi/Properties/launchSettings.json b/src/apps/products/Products.WebApi/Properties/launchSettings.json similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Properties/launchSettings.json rename to src/apps/products/Products.WebApi/Properties/launchSettings.json diff --git a/src/apps/products/Genocs.Products.WebApi/Queries/BrowseProducts.cs b/src/apps/products/Products.WebApi/Queries/BrowseProducts.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Queries/BrowseProducts.cs rename to src/apps/products/Products.WebApi/Queries/BrowseProducts.cs diff --git a/src/apps/products/Genocs.Products.WebApi/Queries/GetProduct.cs b/src/apps/products/Products.WebApi/Queries/GetProduct.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Queries/GetProduct.cs rename to src/apps/products/Products.WebApi/Queries/GetProduct.cs diff --git a/src/apps/products/Genocs.Products.WebApi/Queries/Handlers/BrowseProductsHandler.cs b/src/apps/products/Products.WebApi/Queries/Handlers/BrowseProductsHandler.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Queries/Handlers/BrowseProductsHandler.cs rename to src/apps/products/Products.WebApi/Queries/Handlers/BrowseProductsHandler.cs diff --git a/src/apps/products/Genocs.Products.WebApi/Queries/Handlers/GetProductHandler.cs b/src/apps/products/Products.WebApi/Queries/Handlers/GetProductHandler.cs similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/Queries/Handlers/GetProductHandler.cs rename to src/apps/products/Products.WebApi/Queries/Handlers/GetProductHandler.cs diff --git a/src/apps/products/Genocs.Products.WebApi/appsettings.json b/src/apps/products/Products.WebApi/appsettings.json similarity index 100% rename from src/apps/products/Genocs.Products.WebApi/appsettings.json rename to src/apps/products/Products.WebApi/appsettings.json diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Commands/Handlers/PublishNotificationHandler.cs b/src/apps/signalr/SignalR.WebApi/Commands/Handlers/PublishNotificationHandler.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Commands/Handlers/PublishNotificationHandler.cs rename to src/apps/signalr/SignalR.WebApi/Commands/Handlers/PublishNotificationHandler.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Commands/PublishNotification.cs b/src/apps/signalr/SignalR.WebApi/Commands/PublishNotification.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Commands/PublishNotification.cs rename to src/apps/signalr/SignalR.WebApi/Commands/PublishNotification.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Configurations/SignalROptions.cs b/src/apps/signalr/SignalR.WebApi/Configurations/SignalROptions.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Configurations/SignalROptions.cs rename to src/apps/signalr/SignalR.WebApi/Configurations/SignalROptions.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Events/NotificationPosted.cs b/src/apps/signalr/SignalR.WebApi/Events/NotificationPosted.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Events/NotificationPosted.cs rename to src/apps/signalr/SignalR.WebApi/Events/NotificationPosted.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Exceptions/AppException.cs b/src/apps/signalr/SignalR.WebApi/Exceptions/AppException.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Exceptions/AppException.cs rename to src/apps/signalr/SignalR.WebApi/Exceptions/AppException.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Exceptions/ExceptionToResponseMapper.cs b/src/apps/signalr/SignalR.WebApi/Exceptions/ExceptionToResponseMapper.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Exceptions/ExceptionToResponseMapper.cs rename to src/apps/signalr/SignalR.WebApi/Exceptions/ExceptionToResponseMapper.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Framework/Extensions.cs b/src/apps/signalr/SignalR.WebApi/Framework/Extensions.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Framework/Extensions.cs rename to src/apps/signalr/SignalR.WebApi/Framework/Extensions.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Handlers/OperationUpdatedHandler.cs b/src/apps/signalr/SignalR.WebApi/Handlers/OperationUpdatedHandler.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Handlers/OperationUpdatedHandler.cs rename to src/apps/signalr/SignalR.WebApi/Handlers/OperationUpdatedHandler.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Hubs/GenocsHub.cs b/src/apps/signalr/SignalR.WebApi/Hubs/GenocsHub.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Hubs/GenocsHub.cs rename to src/apps/signalr/SignalR.WebApi/Hubs/GenocsHub.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Messages/Events/OperationCompleted.cs b/src/apps/signalr/SignalR.WebApi/Messages/Events/OperationCompleted.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Messages/Events/OperationCompleted.cs rename to src/apps/signalr/SignalR.WebApi/Messages/Events/OperationCompleted.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Messages/Events/OperationPending.cs b/src/apps/signalr/SignalR.WebApi/Messages/Events/OperationPending.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Messages/Events/OperationPending.cs rename to src/apps/signalr/SignalR.WebApi/Messages/Events/OperationPending.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Messages/Events/OperationRejected.cs b/src/apps/signalr/SignalR.WebApi/Messages/Events/OperationRejected.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Messages/Events/OperationRejected.cs rename to src/apps/signalr/SignalR.WebApi/Messages/Events/OperationRejected.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Program.cs b/src/apps/signalr/SignalR.WebApi/Program.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Program.cs rename to src/apps/signalr/SignalR.WebApi/Program.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Properties/launchSettings.json b/src/apps/signalr/SignalR.WebApi/Properties/launchSettings.json similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Properties/launchSettings.json rename to src/apps/signalr/SignalR.WebApi/Properties/launchSettings.json diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Services/HubService.cs b/src/apps/signalr/SignalR.WebApi/Services/HubService.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Services/HubService.cs rename to src/apps/signalr/SignalR.WebApi/Services/HubService.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Services/HubWrapper.cs b/src/apps/signalr/SignalR.WebApi/Services/HubWrapper.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Services/HubWrapper.cs rename to src/apps/signalr/SignalR.WebApi/Services/HubWrapper.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Services/IHubService.cs b/src/apps/signalr/SignalR.WebApi/Services/IHubService.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Services/IHubService.cs rename to src/apps/signalr/SignalR.WebApi/Services/IHubService.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Services/IHubWrapper.cs b/src/apps/signalr/SignalR.WebApi/Services/IHubWrapper.cs similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Services/IHubWrapper.cs rename to src/apps/signalr/SignalR.WebApi/Services/IHubWrapper.cs diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj b/src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/Genocs.SignalR.WebApi.csproj rename to src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/appsettings.json b/src/apps/signalr/SignalR.WebApi/appsettings.json similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/appsettings.json rename to src/apps/signalr/SignalR.WebApi/appsettings.json diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/certs/localhost.cer b/src/apps/signalr/SignalR.WebApi/certs/localhost.cer similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/certs/localhost.cer rename to src/apps/signalr/SignalR.WebApi/certs/localhost.cer diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/certs/localhost.key b/src/apps/signalr/SignalR.WebApi/certs/localhost.key similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/certs/localhost.key rename to src/apps/signalr/SignalR.WebApi/certs/localhost.key diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/certs/localhost.pem b/src/apps/signalr/SignalR.WebApi/certs/localhost.pem similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/certs/localhost.pem rename to src/apps/signalr/SignalR.WebApi/certs/localhost.pem diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/wwwroot/signalr/index.html b/src/apps/signalr/SignalR.WebApi/wwwroot/signalr/index.html similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/wwwroot/signalr/index.html rename to src/apps/signalr/SignalR.WebApi/wwwroot/signalr/index.html diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/wwwroot/signalr/js/app.js b/src/apps/signalr/SignalR.WebApi/wwwroot/signalr/js/app.js similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/wwwroot/signalr/js/app.js rename to src/apps/signalr/SignalR.WebApi/wwwroot/signalr/js/app.js diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/wwwroot/signalr/js/appV2.js b/src/apps/signalr/SignalR.WebApi/wwwroot/signalr/js/appV2.js similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/wwwroot/signalr/js/appV2.js rename to src/apps/signalr/SignalR.WebApi/wwwroot/signalr/js/appV2.js diff --git a/src/apps/signalr/Genocs.SignalR.WebApi/wwwroot/signalr/js/signalr.js b/src/apps/signalr/SignalR.WebApi/wwwroot/signalr/js/signalr.js similarity index 100% rename from src/apps/signalr/Genocs.SignalR.WebApi/wwwroot/signalr/js/signalr.js rename to src/apps/signalr/SignalR.WebApi/wwwroot/signalr/js/signalr.js From fd0ecc36de5a1db34554ff58abb73e644de7a79d Mon Sep 17 00:00:00 2001 From: Nocco Giovanni Emanuele Date: Mon, 30 Dec 2024 20:29:46 +0100 Subject: [PATCH 7/8] Update dependencies and refactor logging components - Bump `Roslynator.Analyzers` to version `4.12.10`. - Remove project references to `Genocs.Core` and `Genocs.HTTP`. - Add `Genocs.Logging` reference in multiple projects. - Refactor `CommandHandlerLoggingDecorator` and `EventHandlerLoggingDecorator` for improved clarity and type safety. - Remove unnecessary `Serilog.Expressions` package reference. - Disable `consul` and `fabio` settings in `appsettings.json`. - Clean up project references across various `.csproj` files. --- Directory.Build.props | 2 +- src/Genocs.Auth/Genocs.Auth.csproj | 2 -- .../Genocs.Core.Demo.Worker.csproj | 1 + .../Genocs.Discovery.Consul.csproj | 3 -- .../Genocs.HTTP.RestEase.csproj | 6 ---- .../Genocs.LoadBalancing.Fabio.csproj | 4 --- .../CommandHandlerLoggingDecorator.cs | 22 +++++---------- .../EventHandlerLoggingDecorator.cs | 28 ++++++++----------- src/Genocs.Logging/CQRS/Extensions.cs | 7 +++-- src/Genocs.Logging/Extensions.cs | 4 +-- src/Genocs.Logging/Genocs.Logging.csproj | 5 ++-- src/Genocs.Logging/LoggingService.cs | 4 +-- .../Configurations/AzureOptions.cs | 2 +- .../Configurations/ConsoleOptions.cs | 2 +- src/Genocs.OpenTelemetry/Extensions.cs | 3 +- .../Genocs.OpenTelemetry.csproj | 7 ----- .../Genocs.WebApi.CQRS.csproj | 2 -- .../APIGateway.WebApi.csproj | 2 -- .../api-gateway/APIGateway.WebApi/Startup.cs | 3 +- .../APIGateway.WebApi/appsettings.json | 4 +-- .../Identities.WebApi.csproj | 2 ++ .../orders/Orders.WebApi/appsettings.json | 6 ++-- .../Products.WebApi/Products.WebApi.csproj | 6 ++-- .../products/Products.WebApi/appsettings.json | 6 ++-- .../SignalR.WebApi/SignalR.WebApi.csproj | 6 ++-- 25 files changed, 51 insertions(+), 88 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index b2374060..04aeec4f 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -26,7 +26,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/Genocs.Auth/Genocs.Auth.csproj b/src/Genocs.Auth/Genocs.Auth.csproj index cdfd60f9..33fa9e03 100644 --- a/src/Genocs.Auth/Genocs.Auth.csproj +++ b/src/Genocs.Auth/Genocs.Auth.csproj @@ -18,12 +18,10 @@ - - diff --git a/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj b/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj index 261cea6d..f32f3aac 100644 --- a/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj +++ b/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj @@ -29,6 +29,7 @@ + diff --git a/src/Genocs.Discovery.Consul/Genocs.Discovery.Consul.csproj b/src/Genocs.Discovery.Consul/Genocs.Discovery.Consul.csproj index 89fc9be8..97afae40 100644 --- a/src/Genocs.Discovery.Consul/Genocs.Discovery.Consul.csproj +++ b/src/Genocs.Discovery.Consul/Genocs.Discovery.Consul.csproj @@ -18,13 +18,10 @@ - - - diff --git a/src/Genocs.HTTP.RestEase/Genocs.HTTP.RestEase.csproj b/src/Genocs.HTTP.RestEase/Genocs.HTTP.RestEase.csproj index 19552e7b..d7c3ccb3 100644 --- a/src/Genocs.HTTP.RestEase/Genocs.HTTP.RestEase.csproj +++ b/src/Genocs.HTTP.RestEase/Genocs.HTTP.RestEase.csproj @@ -18,16 +18,10 @@ - - - - - - diff --git a/src/Genocs.LoadBalancing.Fabio/Genocs.LoadBalancing.Fabio.csproj b/src/Genocs.LoadBalancing.Fabio/Genocs.LoadBalancing.Fabio.csproj index a75fb1bd..bca8ca8a 100644 --- a/src/Genocs.LoadBalancing.Fabio/Genocs.LoadBalancing.Fabio.csproj +++ b/src/Genocs.LoadBalancing.Fabio/Genocs.LoadBalancing.Fabio.csproj @@ -18,14 +18,10 @@ - - - - diff --git a/src/Genocs.Logging/CQRS/Decorators/CommandHandlerLoggingDecorator.cs b/src/Genocs.Logging/CQRS/Decorators/CommandHandlerLoggingDecorator.cs index 2c0182a0..a75a06ef 100644 --- a/src/Genocs.Logging/CQRS/Decorators/CommandHandlerLoggingDecorator.cs +++ b/src/Genocs.Logging/CQRS/Decorators/CommandHandlerLoggingDecorator.cs @@ -6,21 +6,13 @@ namespace Genocs.Logging.CQRS.Decorators; -[DecoratorAttribute] -internal sealed class CommandHandlerLoggingDecorator : ICommandHandler +[Decorator] +internal sealed class CommandHandlerLoggingDecorator(ICommandHandler handler, ILogger> logger, IServiceProvider serviceProvider) : ICommandHandler where TCommand : class, ICommand { - private readonly ICommandHandler _handler; - private readonly ILogger> _logger; - private readonly IMessageToLogTemplateMapper _mapper; - - public CommandHandlerLoggingDecorator(ICommandHandler handler, - ILogger> logger, IServiceProvider serviceProvider) - { - _handler = handler; - _logger = logger; - _mapper = serviceProvider.GetService() ?? new EmptyMessageToLogTemplateMapper(); - } + private readonly ICommandHandler _handler = handler; + private readonly ILogger> _logger = logger; + private readonly IMessageToLogTemplateMapper _mapper = serviceProvider.GetService() ?? new EmptyMessageToLogTemplateMapper(); public async Task HandleAsync(TCommand command, CancellationToken cancellationToken = default) { @@ -40,14 +32,14 @@ public async Task HandleAsync(TCommand command, CancellationToken cancellationTo } catch (Exception ex) { - var exceptionTemplate = template.GetExceptionTemplate(ex); + string? exceptionTemplate = template.GetExceptionTemplate(ex); Log(command, exceptionTemplate, isError: true); throw; } } - private void Log(TCommand command, string message, bool isError = false) + private void Log(TCommand command, string? message, bool isError = false) { if (string.IsNullOrEmpty(message)) { diff --git a/src/Genocs.Logging/CQRS/Decorators/EventHandlerLoggingDecorator.cs b/src/Genocs.Logging/CQRS/Decorators/EventHandlerLoggingDecorator.cs index 501916ca..eac0fc4f 100644 --- a/src/Genocs.Logging/CQRS/Decorators/EventHandlerLoggingDecorator.cs +++ b/src/Genocs.Logging/CQRS/Decorators/EventHandlerLoggingDecorator.cs @@ -6,20 +6,13 @@ namespace Genocs.Logging.CQRS.Decorators; -[DecoratorAttribute] -internal sealed class EventHandlerLoggingDecorator : IEventHandler where TEvent : class, IEvent +[Decorator] +internal sealed class EventHandlerLoggingDecorator(IEventHandler handler, ILogger> logger, IServiceProvider serviceProvider) : IEventHandler + where TEvent : class, IEvent { - private readonly IEventHandler _handler; - private readonly ILogger> _logger; - private readonly IMessageToLogTemplateMapper _mapper; - - public EventHandlerLoggingDecorator(IEventHandler handler, - ILogger> logger, IServiceProvider serviceProvider) - { - _handler = handler; - _logger = logger; - _mapper = serviceProvider.GetService() ?? new EmptyMessageToLogTemplateMapper(); - } + private readonly IEventHandler _handler = handler; + private readonly ILogger> _logger = logger; + private readonly IMessageToLogTemplateMapper _mapper = serviceProvider.GetService() ?? new EmptyMessageToLogTemplateMapper(); public async Task HandleAsync(TEvent @event, CancellationToken cancellationToken = default) { @@ -39,14 +32,14 @@ public async Task HandleAsync(TEvent @event, CancellationToken cancellationToken } catch (Exception ex) { - var exceptionTemplate = template.GetExceptionTemplate(ex); + string? exceptionTemplate = template.GetExceptionTemplate(ex); Log(@event, exceptionTemplate, isError: true); throw; } } - private void Log(TEvent @event, string message, bool isError = false) + private void Log(TEvent @event, string? message, bool isError = false) { if (string.IsNullOrEmpty(message)) { @@ -64,10 +57,11 @@ private void Log(TEvent @event, string message, bool isError = false) } ///

- /// Null Message to log template + /// Null Message to log template. /// private class EmptyMessageToLogTemplateMapper : IMessageToLogTemplateMapper { - public HandlerLogTemplate? Map(TMessage message) where TMessage : class => null; + public HandlerLogTemplate? Map(TMessage message) + where TMessage : class => null; } } \ No newline at end of file diff --git a/src/Genocs.Logging/CQRS/Extensions.cs b/src/Genocs.Logging/CQRS/Extensions.cs index 05eed6e0..ff78a0fb 100644 --- a/src/Genocs.Logging/CQRS/Extensions.cs +++ b/src/Genocs.Logging/CQRS/Extensions.cs @@ -28,12 +28,12 @@ private static IGenocsBuilder AddHandlerLogging(this IGenocsBuilder builder, Typ handlers.ForEach(ch => GetExtensionMethods() .FirstOrDefault(mi => !mi.IsGenericMethod && mi.Name == "TryDecorate")? - .Invoke(builder.Services, new object[] - { + .Invoke(builder.Services, + [ builder.Services, ch.GetInterfaces().FirstOrDefault(), decoratorType.MakeGenericType(ch.GetInterfaces().FirstOrDefault()?.GenericTypeArguments.First()) - })); + ])); return builder; } @@ -48,6 +48,7 @@ from method in type.GetMethods(BindingFlags.Static | BindingFlags.Public | Bindi where method.IsDefined(typeof(ExtensionAttribute), false) where method.GetParameters()[0].ParameterType == typeof(IServiceCollection) select method; + return query; } } \ No newline at end of file diff --git a/src/Genocs.Logging/Extensions.cs b/src/Genocs.Logging/Extensions.cs index 34a1b8ee..ee9e8558 100644 --- a/src/Genocs.Logging/Extensions.cs +++ b/src/Genocs.Logging/Extensions.cs @@ -49,9 +49,7 @@ public static IHostBuilder UseLogging( configure?.Invoke(context, loggerConfiguration); }); - public static IEndpointConventionBuilder MapLogLevelHandler( - this IEndpointRouteBuilder builder, - string endpointRoute = "~/logging/level") + public static IEndpointConventionBuilder MapLogLevelHandler(this IEndpointRouteBuilder builder, string endpointRoute = "~/logging/level") => builder.MapPost(endpointRoute, LevelSwitch); private static void MapOptions( diff --git a/src/Genocs.Logging/Genocs.Logging.csproj b/src/Genocs.Logging/Genocs.Logging.csproj index 94290039..f71c85ec 100644 --- a/src/Genocs.Logging/Genocs.Logging.csproj +++ b/src/Genocs.Logging/Genocs.Logging.csproj @@ -10,7 +10,7 @@ true 5.0.0 Nocco Giovanni Emanuele - aggregate architecture boilerplate ddd ddd-architecture design-patterns domain-driven-design dotnet dotnetcore dotnet-core microservice microservices solid solid-principles + architecture boilerplate ddd ddd-architecture design-patterns domain-driven-design dotnet dotnetcore dotnet-core microservice microservices solid solid-principles README_NUGET.md Upgraded to NET9.0 True @@ -28,11 +28,10 @@ + - - diff --git a/src/Genocs.Logging/LoggingService.cs b/src/Genocs.Logging/LoggingService.cs index bd535b59..ddc11382 100644 --- a/src/Genocs.Logging/LoggingService.cs +++ b/src/Genocs.Logging/LoggingService.cs @@ -6,6 +6,4 @@ public void SetLoggingLevel(string logEventLevel) => Extensions.LoggingLevelSwitch.MinimumLevel = Extensions.GetLogEventLevel(logEventLevel); } -public class LoggingService : ILoggingService -{ -} \ No newline at end of file +public class LoggingService : ILoggingService; \ No newline at end of file diff --git a/src/Genocs.OpenTelemetry/Configurations/AzureOptions.cs b/src/Genocs.OpenTelemetry/Configurations/AzureOptions.cs index f54652d1..8b3dcbcb 100644 --- a/src/Genocs.OpenTelemetry/Configurations/AzureOptions.cs +++ b/src/Genocs.OpenTelemetry/Configurations/AzureOptions.cs @@ -1,7 +1,7 @@ namespace Genocs.GnxOpenTelemetry.Configurations; /// -/// ConsoleOptions Settings. +/// Azure configuration Settings. /// public class AzureOptions { diff --git a/src/Genocs.OpenTelemetry/Configurations/ConsoleOptions.cs b/src/Genocs.OpenTelemetry/Configurations/ConsoleOptions.cs index b20a9aae..92cfb8cd 100644 --- a/src/Genocs.OpenTelemetry/Configurations/ConsoleOptions.cs +++ b/src/Genocs.OpenTelemetry/Configurations/ConsoleOptions.cs @@ -1,7 +1,7 @@ namespace Genocs.GnxOpenTelemetry.Configurations; /// -/// ConsoleOptions Settings. +/// Console Section Settings. /// public class ConsoleOptions { diff --git a/src/Genocs.OpenTelemetry/Extensions.cs b/src/Genocs.OpenTelemetry/Extensions.cs index 81f4ca5a..32b99a1b 100644 --- a/src/Genocs.OpenTelemetry/Extensions.cs +++ b/src/Genocs.OpenTelemetry/Extensions.cs @@ -15,8 +15,7 @@ namespace Genocs.GnxOpenTelemetry; public static class OpenTelemetryExtensions { - public static IGenocsBuilder AddOpenTelemetry( - this IGenocsBuilder builder) + public static IGenocsBuilder AddOpenTelemetry(this IGenocsBuilder builder) { AppOptions appOptions = builder.GetOptions(AppOptions.Position) ?? throw new GenocsException.InvalidConfigurationException("app config section is missing. AddOpenTelemetry requires those configuration."); diff --git a/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj b/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj index 8f2ce300..b1cc1415 100644 --- a/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj +++ b/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj @@ -19,23 +19,16 @@ - - - - - - - diff --git a/src/Genocs.WebApi.CQRS/Genocs.WebApi.CQRS.csproj b/src/Genocs.WebApi.CQRS/Genocs.WebApi.CQRS.csproj index 8889331e..36210a9d 100644 --- a/src/Genocs.WebApi.CQRS/Genocs.WebApi.CQRS.csproj +++ b/src/Genocs.WebApi.CQRS/Genocs.WebApi.CQRS.csproj @@ -18,13 +18,11 @@
- - diff --git a/src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj b/src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj index e9490776..088306e5 100644 --- a/src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj +++ b/src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj @@ -10,7 +10,6 @@ - @@ -23,7 +22,6 @@ - diff --git a/src/apps/api-gateway/APIGateway.WebApi/Startup.cs b/src/apps/api-gateway/APIGateway.WebApi/Startup.cs index 1a8285e0..f41f3643 100644 --- a/src/apps/api-gateway/APIGateway.WebApi/Startup.cs +++ b/src/apps/api-gateway/APIGateway.WebApi/Startup.cs @@ -51,7 +51,8 @@ private async Task ConfigureServicesAsync(IServiceCollection services) .Build(); services.AddReverseProxy() - .LoadFromDatabase(Configuration); + .LoadFromConfig(Configuration.GetSection("ReverseProxy")); + //.LoadFromDatabase(Configuration); //services.AddAuthorization(options => //{ diff --git a/src/apps/api-gateway/APIGateway.WebApi/appsettings.json b/src/apps/api-gateway/APIGateway.WebApi/appsettings.json index 95add4f8..8ed0c15e 100644 --- a/src/apps/api-gateway/APIGateway.WebApi/appsettings.json +++ b/src/apps/api-gateway/APIGateway.WebApi/appsettings.json @@ -8,7 +8,7 @@ "displayVersion": true }, "consul": { - "enabled": true, + "enabled": false, "url": "http://localhost:8500", "service": "api-gateway", "address": "docker.for.mac.localhost", @@ -20,7 +20,7 @@ "requestRetries": 3 }, "fabio": { - "enabled": true, + "enabled": false, "url": "http://localhost:9999", "service": "api-gateway", "requestRetries": 3 diff --git a/src/apps/identity/Identities.WebApi/Identities.WebApi.csproj b/src/apps/identity/Identities.WebApi/Identities.WebApi.csproj index fdc3956e..3ed656d4 100644 --- a/src/apps/identity/Identities.WebApi/Identities.WebApi.csproj +++ b/src/apps/identity/Identities.WebApi/Identities.WebApi.csproj @@ -11,10 +11,12 @@ + + diff --git a/src/apps/orders/Orders.WebApi/appsettings.json b/src/apps/orders/Orders.WebApi/appsettings.json index 024b63f3..18907c4f 100644 --- a/src/apps/orders/Orders.WebApi/appsettings.json +++ b/src/apps/orders/Orders.WebApi/appsettings.json @@ -8,7 +8,7 @@ "displayVersion": true }, "consul": { - "enabled": true, + "enabled": false, "url": "http://localhost:8500", "service": "orders-service", "address": "docker.for.mac.localhost", @@ -20,13 +20,13 @@ "requestRetries": 3 }, "fabio": { - "enabled": true, + "enabled": false, "url": "http://localhost:9999", "service": "orders-service", "requestRetries": 3 }, "httpClient": { - "type": "fabio", + "type": "", "retries": 3, "services": { "products": "products-service" diff --git a/src/apps/products/Products.WebApi/Products.WebApi.csproj b/src/apps/products/Products.WebApi/Products.WebApi.csproj index 9c0c6311..ee36731b 100644 --- a/src/apps/products/Products.WebApi/Products.WebApi.csproj +++ b/src/apps/products/Products.WebApi/Products.WebApi.csproj @@ -12,7 +12,6 @@ - @@ -32,7 +31,6 @@ - @@ -51,4 +49,8 @@ + + + + diff --git a/src/apps/products/Products.WebApi/appsettings.json b/src/apps/products/Products.WebApi/appsettings.json index 03cfeee9..de9690c7 100644 --- a/src/apps/products/Products.WebApi/appsettings.json +++ b/src/apps/products/Products.WebApi/appsettings.json @@ -8,7 +8,7 @@ "displayVersion": true }, "consul": { - "enabled": true, + "enabled": false, "url": "http://localhost:8500", "service": "products-service", "address": "docker.for.mac.localhost", @@ -20,13 +20,13 @@ "requestRetries": 3 }, "fabio": { - "enabled": true, + "enabled": false, "url": "http://localhost:9999", "service": "products-service", "requestRetries": 3 }, "httpClient": { - "type": "fabio", + "type": "", "retries": 3, "services": { }, diff --git a/src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj b/src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj index 08053fb3..8947c032 100644 --- a/src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj +++ b/src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj @@ -13,7 +13,6 @@ - @@ -34,7 +33,6 @@ - @@ -57,4 +55,8 @@ + + + + \ No newline at end of file From 9127613cef60a9028c085a62f618b6e8e01a26b1 Mon Sep 17 00:00:00 2001 From: Nocco Giovanni Emanuele Date: Tue, 31 Dec 2024 13:50:52 +0100 Subject: [PATCH 8/8] Update Genocs.Core and related package references to use version 7.2.* --- README.md | 24 +++++++++---- src/Genocs.Auth/Genocs.Auth.csproj | 2 +- .../Genocs.Core.Demo.Contracts.csproj | 2 +- .../Genocs.Core.Demo.Domain.csproj | 4 +-- .../Genocs.Core.Demo.WebApi.csproj | 18 +++++----- .../Genocs.Core.Demo.Worker.csproj | 7 ++-- src/Genocs.Core/Genocs.Core.csproj | 4 +-- .../Genocs.Discovery.Consul.csproj | 2 +- .../Genocs.HTTP.RestEase.csproj | 2 +- src/Genocs.HTTP/Genocs.HTTP.csproj | 2 +- .../Genocs.LoadBalancing.Fabio.csproj | 2 +- src/Genocs.Logging/Genocs.Logging.csproj | 4 +-- src/Genocs.Logging/Startup.cs | 11 ++++-- ...enocs.MessageBrokers.Outbox.MongoDB.csproj | 4 +-- .../Genocs.MessageBrokers.Outbox.csproj | 2 +- .../Genocs.MessageBrokers.RabbitMQ.csproj | 2 +- .../Genocs.MessageBrokers.csproj | 2 +- src/Genocs.Metrics/Genocs.Metrics.csproj | 2 +- .../Genocs.Monitoring.csproj | 6 ++-- .../Genocs.OpenTelemetry.csproj | 2 +- ...enocs.Persistence.MongoDB.UnitTests.csproj | 2 +- .../Genocs.Persistence.MongoDb.csproj | 2 +- .../Genocs.Persistence.Redis.csproj | 2 +- .../Genocs.QueryBuilder.UnitTests.csproj | 4 +-- .../Genocs.Secrets.AzureKeyVault.csproj | 2 +- .../Genocs.Secrets.Vault.csproj | 2 +- src/Genocs.Security/Genocs.Security.csproj | 2 +- .../Genocs.ServiceBusAzure.csproj | 2 +- .../Genocs.Tracing.Jaeger.RabbitMQ.csproj | 4 +-- src/Genocs.Tracing/Genocs.Tracing.csproj | 6 ++-- .../Genocs.WebApi.CQRS.csproj | 2 +- .../Genocs.WebApi.Security.csproj | 2 +- .../Genocs.WebApi.Swagger.csproj | 2 +- src/Genocs.WebApi/Genocs.WebApi.csproj | 2 +- .../APIGateway.WebApi.csproj | 18 +++++----- .../Identities.Application.csproj | 22 ++++++------ .../Identities.WebApi.csproj | 4 +-- .../orders/Orders.WebApi/Orders.WebApi.csproj | 32 ++++++++--------- .../Products.WebApi/Products.WebApi.csproj | 34 ++++++++---------- .../SignalR.WebApi/SignalR.WebApi.csproj | 36 +++++++++---------- 40 files changed, 146 insertions(+), 140 deletions(-) diff --git a/README.md b/README.md index 9d7c10b9..5f55d748 100644 --- a/README.md +++ b/README.md @@ -153,8 +153,10 @@ Inside the file you can find: - vault (Hashicorp) -> ** NOTE** +> **NOTE** +> > The commands above allows to setup infrastructure components, this means you can find all the containers inside the same network `genocs`. +> > Whenever possible the data are persisted on the host machine by means of volumens, so you can restart the containers without losing data. @@ -191,6 +193,11 @@ You can setup the application inside a Kubernetes cluster. Check the repo [enterprise-containers](https://github.com/Genocs/enterprise-containers) to setup a Kubernetes cluster. There you can find scripts, configuration files and documentation to setup a cluster from scratch. +## ***Aspire Integration*** + +SOON :rocket: + + ## Support Use [**api-workbench**](./api-workbench.rest) inside Visual Studio code with [REST Client](https://marketplace.visualstudio.com/items?itemName=humao.rest-client) plugin @@ -234,7 +241,12 @@ Use [**api-workbench**](./api-workbench.rest) inside Visual Studio code with [RE }, "logger": { "level": "information", - "excludePaths": [ "/", "/ping", "/metrics" ], + "excludePaths": [ + "/", + "/healthz", + "/alive", + "/metrics" + ], "excludeProperties": [ "api_key", "access_key", @@ -468,7 +480,7 @@ docker push genocs/demo-worker:latest ``` --- -## Enterprise Application +## **Enterprise Application** ### Application Components @@ -518,7 +530,7 @@ docker builder prune ``` -Following commands are useful to build and push the images one by one +Use following to build and push the images one by one ``` bash cd src/apps @@ -587,13 +599,13 @@ Here are a few ways by which you can support. - ☕ If you want to support this project in the long run, [consider buying me a coffee](https://www.buymeacoffee.com/genocs)! -[![buy-me-a-coffee](https://raw.githubusercontent.com/Genocs/blazor-template/main/assets/buy-me-a-coffee.png "buy-me-a-coffee")](https://www.buymeacoffee.com/genocs) +[![buy-me-a-coffee](https://raw.githubusercontent.com/Genocs/genocs-library/main/assets/buy-me-a-coffee.png "buy-me-a-coffee")](https://www.buymeacoffee.com/genocs) ## Code Contributors This project exists thanks to all the people who contribute. [Submit your PR and join the team!](CONTRIBUTING.md) -[![genocs contributors](https://contrib.rocks/image?repo=Genocs/blazor-template "genocs contributors")](https://github.com/genocs/blazor-template/graphs/contributors) +[![genocs contributors](https://contrib.rocks/image?repo=Genocs/genocs-library "genocs contributors")](https://github.com/genocs/genocs-library/graphs/contributors) ## Financial Contributors diff --git a/src/Genocs.Auth/Genocs.Auth.csproj b/src/Genocs.Auth/Genocs.Auth.csproj index 33fa9e03..3ed166d8 100644 --- a/src/Genocs.Auth/Genocs.Auth.csproj +++ b/src/Genocs.Auth/Genocs.Auth.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.Core.Demo.Contracts/Genocs.Core.Demo.Contracts.csproj b/src/Genocs.Core.Demo.Contracts/Genocs.Core.Demo.Contracts.csproj index a0048946..6949e81d 100644 --- a/src/Genocs.Core.Demo.Contracts/Genocs.Core.Demo.Contracts.csproj +++ b/src/Genocs.Core.Demo.Contracts/Genocs.Core.Demo.Contracts.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Genocs.Core.Demo.Domain/Genocs.Core.Demo.Domain.csproj b/src/Genocs.Core.Demo.Domain/Genocs.Core.Demo.Domain.csproj index c5014b73..f038f127 100644 --- a/src/Genocs.Core.Demo.Domain/Genocs.Core.Demo.Domain.csproj +++ b/src/Genocs.Core.Demo.Domain/Genocs.Core.Demo.Domain.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/src/Genocs.Core.Demo.WebApi/Genocs.Core.Demo.WebApi.csproj b/src/Genocs.Core.Demo.WebApi/Genocs.Core.Demo.WebApi.csproj index 6ceed4f4..5a82c70d 100644 --- a/src/Genocs.Core.Demo.WebApi/Genocs.Core.Demo.WebApi.csproj +++ b/src/Genocs.Core.Demo.WebApi/Genocs.Core.Demo.WebApi.csproj @@ -20,15 +20,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj b/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj index f32f3aac..b3271537 100644 --- a/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj +++ b/src/Genocs.Core.Demo.Worker/Genocs.Core.Demo.Worker.csproj @@ -14,9 +14,9 @@ - - - + + + @@ -29,7 +29,6 @@ - diff --git a/src/Genocs.Core/Genocs.Core.csproj b/src/Genocs.Core/Genocs.Core.csproj index b4d32c18..648c8e46 100644 --- a/src/Genocs.Core/Genocs.Core.csproj +++ b/src/Genocs.Core/Genocs.Core.csproj @@ -22,12 +22,12 @@ - + - + diff --git a/src/Genocs.Discovery.Consul/Genocs.Discovery.Consul.csproj b/src/Genocs.Discovery.Consul/Genocs.Discovery.Consul.csproj index 97afae40..98b96f58 100644 --- a/src/Genocs.Discovery.Consul/Genocs.Discovery.Consul.csproj +++ b/src/Genocs.Discovery.Consul/Genocs.Discovery.Consul.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.HTTP.RestEase/Genocs.HTTP.RestEase.csproj b/src/Genocs.HTTP.RestEase/Genocs.HTTP.RestEase.csproj index d7c3ccb3..f6a2abb1 100644 --- a/src/Genocs.HTTP.RestEase/Genocs.HTTP.RestEase.csproj +++ b/src/Genocs.HTTP.RestEase/Genocs.HTTP.RestEase.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.HTTP/Genocs.HTTP.csproj b/src/Genocs.HTTP/Genocs.HTTP.csproj index b8e6e49e..439254d0 100644 --- a/src/Genocs.HTTP/Genocs.HTTP.csproj +++ b/src/Genocs.HTTP/Genocs.HTTP.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.LoadBalancing.Fabio/Genocs.LoadBalancing.Fabio.csproj b/src/Genocs.LoadBalancing.Fabio/Genocs.LoadBalancing.Fabio.csproj index bca8ca8a..b9d556b5 100644 --- a/src/Genocs.LoadBalancing.Fabio/Genocs.LoadBalancing.Fabio.csproj +++ b/src/Genocs.LoadBalancing.Fabio/Genocs.LoadBalancing.Fabio.csproj @@ -22,6 +22,6 @@ - + diff --git a/src/Genocs.Logging/Genocs.Logging.csproj b/src/Genocs.Logging/Genocs.Logging.csproj index f71c85ec..a9afbaae 100644 --- a/src/Genocs.Logging/Genocs.Logging.csproj +++ b/src/Genocs.Logging/Genocs.Logging.csproj @@ -22,7 +22,7 @@ - + @@ -43,7 +43,7 @@ - + diff --git a/src/Genocs.Logging/Startup.cs b/src/Genocs.Logging/Startup.cs index d12034a6..dc435b4c 100644 --- a/src/Genocs.Logging/Startup.cs +++ b/src/Genocs.Logging/Startup.cs @@ -19,8 +19,15 @@ public static void EnsureInitialized() { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() - .MinimumLevel.Override("Microsoft", LogEventLevel.Information) - .MinimumLevel.Override("MassTransit", LogEventLevel.Information) + .MinimumLevel.Override("Microsoft", LogEventLevel.Debug) + .MinimumLevel.Override("MassTransit", LogEventLevel.Debug) + .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Debug) + .MinimumLevel.Override("System", LogEventLevel.Debug) + .MinimumLevel.Override("Microsoft.AspNetCore", LogEventLevel.Debug) + .MinimumLevel.Override("Microsoft.AspNetCore.Hosting", LogEventLevel.Debug) + .MinimumLevel.Override("Microsoft.AspNetCore.Routing", LogEventLevel.Debug) + .MinimumLevel.Override("Microsoft.AspNetCore.Http", LogEventLevel.Debug) + .MinimumLevel.Override("Microsoft.AspNetCore.Mvc", LogEventLevel.Debug) .Enrich.FromLogContext() .WriteTo.Console() .CreateLogger(); diff --git a/src/Genocs.MessageBrokers.Outbox.MongoDB/Genocs.MessageBrokers.Outbox.MongoDB.csproj b/src/Genocs.MessageBrokers.Outbox.MongoDB/Genocs.MessageBrokers.Outbox.MongoDB.csproj index 3720be9e..4e15c94c 100644 --- a/src/Genocs.MessageBrokers.Outbox.MongoDB/Genocs.MessageBrokers.Outbox.MongoDB.csproj +++ b/src/Genocs.MessageBrokers.Outbox.MongoDB/Genocs.MessageBrokers.Outbox.MongoDB.csproj @@ -23,8 +23,8 @@ - - + + diff --git a/src/Genocs.MessageBrokers.Outbox/Genocs.MessageBrokers.Outbox.csproj b/src/Genocs.MessageBrokers.Outbox/Genocs.MessageBrokers.Outbox.csproj index 4de5ccb8..5feaf6e3 100644 --- a/src/Genocs.MessageBrokers.Outbox/Genocs.MessageBrokers.Outbox.csproj +++ b/src/Genocs.MessageBrokers.Outbox/Genocs.MessageBrokers.Outbox.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.MessageBrokers.RabbitMQ/Genocs.MessageBrokers.RabbitMQ.csproj b/src/Genocs.MessageBrokers.RabbitMQ/Genocs.MessageBrokers.RabbitMQ.csproj index e2b3fe1e..515b3e7a 100644 --- a/src/Genocs.MessageBrokers.RabbitMQ/Genocs.MessageBrokers.RabbitMQ.csproj +++ b/src/Genocs.MessageBrokers.RabbitMQ/Genocs.MessageBrokers.RabbitMQ.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.MessageBrokers/Genocs.MessageBrokers.csproj b/src/Genocs.MessageBrokers/Genocs.MessageBrokers.csproj index fc874807..38bc5ae2 100644 --- a/src/Genocs.MessageBrokers/Genocs.MessageBrokers.csproj +++ b/src/Genocs.MessageBrokers/Genocs.MessageBrokers.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.Metrics/Genocs.Metrics.csproj b/src/Genocs.Metrics/Genocs.Metrics.csproj index 8422e7ae..ec461269 100644 --- a/src/Genocs.Metrics/Genocs.Metrics.csproj +++ b/src/Genocs.Metrics/Genocs.Metrics.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.Monitoring/Genocs.Monitoring.csproj b/src/Genocs.Monitoring/Genocs.Monitoring.csproj index d20f92a3..3e84c837 100644 --- a/src/Genocs.Monitoring/Genocs.Monitoring.csproj +++ b/src/Genocs.Monitoring/Genocs.Monitoring.csproj @@ -40,9 +40,9 @@ - - - + + + diff --git a/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj b/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj index b1cc1415..fb1287a4 100644 --- a/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj +++ b/src/Genocs.OpenTelemetry/Genocs.OpenTelemetry.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.Persistence.MongoDb.UnitTests/Genocs.Persistence.MongoDB.UnitTests.csproj b/src/Genocs.Persistence.MongoDb.UnitTests/Genocs.Persistence.MongoDB.UnitTests.csproj index b9f15c88..3f91b258 100644 --- a/src/Genocs.Persistence.MongoDb.UnitTests/Genocs.Persistence.MongoDB.UnitTests.csproj +++ b/src/Genocs.Persistence.MongoDb.UnitTests/Genocs.Persistence.MongoDB.UnitTests.csproj @@ -24,7 +24,7 @@ - + diff --git a/src/Genocs.Persistence.MongoDb/Genocs.Persistence.MongoDb.csproj b/src/Genocs.Persistence.MongoDb/Genocs.Persistence.MongoDb.csproj index 21194d2f..ccde14b7 100644 --- a/src/Genocs.Persistence.MongoDb/Genocs.Persistence.MongoDb.csproj +++ b/src/Genocs.Persistence.MongoDb/Genocs.Persistence.MongoDb.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.Persistence.Redis/Genocs.Persistence.Redis.csproj b/src/Genocs.Persistence.Redis/Genocs.Persistence.Redis.csproj index f45b3e31..65bc940c 100644 --- a/src/Genocs.Persistence.Redis/Genocs.Persistence.Redis.csproj +++ b/src/Genocs.Persistence.Redis/Genocs.Persistence.Redis.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.QueryBuilder.UnitTests/Genocs.QueryBuilder.UnitTests.csproj b/src/Genocs.QueryBuilder.UnitTests/Genocs.QueryBuilder.UnitTests.csproj index 1eef8226..faff4f15 100644 --- a/src/Genocs.QueryBuilder.UnitTests/Genocs.QueryBuilder.UnitTests.csproj +++ b/src/Genocs.QueryBuilder.UnitTests/Genocs.QueryBuilder.UnitTests.csproj @@ -31,8 +31,8 @@ - - + + diff --git a/src/Genocs.Secrets.AzureKeyVault/Genocs.Secrets.AzureKeyVault.csproj b/src/Genocs.Secrets.AzureKeyVault/Genocs.Secrets.AzureKeyVault.csproj index 0cbc50fc..3387f1d0 100644 --- a/src/Genocs.Secrets.AzureKeyVault/Genocs.Secrets.AzureKeyVault.csproj +++ b/src/Genocs.Secrets.AzureKeyVault/Genocs.Secrets.AzureKeyVault.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.Secrets.Vault/Genocs.Secrets.Vault.csproj b/src/Genocs.Secrets.Vault/Genocs.Secrets.Vault.csproj index 108e258c..8e651515 100644 --- a/src/Genocs.Secrets.Vault/Genocs.Secrets.Vault.csproj +++ b/src/Genocs.Secrets.Vault/Genocs.Secrets.Vault.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.Security/Genocs.Security.csproj b/src/Genocs.Security/Genocs.Security.csproj index 3495f00b..935df786 100644 --- a/src/Genocs.Security/Genocs.Security.csproj +++ b/src/Genocs.Security/Genocs.Security.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.ServiceBusAzure/Genocs.ServiceBusAzure.csproj b/src/Genocs.ServiceBusAzure/Genocs.ServiceBusAzure.csproj index 780969f4..e90bc4c0 100644 --- a/src/Genocs.ServiceBusAzure/Genocs.ServiceBusAzure.csproj +++ b/src/Genocs.ServiceBusAzure/Genocs.ServiceBusAzure.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.Tracing.Jaeger.RabbitMQ/Genocs.Tracing.Jaeger.RabbitMQ.csproj b/src/Genocs.Tracing.Jaeger.RabbitMQ/Genocs.Tracing.Jaeger.RabbitMQ.csproj index b9cdd996..fe642205 100644 --- a/src/Genocs.Tracing.Jaeger.RabbitMQ/Genocs.Tracing.Jaeger.RabbitMQ.csproj +++ b/src/Genocs.Tracing.Jaeger.RabbitMQ/Genocs.Tracing.Jaeger.RabbitMQ.csproj @@ -23,8 +23,8 @@ - - + + diff --git a/src/Genocs.Tracing/Genocs.Tracing.csproj b/src/Genocs.Tracing/Genocs.Tracing.csproj index f34ef4d6..d479fc3d 100644 --- a/src/Genocs.Tracing/Genocs.Tracing.csproj +++ b/src/Genocs.Tracing/Genocs.Tracing.csproj @@ -18,15 +18,13 @@ - - - - + + diff --git a/src/Genocs.WebApi.CQRS/Genocs.WebApi.CQRS.csproj b/src/Genocs.WebApi.CQRS/Genocs.WebApi.CQRS.csproj index 36210a9d..b00ac8e2 100644 --- a/src/Genocs.WebApi.CQRS/Genocs.WebApi.CQRS.csproj +++ b/src/Genocs.WebApi.CQRS/Genocs.WebApi.CQRS.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.WebApi.Security/Genocs.WebApi.Security.csproj b/src/Genocs.WebApi.Security/Genocs.WebApi.Security.csproj index 6811de61..6b7566b2 100644 --- a/src/Genocs.WebApi.Security/Genocs.WebApi.Security.csproj +++ b/src/Genocs.WebApi.Security/Genocs.WebApi.Security.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.WebApi.Swagger/Genocs.WebApi.Swagger.csproj b/src/Genocs.WebApi.Swagger/Genocs.WebApi.Swagger.csproj index cad19449..ee9bcbd0 100644 --- a/src/Genocs.WebApi.Swagger/Genocs.WebApi.Swagger.csproj +++ b/src/Genocs.WebApi.Swagger/Genocs.WebApi.Swagger.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/Genocs.WebApi/Genocs.WebApi.csproj b/src/Genocs.WebApi/Genocs.WebApi.csproj index e69f7aab..693ac148 100644 --- a/src/Genocs.WebApi/Genocs.WebApi.csproj +++ b/src/Genocs.WebApi/Genocs.WebApi.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj b/src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj index 088306e5..7b56d0da 100644 --- a/src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj +++ b/src/apps/api-gateway/APIGateway.WebApi/APIGateway.WebApi.csproj @@ -10,7 +10,6 @@ - @@ -21,15 +20,14 @@ - - - - - - - - - + + + + + + + + diff --git a/src/apps/identity/Identities.Application/Identities.Application.csproj b/src/apps/identity/Identities.Application/Identities.Application.csproj index 9989bb1c..25b1184d 100644 --- a/src/apps/identity/Identities.Application/Identities.Application.csproj +++ b/src/apps/identity/Identities.Application/Identities.Application.csproj @@ -23,17 +23,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/apps/identity/Identities.WebApi/Identities.WebApi.csproj b/src/apps/identity/Identities.WebApi/Identities.WebApi.csproj index 3ed656d4..d79a5931 100644 --- a/src/apps/identity/Identities.WebApi/Identities.WebApi.csproj +++ b/src/apps/identity/Identities.WebApi/Identities.WebApi.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/src/apps/orders/Orders.WebApi/Orders.WebApi.csproj b/src/apps/orders/Orders.WebApi/Orders.WebApi.csproj index 7c026a5f..a11d73dd 100644 --- a/src/apps/orders/Orders.WebApi/Orders.WebApi.csproj +++ b/src/apps/orders/Orders.WebApi/Orders.WebApi.csproj @@ -31,22 +31,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/src/apps/products/Products.WebApi/Products.WebApi.csproj b/src/apps/products/Products.WebApi/Products.WebApi.csproj index ee36731b..0a25fe23 100644 --- a/src/apps/products/Products.WebApi/Products.WebApi.csproj +++ b/src/apps/products/Products.WebApi/Products.WebApi.csproj @@ -29,28 +29,24 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - diff --git a/src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj b/src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj index 8947c032..2dfdf9cd 100644 --- a/src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj +++ b/src/apps/signalr/SignalR.WebApi/SignalR.WebApi.csproj @@ -30,22 +30,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + @@ -55,8 +55,4 @@ - - - - \ No newline at end of file