generator-codedesignplus 0.0.1-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENCE.md +13 -0
- package/README.md +454 -0
- package/generators/app/index.mjs +22 -0
- package/generators/microservice/core/aggregate.mjs +25 -0
- package/generators/microservice/core/appsettings.mjs +73 -0
- package/generators/microservice/core/asyncWorker.mjs +87 -0
- package/generators/microservice/core/command.mjs +54 -0
- package/generators/microservice/core/consumer.mjs +73 -0
- package/generators/microservice/core/controller.mjs +25 -0
- package/generators/microservice/core/core.mjs +98 -0
- package/generators/microservice/core/dataTransferObject.mjs +31 -0
- package/generators/microservice/core/domainEvent.mjs +36 -0
- package/generators/microservice/core/dotnet.mjs +56 -0
- package/generators/microservice/core/entity.mjs +29 -0
- package/generators/microservice/core/errors.mjs +37 -0
- package/generators/microservice/core/grpc.mjs +97 -0
- package/generators/microservice/core/microservice.mjs +212 -0
- package/generators/microservice/core/proto.mjs +61 -0
- package/generators/microservice/core/query.mjs +59 -0
- package/generators/microservice/core/repository.mjs +41 -0
- package/generators/microservice/core/utils.mjs +196 -0
- package/generators/microservice/core/valueObject.mjs +29 -0
- package/generators/microservice/core/xml.mjs +48 -0
- package/generators/microservice/index.mjs +38 -0
- package/generators/microservice/templates/aggregate/ItemAggregate.cs +9 -0
- package/generators/microservice/templates/command/ItemCommand.cs +12 -0
- package/generators/microservice/templates/command/ItemCommandHandler.cs +9 -0
- package/generators/microservice/templates/consumer/ItemHandler.cs +14 -0
- package/generators/microservice/templates/controller/ItemController.cs +8 -0
- package/generators/microservice/templates/data-transfer-object/ItemDto.cs +6 -0
- package/generators/microservice/templates/domain-event/ItemDomainEvent.cs +15 -0
- package/generators/microservice/templates/entity/ItemEntity.cs +6 -0
- package/generators/microservice/templates/errors/Error.cs +6 -0
- package/generators/microservice/templates/grpc/ItemService.cs +6 -0
- package/generators/microservice/templates/grpc/grpc.proto +22 -0
- package/generators/microservice/templates/microservice/.dockerignore +30 -0
- package/generators/microservice/templates/microservice/CodeDesignPlus.Net.Microservice.sln +155 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/CodeDesignPlus.Net.Microservice.Application.csproj +20 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Errors.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/AddProductToOrder/AddProductToOrderCommand.cs +17 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/AddProductToOrder/AddProductToOrderCommandHandler.cs +27 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CancelOrder/CancelOrderCommand.cs +13 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CancelOrder/CancelOrderCommandHandler.cs +24 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CompleteOrder/CompleteOrderCommand.cs +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CompleteOrder/CompleteOrderCommandHandler.cs +25 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CreateOrder/CreateOrderCommand.cs +32 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CreateOrder/CreateOrderCommandHandler.cs +24 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/RemoveProduct/RemoveProductCommand.cs +12 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/RemoveProduct/RemoveProductCommandHandler.cs +22 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommand.cs +14 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandHandler.cs +24 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/AddressDto.cs +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/ClientDto.cs +9 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/OrderDto.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/ProductDto.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/FindOrderById/FindOrderByIdQuery.cs +4 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/FindOrderById/FindOrderByIdQueryHandler.cs +23 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/GetAllOrders/GetAllOrdersQuery.cs +3 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/GetAllOrders/GetAllOrdersQueryHandler.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Setup/MapsterConfig.cs +26 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Startup.cs +15 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Usings.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/CodeDesignPlus.Net.Microservice.Domain.csproj +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/AddProductToOrderParams.cs +15 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/CancelOrderParams.cs +13 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/CompleteOrderParams.cs +12 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/RemoveProductFromOrderParams.cs +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/UpdateQuantityProductParams.cs +12 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCancelledDomainEvent.cs +21 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCompletedDomainEvent.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCreatedDomainEvent.cs +44 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductAddedToOrderDomainEvent.cs +20 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductQuantityUpdatedDomainEvent.cs +20 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductRemovedFromOrderDomainEvent.cs +18 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Entities/ProductEntity.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Enums/OrderStatus.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Errors.cs +28 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/OrderAggregate.cs +124 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Repositories/IOrderRepository.cs +14 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Startup.cs +12 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Usings.cs +11 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/ValueObjects/AddressValueObject.cs +30 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/ValueObjects/ClientValueObject.cs +27 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/CodeDesignPlus.Net.Microservice.Infrastructure.csproj +13 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Errors.cs +6 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Repositories/OrderRepository.cs +109 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Startup.cs +10 -0
- package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Usings.cs +15 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/CodeDesignPlus.Net.Microservice.AsyncWorker.csproj +31 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Program.cs +41 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Properties/launchSettings.json +15 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Usings.cs +10 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/appsettings.Development.json +2 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/appsettings.json +129 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj +36 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj.user +11 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Controllers/OrderController.cs +138 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Core/Mapster/MapsterConfig.cs +12 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Dockerfile +37 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Program.cs +52 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Properties/launchSettings.json +26 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Usings.cs +22 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/appsettings.Development.json +3 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/appsettings.json +86 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/CodeDesignPlus.Net.Microservice.gRpc.csproj +35 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/CodeDesignPlus.Net.Microservice.gRpc.csproj.user +9 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Core/Mapster/MapsterConfig.cs +13 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Program.cs +61 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Properties/launchSettings.json +23 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Protos/orders.proto +66 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Services/OrderService.cs +29 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Usings.cs +12 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/appsettings.Development.json +3 -0
- package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/appsettings.json +92 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj +35 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Properties/launchSettings.json +12 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Usings.cs +8 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/CodeDesignPlus.Net.Microservice.Rest.Test.csproj +36 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Controllers/OrderControllerTest.cs +337 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Properties/launchSettings.json +12 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Usings.cs +8 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/CodeDesignPlus.Net.Microservice.gRpc.Test.csproj +46 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Protos/orders.proto +65 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Services/OrdersServiceTest.cs +64 -0
- package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Usings.cs +7 -0
- package/generators/microservice/templates/microservice/tests/load/load-rest.js +63 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/CodeDesignPlus.Net.Microservice.Application.Test.csproj +34 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/AddProductToOrder/AddProductToOrderCommandHandlerTest.cs +98 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/AddProductToOrder/AddProductToOrderCommandTest.cs +84 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CancelOrder/CancelOrderCommandHandlerTest.cs +74 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CancelOrder/CancelOrderCommandTest.cs +43 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CompleteOrder/CompleteOrderCommandHandlerTest.cs +74 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CompleteOrder/CompleteOrderCommandTest.cs +32 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CreateOrder/CreateOrderCommandHandlerTest.cs +100 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CreateOrder/CreateOrderCommandTest.cs +122 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/RemoveProduct/RemoveProductCommandHandlerTest.cs +71 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/RemoveProduct/RemoveProductCommandTest.cs +33 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandHandlerTest.cs +82 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandTest.cs +51 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Queries/FindOrderById/FindOrderByIdQueryHandlerTest.cs +70 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Queries/GetAllOrders/GetAllOrdersQueryHandlerTest.cs +80 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Setup/MapsterConfigTest.cs +20 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Usings.cs +18 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj +38 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Usings.cs +9 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/CodeDesignPlus.Net.Microservice.Default.Test.csproj +35 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Usings.cs +6 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/AggregateTest.cs +37 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/CommandsTests.cs +29 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/DataTransferObjectTest.cs +47 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/DomainEventTest.cs +42 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/EntityTest.cs +25 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/ErrorsTest.cs +55 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/QueryTests.cs +29 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/StartupTest.cs +43 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/CodeDesignPlus.Net.Microservice.Domain.Test.csproj +38 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/DomainEvents/OrderCancelledDomainEventTest.cs +46 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/OrderAggregateTest.cs +518 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/Usings.cs +7 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/CodeDesignPlus.Net.Microservice.Infrastructure.Test.csproj +34 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/Repositories/OrderRepositoryTest.cs +259 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/Usings.cs +14 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/CodeDesignPlus.Net.Microservice.Rest.Test.csproj +40 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Controllers/OrderControllerTest.cs +189 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Core/Mapster/MapsterConfigTest.cs +19 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Usings.cs +14 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/CodeDesignPlus.Net.Microservice.gRpc.Test.csproj +39 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Core/Mapster/MapsterConfigTest.cs +19 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Services/OrderServiceTest.cs +72 -0
- package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Usings.cs +15 -0
- package/generators/microservice/templates/microservice/tools/convert-crlf-to-lf.sh +6 -0
- package/generators/microservice/templates/microservice/tools/sonarqube/sonar.ps1 +18 -0
- package/generators/microservice/templates/microservice/tools/sonarqube/sonar.sh +18 -0
- package/generators/microservice/templates/microservice/tools/update-packages/update-packages.ps1 +10 -0
- package/generators/microservice/templates/microservice/tools/update-packages/update-packages.sh +11 -0
- package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.ps1 +10 -0
- package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.sh +11 -0
- package/generators/microservice/templates/microservice/tools/vault/config-vault.ps1 +178 -0
- package/generators/microservice/templates/microservice/tools/vault/config-vault.sh +152 -0
- package/generators/microservice/templates/others/MapsterConfig.cs +9 -0
- package/generators/microservice/templates/query/ItemQuery.cs +4 -0
- package/generators/microservice/templates/query/ItemQueryHandler.cs +9 -0
- package/generators/microservice/templates/repository/IItemRepository.cs +6 -0
- package/generators/microservice/templates/repository/ItemRepository.cs +7 -0
- package/generators/microservice/templates/value-object/ItemValueObject.cs +23 -0
- package/generators/microservice/types/aggregate.mjs +19 -0
- package/generators/microservice/types/appsettings.mjs +26 -0
- package/generators/microservice/types/base.mjs +24 -0
- package/generators/microservice/types/command.mjs +38 -0
- package/generators/microservice/types/consumer.mjs +21 -0
- package/generators/microservice/types/controller.mjs +20 -0
- package/generators/microservice/types/dataTransferObject.mjs +19 -0
- package/generators/microservice/types/domainEvents.mjs +22 -0
- package/generators/microservice/types/entity.mjs +21 -0
- package/generators/microservice/types/index.mjs +25 -0
- package/generators/microservice/types/proto.mjs +19 -0
- package/generators/microservice/types/query.mjs +38 -0
- package/generators/microservice/types/repository.mjs +21 -0
- package/generators/microservice/types/valueObject.mjs +23 -0
- package/package.json +70 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
|
2
|
+
|
|
3
|
+
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
|
|
4
|
+
USER app
|
|
5
|
+
WORKDIR /app
|
|
6
|
+
EXPOSE 8080
|
|
7
|
+
|
|
8
|
+
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
|
|
9
|
+
# Install clang/zlib1g-dev dependencies for publishing to native
|
|
10
|
+
RUN apt-get update \
|
|
11
|
+
&& apt-get install -y --no-install-recommends \
|
|
12
|
+
clang zlib1g-dev \
|
|
13
|
+
&& apt-get clean
|
|
14
|
+
|
|
15
|
+
ARG BUILD_CONFIGURATION=Release
|
|
16
|
+
WORKDIR /src
|
|
17
|
+
COPY ["domain/", "domain/"]
|
|
18
|
+
COPY ["entrypoints/CodeDesignPlus.Net.Microservice.Rest/", "entrypoints/CodeDesignPlus.Net.Microservice.Rest/"]
|
|
19
|
+
RUN dotnet restore "./entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj"
|
|
20
|
+
|
|
21
|
+
WORKDIR "/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest"
|
|
22
|
+
RUN dotnet build "./CodeDesignPlus.Net.Microservice.Rest.csproj" -c "$BUILD_CONFIGURATION" -o /app/build
|
|
23
|
+
|
|
24
|
+
FROM build AS publish
|
|
25
|
+
WORKDIR /src
|
|
26
|
+
ARG BUILD_CONFIGURATION=Release
|
|
27
|
+
RUN dotnet publish "./entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj" \
|
|
28
|
+
-c "$BUILD_CONFIGURATION" \
|
|
29
|
+
-o /app/publish /p:UseAppHost=true
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final
|
|
33
|
+
USER app
|
|
34
|
+
WORKDIR /app
|
|
35
|
+
EXPOSE 8080
|
|
36
|
+
COPY --from=publish /app/publish .
|
|
37
|
+
ENTRYPOINT ["dotnet", "CodeDesignPlus.Net.Microservice.Rest.dll"]
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
using CodeDesignPlus.Net.Microservice.Commons.EntryPoints.Rest.Middlewares;
|
|
2
|
+
using CodeDesignPlus.Net.Microservice.Commons.EntryPoints.Rest.Swagger;
|
|
3
|
+
using CodeDesignPlus.Net.Microservice.Commons.FluentValidation;
|
|
4
|
+
using CodeDesignPlus.Net.Microservice.Commons.MediatR;
|
|
5
|
+
using CodeDesignPlus.Net.Redis.Cache.Extensions;
|
|
6
|
+
using CodeDesignPlus.Net.Vault.Extensions;
|
|
7
|
+
|
|
8
|
+
var builder = WebApplication.CreateSlimBuilder(args);
|
|
9
|
+
|
|
10
|
+
Serilog.Debugging.SelfLog.Enable(Console.Error);
|
|
11
|
+
|
|
12
|
+
builder.Host.UseSerilog();
|
|
13
|
+
|
|
14
|
+
builder.Configuration.AddVault();
|
|
15
|
+
|
|
16
|
+
builder.Services.AddControllers();
|
|
17
|
+
|
|
18
|
+
builder.Services.AddEndpointsApiExplorer();
|
|
19
|
+
|
|
20
|
+
builder.Services.AddVault(builder.Configuration);
|
|
21
|
+
builder.Services.AddRedis(builder.Configuration);
|
|
22
|
+
builder.Services.AddMongo<CodeDesignPlus.Net.Microservice.Infrastructure.Startup>(builder.Configuration);
|
|
23
|
+
builder.Services.AddObservability(builder.Configuration, builder.Environment);
|
|
24
|
+
builder.Services.AddLogger(builder.Configuration);
|
|
25
|
+
builder.Services.AddRabbitMQ<CodeDesignPlus.Net.Microservice.Domain.Startup>(builder.Configuration);
|
|
26
|
+
builder.Services.AddMapster();
|
|
27
|
+
builder.Services.AddFluentValidation();
|
|
28
|
+
builder.Services.AddMediatR<CodeDesignPlus.Net.Microservice.Application.Startup>();
|
|
29
|
+
builder.Services.AddSecurity(builder.Configuration);
|
|
30
|
+
builder.Services.AddCoreSwagger<Program>(builder.Configuration);
|
|
31
|
+
builder.Services.AddCache(builder.Configuration);
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
var app = builder.Build();
|
|
35
|
+
|
|
36
|
+
// Configure the HTTP request pipeline.
|
|
37
|
+
app.UseCoreSwagger();
|
|
38
|
+
|
|
39
|
+
app.UseMiddleware<ExceptionMiddleware>();
|
|
40
|
+
|
|
41
|
+
app.UseHttpsRedirection();
|
|
42
|
+
|
|
43
|
+
app.UseAuth();
|
|
44
|
+
|
|
45
|
+
app.MapControllers().RequireAuthorization();
|
|
46
|
+
|
|
47
|
+
await app.RunAsync();
|
|
48
|
+
|
|
49
|
+
public partial class Program
|
|
50
|
+
{
|
|
51
|
+
protected Program() { }
|
|
52
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profiles": {
|
|
3
|
+
"http": {
|
|
4
|
+
"commandName": "Project",
|
|
5
|
+
"launchBrowser": true,
|
|
6
|
+
"launchUrl": "swagger",
|
|
7
|
+
"environmentVariables": {
|
|
8
|
+
"ASPNETCORE_ENVIRONMENT": "Development",
|
|
9
|
+
"VAULT_ROLE_ID": "vault_role_id",
|
|
10
|
+
"VAULT_SECRET_ID": "vault_secret_id",
|
|
11
|
+
},
|
|
12
|
+
"dotnetRunMessages": true,
|
|
13
|
+
"applicationUrl": "http://localhost:5175"
|
|
14
|
+
},
|
|
15
|
+
"Docker": {
|
|
16
|
+
"commandName": "Docker",
|
|
17
|
+
"launchBrowser": true,
|
|
18
|
+
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
|
|
19
|
+
"environmentVariables": {
|
|
20
|
+
"ASPNETCORE_HTTP_PORTS": "8080"
|
|
21
|
+
},
|
|
22
|
+
"publishAllPorts": true
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"$schema": "http://json.schemastore.org/launchsettings.json"
|
|
26
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
global using CodeDesignPlus.Microservice.Api.Dtos;
|
|
2
|
+
global using CodeDesignPlus.Net.Logger.Extensions;
|
|
3
|
+
global using CodeDesignPlus.Net.Mongo.Extensions;
|
|
4
|
+
global using CodeDesignPlus.Net.Observability.Extensions;
|
|
5
|
+
global using CodeDesignPlus.Net.RabbitMQ.Extensions;
|
|
6
|
+
global using CodeDesignPlus.Net.Redis.Extensions;
|
|
7
|
+
global using CodeDesignPlus.Net.Security.Extensions;
|
|
8
|
+
global using Mapster;
|
|
9
|
+
global using MapsterMapper;
|
|
10
|
+
global using MediatR;
|
|
11
|
+
global using Microsoft.AspNetCore.Mvc;
|
|
12
|
+
global using C = CodeDesignPlus.Net.Core.Abstractions.Models.Criteria;
|
|
13
|
+
global using CodeDesignPlus.Net.Serializers;
|
|
14
|
+
|
|
15
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Commands.AddProductToOrder;
|
|
16
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Commands.CancelOrder;
|
|
17
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Commands.CompleteOrder;
|
|
18
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Commands.CreateOrder;
|
|
19
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Commands.RemoveProduct;
|
|
20
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Commands.UpdateQuantityProduct;
|
|
21
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Queries.FindOrderById;
|
|
22
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Queries.GetAllOrders;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"AllowedHosts": "*",
|
|
3
|
+
"Core": {
|
|
4
|
+
"AppName": "ms-archetype",
|
|
5
|
+
"Version": "v1",
|
|
6
|
+
"Description": "Microservice Archetype Template",
|
|
7
|
+
"Business": "CodeDesignPlus",
|
|
8
|
+
"Contact": {
|
|
9
|
+
"Name": "CodeDesignPlus",
|
|
10
|
+
"Email": "codedesignplus@outlook.com"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"Security": {
|
|
14
|
+
"Authority": "https://codedesignplus.b2clogin.com/codedesignplus.onmicrosoft.com/B2C_1_CodeDeseignPlus/oauth2/v2.0/",
|
|
15
|
+
"IncludeErrorDetails": true,
|
|
16
|
+
"ValidateAudience": true,
|
|
17
|
+
"ValidateIssuer": true,
|
|
18
|
+
"ValidateLifetime": true,
|
|
19
|
+
"RequireHttpsMetadata": true,
|
|
20
|
+
"ValidIssuer": "https://codedesignplus.b2clogin.com/3461e311-a66e-46ab-afdf-2bbfb72a5cb0/v2.0/",
|
|
21
|
+
"ValidAudiences": [],
|
|
22
|
+
"Applications": []
|
|
23
|
+
},
|
|
24
|
+
"Redis": {
|
|
25
|
+
"Instances": {
|
|
26
|
+
"Core": {
|
|
27
|
+
"ConnectionString": "localhost:6379"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"RedisCache": {
|
|
32
|
+
"Enable": true,
|
|
33
|
+
"Expiration": "00:05:00"
|
|
34
|
+
},
|
|
35
|
+
"RabbitMQ": {
|
|
36
|
+
"Enable": true,
|
|
37
|
+
"Host": "localhost",
|
|
38
|
+
"Port": 5672,
|
|
39
|
+
"UserName": "user",
|
|
40
|
+
"Password": "pass",
|
|
41
|
+
"EnableDiagnostic": true
|
|
42
|
+
},
|
|
43
|
+
"Mongo": {
|
|
44
|
+
"Enable": true,
|
|
45
|
+
"Database": "db-ms-archetype",
|
|
46
|
+
"Diagnostic": {
|
|
47
|
+
"Enable": true,
|
|
48
|
+
"EnableCommandText": true
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
"Logger": {
|
|
52
|
+
"Enable": true,
|
|
53
|
+
"OTelEndpoint": "http://127.0.0.1:4317"
|
|
54
|
+
},
|
|
55
|
+
"Observability": {
|
|
56
|
+
"Enable": true,
|
|
57
|
+
"ServerOtel": "http://127.0.0.1:4317",
|
|
58
|
+
"Trace": {
|
|
59
|
+
"Enable": true,
|
|
60
|
+
"AspNetCore": true,
|
|
61
|
+
"GrpcClient": false,
|
|
62
|
+
"SqlClient": false,
|
|
63
|
+
"CodeDesignPlusSdk": true,
|
|
64
|
+
"Redis": true,
|
|
65
|
+
"Kafka": false
|
|
66
|
+
},
|
|
67
|
+
"Metrics": {
|
|
68
|
+
"Enable": true,
|
|
69
|
+
"AspNetCore": true
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"Vault": {
|
|
73
|
+
"Enable": true,
|
|
74
|
+
"Address": "http://127.0.0.1:8200",
|
|
75
|
+
"AppName": "ms-archetype",
|
|
76
|
+
"Solution": "archetype",
|
|
77
|
+
"Token": "root",
|
|
78
|
+
"Mongo": {
|
|
79
|
+
"Enable": true,
|
|
80
|
+
"TemplateConnectionString": "mongodb://{0}:{1}@localhost:27017"
|
|
81
|
+
},
|
|
82
|
+
"RabbitMQ": {
|
|
83
|
+
"Enable": true
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk.Web">
|
|
2
|
+
<PropertyGroup>
|
|
3
|
+
<TargetFramework>net9.0</TargetFramework>
|
|
4
|
+
<Nullable>enable</Nullable>
|
|
5
|
+
<ImplicitUsings>enable</ImplicitUsings>
|
|
6
|
+
</PropertyGroup>
|
|
7
|
+
<ItemGroup Label="Protos">
|
|
8
|
+
<Protobuf Include="Protos\orders.proto" GrpcServices="Server" />
|
|
9
|
+
</ItemGroup>
|
|
10
|
+
<ItemGroup>
|
|
11
|
+
<PackageReference Include="CodeDesignPlus.Net.Microservice.Commons" Version="0.5.0-beta.60" />
|
|
12
|
+
<PackageReference Include="CodeDesignPlus.Net.Vault" Version="0.5.0-beta.60" />
|
|
13
|
+
<PackageReference Include="Grpc.AspNetCore" Version="2.67.0" />
|
|
14
|
+
<PackageReference Include="Grpc.AspNetCore.Server.Reflection" Version="2.67.0" />
|
|
15
|
+
<PackageReference Include="Grpc.Tools" Version="2.68.1">
|
|
16
|
+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
17
|
+
<PrivateAssets>all</PrivateAssets>
|
|
18
|
+
</PackageReference>
|
|
19
|
+
</ItemGroup>
|
|
20
|
+
<ItemGroup>
|
|
21
|
+
<SonarQubeSetting Include="sonar.coverage.exclusions">
|
|
22
|
+
<Value>**/Program.cs</Value>
|
|
23
|
+
</SonarQubeSetting>
|
|
24
|
+
</ItemGroup>
|
|
25
|
+
<ItemGroup>
|
|
26
|
+
<ProjectReference Include="..\..\domain\CodeDesignPlus.Net.Microservice.Infrastructure\CodeDesignPlus.Net.Microservice.Infrastructure.csproj" />
|
|
27
|
+
<PackageReference Include="CodeDesignPlus.Net.Redis" Version="0.5.0-beta.60" />
|
|
28
|
+
<PackageReference Include="CodeDesignPlus.Net.RabbitMQ" Version="0.5.0-beta.60" />
|
|
29
|
+
<PackageReference Include="CodeDesignPlus.Net.Logger" Version="0.5.0-beta.60" />
|
|
30
|
+
<PackageReference Include="CodeDesignPlus.Net.Observability" Version="0.5.0-beta.60" />
|
|
31
|
+
<PackageReference Include="CodeDesignPlus.Net.Security" Version="0.5.0-beta.60" />
|
|
32
|
+
<PackageReference Include="CodeDesignPlus.Net.Exceptions" Version="0.5.0-beta.60" />
|
|
33
|
+
<PackageReference Include="CodeDesignPlus.Net.Redis.Cache" Version="0.5.0-beta.60" />
|
|
34
|
+
</ItemGroup>
|
|
35
|
+
</Project>
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
3
|
+
<PropertyGroup>
|
|
4
|
+
<ActiveDebugProfile>http</ActiveDebugProfile>
|
|
5
|
+
</PropertyGroup>
|
|
6
|
+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
|
7
|
+
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
|
|
8
|
+
</PropertyGroup>
|
|
9
|
+
</Project>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.gRpc.Core.Mapster;
|
|
2
|
+
|
|
3
|
+
public static class MapsterConfig
|
|
4
|
+
{
|
|
5
|
+
public static void Configure()
|
|
6
|
+
{
|
|
7
|
+
TypeAdapterConfig<Net.Core.Abstractions.Models.Criteria.Criteria, Net.Core.Abstractions.Models.Criteria.Criteria>.NewConfig().TwoWays();
|
|
8
|
+
TypeAdapterConfig<OrderDto, Order>.NewConfig().TwoWays();
|
|
9
|
+
|
|
10
|
+
TypeAdapterConfig<ClientDto, Client>.NewConfig().TwoWays();
|
|
11
|
+
TypeAdapterConfig<ProductDto, Product>.NewConfig().TwoWays();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
using CodeDesignPlus.Net.Logger.Extensions;
|
|
2
|
+
using CodeDesignPlus.Net.Microservice.Commons.EntryPoints.gRpc.Interceptors;
|
|
3
|
+
using CodeDesignPlus.Net.Microservice.Commons.FluentValidation;
|
|
4
|
+
using CodeDesignPlus.Net.Microservice.Commons.MediatR;
|
|
5
|
+
using CodeDesignPlus.Net.Microservice.gRpc.Services;
|
|
6
|
+
using CodeDesignPlus.Net.Mongo.Extensions;
|
|
7
|
+
using CodeDesignPlus.Net.Observability.Extensions;
|
|
8
|
+
using CodeDesignPlus.Net.RabbitMQ.Extensions;
|
|
9
|
+
using CodeDesignPlus.Net.Redis.Cache.Extensions;
|
|
10
|
+
using CodeDesignPlus.Net.Redis.Extensions;
|
|
11
|
+
using CodeDesignPlus.Net.Security.Extensions;
|
|
12
|
+
using CodeDesignPlus.Net.Vault.Extensions;
|
|
13
|
+
|
|
14
|
+
var builder = WebApplication.CreateBuilder(args);
|
|
15
|
+
|
|
16
|
+
Serilog.Debugging.SelfLog.Enable(Console.Error);
|
|
17
|
+
|
|
18
|
+
builder.Host.UseSerilog();
|
|
19
|
+
|
|
20
|
+
builder.Configuration.AddVault();
|
|
21
|
+
|
|
22
|
+
// Add services to the container.
|
|
23
|
+
builder.Services.AddGrpc(options =>
|
|
24
|
+
{
|
|
25
|
+
options.Interceptors.Add<ErrorInterceptor>();
|
|
26
|
+
});
|
|
27
|
+
builder.Services.AddGrpcReflection();
|
|
28
|
+
|
|
29
|
+
builder.Services.AddVault(builder.Configuration);
|
|
30
|
+
builder.Services.AddMapster();
|
|
31
|
+
builder.Services.AddMediatR<CodeDesignPlus.Net.Microservice.Application.Startup>();
|
|
32
|
+
builder.Services.AddFluentValidation();
|
|
33
|
+
|
|
34
|
+
builder.Services.AddMongo<CodeDesignPlus.Net.Microservice.Infrastructure.Startup>(builder.Configuration);
|
|
35
|
+
builder.Services.AddRedis(builder.Configuration);
|
|
36
|
+
builder.Services.AddRabbitMQ<CodeDesignPlus.Net.Microservice.Domain.Startup>(builder.Configuration);
|
|
37
|
+
builder.Services.AddSecurity(builder.Configuration);
|
|
38
|
+
builder.Services.AddObservability(builder.Configuration, builder.Environment);
|
|
39
|
+
builder.Services.AddLogger(builder.Configuration);
|
|
40
|
+
builder.Services.AddCache(builder.Configuration);
|
|
41
|
+
|
|
42
|
+
var app = builder.Build();
|
|
43
|
+
|
|
44
|
+
app.UseAuth();
|
|
45
|
+
|
|
46
|
+
// Configure the HTTP request pipeline.
|
|
47
|
+
app.MapGrpcService<OrdersService>().RequireAuthorization();
|
|
48
|
+
|
|
49
|
+
if (app.Environment.IsDevelopment())
|
|
50
|
+
{
|
|
51
|
+
app.MapGrpcReflectionService();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
app.MapGet("/", () => "Communication with gRPC endpoints must be made through a gRPC client. To learn how to create a client, visit: https://go.microsoft.com/fwlink/?linkid=2086909");
|
|
55
|
+
|
|
56
|
+
await app.RunAsync();
|
|
57
|
+
|
|
58
|
+
public partial class Program
|
|
59
|
+
{
|
|
60
|
+
protected Program() { }
|
|
61
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json.schemastore.org/launchsettings.json",
|
|
3
|
+
"profiles": {
|
|
4
|
+
"http": {
|
|
5
|
+
"commandName": "Project",
|
|
6
|
+
"dotnetRunMessages": true,
|
|
7
|
+
"launchBrowser": false,
|
|
8
|
+
"applicationUrl": "http://localhost:5103",
|
|
9
|
+
"environmentVariables": {
|
|
10
|
+
"ASPNETCORE_ENVIRONMENT": "Development"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"https": {
|
|
14
|
+
"commandName": "Project",
|
|
15
|
+
"dotnetRunMessages": true,
|
|
16
|
+
"launchBrowser": false,
|
|
17
|
+
"applicationUrl": "https://localhost:7263;http://localhost:5103",
|
|
18
|
+
"environmentVariables": {
|
|
19
|
+
"ASPNETCORE_ENVIRONMENT": "Development"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import "google/protobuf/wrappers.proto";
|
|
5
|
+
import "google/protobuf/empty.proto";
|
|
6
|
+
|
|
7
|
+
option csharp_namespace = "CodeDesignPlus.Net.Microservice.gRpc";
|
|
8
|
+
|
|
9
|
+
package orders;
|
|
10
|
+
|
|
11
|
+
enum OrderType {
|
|
12
|
+
NoneOrder = 0;
|
|
13
|
+
Asc = 1;
|
|
14
|
+
Desc = 2;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
enum OrderStatus
|
|
18
|
+
{
|
|
19
|
+
NoneStatus = 0;
|
|
20
|
+
Created = 1;
|
|
21
|
+
Pending = 2;
|
|
22
|
+
Completed = 3;
|
|
23
|
+
Cancelled= 4;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// The orders service definition.
|
|
27
|
+
service Orders {
|
|
28
|
+
rpc GetOrder (stream GetOrderRequest) returns (stream GetOrderResponse);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
message GetOrderRequest {
|
|
32
|
+
string Id = 1;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Types to response
|
|
36
|
+
message GetOrderResponse {
|
|
37
|
+
Order Order = 1;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
message Order {
|
|
41
|
+
string id = 1;
|
|
42
|
+
google.protobuf.Int64Value completed_at = 2;
|
|
43
|
+
google.protobuf.Int64Value cancelled_at = 3;
|
|
44
|
+
Client client = 4;
|
|
45
|
+
repeated Product products = 5;
|
|
46
|
+
OrderStatus status = 6;
|
|
47
|
+
google.protobuf.StringValue reason_for_cancellation = 7;
|
|
48
|
+
int64 created_at = 8;
|
|
49
|
+
string created_by = 9;
|
|
50
|
+
int64 updated_at = 10;
|
|
51
|
+
string updated_by = 11;
|
|
52
|
+
bool is_active = 12;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
message Client {
|
|
56
|
+
string id = 1;
|
|
57
|
+
string name = 2;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
message Product {
|
|
61
|
+
string id = 1;
|
|
62
|
+
string name = 2;
|
|
63
|
+
google.protobuf.StringValue description = 3;
|
|
64
|
+
double price = 4;
|
|
65
|
+
int32 quantity = 5;
|
|
66
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
|
|
2
|
+
namespace CodeDesignPlus.Net.Microservice.gRpc.Services;
|
|
3
|
+
|
|
4
|
+
public class OrdersService(IMediator mediator, IMapper mapper) : Orders.OrdersBase
|
|
5
|
+
{
|
|
6
|
+
public override async Task GetOrder(IAsyncStreamReader<GetOrderRequest> requestStream, IServerStreamWriter<GetOrderResponse> responseStream, ServerCallContext context)
|
|
7
|
+
{
|
|
8
|
+
await foreach (var request in requestStream.ReadAllAsync())
|
|
9
|
+
{
|
|
10
|
+
if (Guid.TryParse(request.Id, out Guid id))
|
|
11
|
+
{
|
|
12
|
+
var result = await mediator.Send(new FindOrderByIdQuery(id), context.CancellationToken);
|
|
13
|
+
|
|
14
|
+
var response = new GetOrderResponse()
|
|
15
|
+
{
|
|
16
|
+
Order = mapper.Map<OrderDto, Order>(result)
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
response.Order.Products.AddRange(result.Products.Select(x => mapper.Map<ProductDto, Product>(x)));
|
|
20
|
+
|
|
21
|
+
await responseStream.WriteAsync(response);
|
|
22
|
+
}
|
|
23
|
+
else
|
|
24
|
+
{
|
|
25
|
+
throw new RpcException(new Status(StatusCode.InvalidArgument, "Invalid Id"));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
global using CodeDesignPlus.Net.Exceptions;
|
|
2
|
+
global using FluentValidation;
|
|
3
|
+
global using Grpc.Core;
|
|
4
|
+
global using Mapster;
|
|
5
|
+
global using MapsterMapper;
|
|
6
|
+
global using MediatR;
|
|
7
|
+
global using CodeDesignPlus.Net.Exceptions.Models;
|
|
8
|
+
global using Grpc.Core.Interceptors;
|
|
9
|
+
global using CodeDesignPlus.Net.Serializers;
|
|
10
|
+
|
|
11
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.DataTransferObjects;
|
|
12
|
+
global using CodeDesignPlus.Net.Microservice.Application.Order.Queries.FindOrderById;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
{
|
|
2
|
+
"Kestrel": {
|
|
3
|
+
"Endpoints": {
|
|
4
|
+
"Http": {
|
|
5
|
+
"Url": "http://*:5000"
|
|
6
|
+
},
|
|
7
|
+
"Http2": {
|
|
8
|
+
"Url": "http://*:5001",
|
|
9
|
+
"Protocols": "Http2"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"Core": {
|
|
14
|
+
"AppName": "ms-archetype",
|
|
15
|
+
"Version": "v1",
|
|
16
|
+
"Description": "Microservice Archetype Template",
|
|
17
|
+
"Business": "CodeDesignPlus",
|
|
18
|
+
"Contact": {
|
|
19
|
+
"Name": "CodeDesignPlus",
|
|
20
|
+
"Email": "codedesignplus@outlook.com"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"Security": {
|
|
24
|
+
"Authority": "https://codedesignplus.b2clogin.com/codedesignplus.onmicrosoft.com/B2C_1_CodeDeseignPlus/oauth2/v2.0/",
|
|
25
|
+
"IncludeErrorDetails": true,
|
|
26
|
+
"ValidateAudience": true,
|
|
27
|
+
"ValidateIssuer": true,
|
|
28
|
+
"ValidateLifetime": true,
|
|
29
|
+
"RequireHttpsMetadata": true,
|
|
30
|
+
"ValidIssuer": "https://codedesignplus.b2clogin.com/3461e311-a66e-46ab-afdf-2bbfb72a5cb0/v2.0/",
|
|
31
|
+
"ValidAudiences": [],
|
|
32
|
+
"Applications": []
|
|
33
|
+
},
|
|
34
|
+
"Redis": {
|
|
35
|
+
"Instances": {
|
|
36
|
+
"Core": {
|
|
37
|
+
"ConnectionString": "localhost:6379"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"RedisCache": {
|
|
42
|
+
"Enable": true,
|
|
43
|
+
"Expiration": "00:05:00"
|
|
44
|
+
},
|
|
45
|
+
"RabbitMQ": {
|
|
46
|
+
"Enable": true,
|
|
47
|
+
"Host": "localhost",
|
|
48
|
+
"Port": 5672,
|
|
49
|
+
"UserName": "admin",
|
|
50
|
+
"Password": "password",
|
|
51
|
+
"EnableDiagnostic": true
|
|
52
|
+
},
|
|
53
|
+
"Mongo": {
|
|
54
|
+
"Enable": true,
|
|
55
|
+
"ConnectionString": "mongodb://localhost:27017",
|
|
56
|
+
"Database": "db-ms-archetype",
|
|
57
|
+
"Diagnostic": {
|
|
58
|
+
"Enable": true,
|
|
59
|
+
"EnableCommandText": true
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"Logger": {
|
|
63
|
+
"Enable": true,
|
|
64
|
+
"OTelEndpoint": "http://127.0.0.1:4317"
|
|
65
|
+
},
|
|
66
|
+
"Observability": {
|
|
67
|
+
"Enable": true,
|
|
68
|
+
"ServerOtel": "http://127.0.0.1:4317",
|
|
69
|
+
"Trace": {
|
|
70
|
+
"Enable": true,
|
|
71
|
+
"AspNetCore": true,
|
|
72
|
+
"GrpcClient": false,
|
|
73
|
+
"SqlClient": false,
|
|
74
|
+
"CodeDesignPlusSdk": true,
|
|
75
|
+
"Redis": true,
|
|
76
|
+
"Kafka": false
|
|
77
|
+
},
|
|
78
|
+
"Metrics": {
|
|
79
|
+
"Enable": true,
|
|
80
|
+
"AspNetCore": true
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"Vault": {
|
|
84
|
+
"Address": "http://127.0.0.1:8200",
|
|
85
|
+
"AppName": "ms-archetype",
|
|
86
|
+
"Solution": "archetype",
|
|
87
|
+
"Token": "root",
|
|
88
|
+
"Mongo": {
|
|
89
|
+
"TemplateConnectionString": "mongodb://{0}:{1}@localhost:27017"
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
2
|
+
<PropertyGroup>
|
|
3
|
+
<TargetFramework>net9.0</TargetFramework>
|
|
4
|
+
<ImplicitUsings>enable</ImplicitUsings>
|
|
5
|
+
<Nullable>enable</Nullable>
|
|
6
|
+
<IsPackable>false</IsPackable>
|
|
7
|
+
<IsTestProject>true</IsTestProject>
|
|
8
|
+
</PropertyGroup>
|
|
9
|
+
<ItemGroup>
|
|
10
|
+
<PackageReference Include="coverlet.collector" Version="6.0.3">
|
|
11
|
+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
12
|
+
<PrivateAssets>all</PrivateAssets>
|
|
13
|
+
</PackageReference>
|
|
14
|
+
<PackageReference Include="CodeDesignPlus.Net.xUnit.Microservice" Version="0.5.0-beta.60" />
|
|
15
|
+
<PackageReference Include="Ductus.FluentDocker.XUnit" Version="2.10.59" />
|
|
16
|
+
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="9.0.0" />
|
|
17
|
+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
|
|
18
|
+
<PackageReference Include="xunit" Version="2.9.2" />
|
|
19
|
+
<PackageReference Include="xunit.runner.visualstudio" Version="3.0.0">
|
|
20
|
+
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
21
|
+
<PrivateAssets>all</PrivateAssets>
|
|
22
|
+
</PackageReference>
|
|
23
|
+
</ItemGroup>
|
|
24
|
+
<ItemGroup>
|
|
25
|
+
<Content Update="xunit.runner.json">
|
|
26
|
+
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
|
27
|
+
</Content>
|
|
28
|
+
</ItemGroup>
|
|
29
|
+
<ItemGroup>
|
|
30
|
+
<ProjectReference Include="..\..\..\src\entrypoints\CodeDesignPlus.Net.Microservice.AsyncWorker\CodeDesignPlus.Net.Microservice.AsyncWorker.csproj" />
|
|
31
|
+
</ItemGroup>
|
|
32
|
+
<ItemGroup>
|
|
33
|
+
<Folder Include="Consumers\" />
|
|
34
|
+
</ItemGroup>
|
|
35
|
+
</Project>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"profiles": {
|
|
3
|
+
"CodeDesignPlus.Net.Microservice.AsyncWorker.Test": {
|
|
4
|
+
"commandName": "Project",
|
|
5
|
+
"launchBrowser": true,
|
|
6
|
+
"environmentVariables": {
|
|
7
|
+
"ASPNETCORE_ENVIRONMENT": "Development"
|
|
8
|
+
},
|
|
9
|
+
"applicationUrl": "https://localhost:54662;http://localhost:54663"
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
global using System;
|
|
2
|
+
global using CodeDesignPlus.Net.xUnit.Microservice.Server;
|
|
3
|
+
global using CodeDesignPlus.Net.PubSub.Abstractions;
|
|
4
|
+
global using Microsoft.Extensions.DependencyInjection;
|
|
5
|
+
global using Xunit;
|
|
6
|
+
global using CodeDesignPlus.Net.Serializers;
|
|
7
|
+
|
|
8
|
+
global using CodeDesignPlus.Net.Microservice.Domain.DomainEvents;
|