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,38 @@
|
|
|
1
|
+
import Generator from 'yeoman-generator';
|
|
2
|
+
import Core from './core/core.mjs';
|
|
3
|
+
import Utils from './core/utils.mjs';
|
|
4
|
+
import DotNet from './core/dotnet.mjs';
|
|
5
|
+
|
|
6
|
+
export default class extends Generator {
|
|
7
|
+
|
|
8
|
+
constructor(args, opts) {
|
|
9
|
+
super(args, opts);
|
|
10
|
+
|
|
11
|
+
this._utils = new Utils(this);
|
|
12
|
+
this._core = new Core(this._utils, this);
|
|
13
|
+
this._dotnet = new DotNet(this);
|
|
14
|
+
|
|
15
|
+
const [generator, answers] = this._core.arguments();
|
|
16
|
+
|
|
17
|
+
this._answers = answers;
|
|
18
|
+
this._generator = generator;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async prompting() {
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
async writing() {
|
|
25
|
+
if (!this.options.help) {
|
|
26
|
+
await this._utils.setPathBase();
|
|
27
|
+
|
|
28
|
+
const options = await this._utils.getOptions(this._answers);
|
|
29
|
+
|
|
30
|
+
await this._generator.generate(options);
|
|
31
|
+
|
|
32
|
+
if (this._generator.name === 'microservice'){
|
|
33
|
+
this._dotnet.removeProjects(options);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
namespace <%= ns %>;
|
|
2
|
+
|
|
3
|
+
public class <%= handler %>(<%= repository %> repository, IUserContext user, IMessage message) : IRequestHandler<<%= name %>>
|
|
4
|
+
{
|
|
5
|
+
public Task Handle(<%= name %> request, CancellationToken cancellationToken)
|
|
6
|
+
{
|
|
7
|
+
return Task.CompletedTask;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
using <%= solution %>.AsyncWorker.DomainEvents;
|
|
2
|
+
|
|
3
|
+
namespace <%= ns %>;
|
|
4
|
+
|
|
5
|
+
[QueueName("<%= aggregate %>", "<%= action %>")]
|
|
6
|
+
public class <%= name %>(ILogger<<%= name %>> logger) : IEventHandler<<%= domainEvent %>>
|
|
7
|
+
{
|
|
8
|
+
public Task HandleAsync(<%= domainEvent %> data, CancellationToken token)
|
|
9
|
+
{
|
|
10
|
+
logger.LogInformation("<%= domainEvent %> Recived, {Json}", JsonSerializer.Serialize(data));
|
|
11
|
+
|
|
12
|
+
return Task.CompletedTask;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
namespace <%= ns %>;
|
|
2
|
+
|
|
3
|
+
[EventKey<<%= entity %>>(1, "<%= name %>")]
|
|
4
|
+
public class <%= name %>(
|
|
5
|
+
Guid aggregateId,
|
|
6
|
+
Guid? eventId = null,
|
|
7
|
+
DateTime? occurredAt = null,
|
|
8
|
+
Dictionary<string, object>? metadata = null
|
|
9
|
+
) : DomainEvent(aggregateId, eventId, occurredAt, metadata)
|
|
10
|
+
{
|
|
11
|
+
public static <%= name %> Create(Guid aggregateId)
|
|
12
|
+
{
|
|
13
|
+
return new <%= name %>(aggregateId);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
syntax = "proto3";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import "google/protobuf/wrappers.proto";
|
|
5
|
+
import "google/protobuf/empty.proto";
|
|
6
|
+
|
|
7
|
+
option csharp_namespace = "<%= ns %>";
|
|
8
|
+
|
|
9
|
+
package <%= name %>;
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
service <%= name %> {
|
|
13
|
+
rpc Get<%= name %> (stream Get<%= name %>Request) returns (stream Get<%= name %>Response);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
message Get<%= name %>Request {
|
|
17
|
+
string Id = 1;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
message Get<%= name %>Response {
|
|
21
|
+
|
|
22
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
**/.classpath
|
|
2
|
+
**/.dockerignore
|
|
3
|
+
**/.env
|
|
4
|
+
**/.git
|
|
5
|
+
**/.gitignore
|
|
6
|
+
**/.project
|
|
7
|
+
**/.settings
|
|
8
|
+
**/.toolstarget
|
|
9
|
+
**/.vs
|
|
10
|
+
**/.vscode
|
|
11
|
+
**/*.*proj.user
|
|
12
|
+
**/*.dbmdl
|
|
13
|
+
**/*.jfm
|
|
14
|
+
**/azds.yaml
|
|
15
|
+
**/bin
|
|
16
|
+
**/charts
|
|
17
|
+
**/docker-compose*
|
|
18
|
+
**/Dockerfile*
|
|
19
|
+
**/node_modules
|
|
20
|
+
**/npm-debug.log
|
|
21
|
+
**/obj
|
|
22
|
+
**/secrets.dev.yaml
|
|
23
|
+
**/values.dev.yaml
|
|
24
|
+
LICENSE
|
|
25
|
+
README.md
|
|
26
|
+
!**/.gitignore
|
|
27
|
+
!.git/HEAD
|
|
28
|
+
!.git/config
|
|
29
|
+
!.git/packed-refs
|
|
30
|
+
!.git/refs/heads/**
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
|
|
2
|
+
Microsoft Visual Studio Solution File, Format Version 12.00
|
|
3
|
+
# Visual Studio Version 17
|
|
4
|
+
VisualStudioVersion = 17.8.34330.188
|
|
5
|
+
MinimumVisualStudioVersion = 10.0.40219.1
|
|
6
|
+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{88B0F225-25A1-4710-9346-9653BCEE0D97}"
|
|
7
|
+
EndProject
|
|
8
|
+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "entrypoints", "entrypoints", "{EBFDC2CC-2318-45BC-B619-8754439D2541}"
|
|
9
|
+
EndProject
|
|
10
|
+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "domain", "domain", "{D4373A94-4BBC-46D8-BC13-438F0B895467}"
|
|
11
|
+
EndProject
|
|
12
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Domain", "src\domain\CodeDesignPlus.Net.Microservice.Domain\CodeDesignPlus.Net.Microservice.Domain.csproj", "{99DF2DDB-D964-4E58-BEA0-DCD466C94DAF}"
|
|
13
|
+
EndProject
|
|
14
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Application", "src\domain\CodeDesignPlus.Net.Microservice.Application\CodeDesignPlus.Net.Microservice.Application.csproj", "{9AFB99ED-40CA-4992-A301-EEF8519C7240}"
|
|
15
|
+
EndProject
|
|
16
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Infrastructure", "src\domain\CodeDesignPlus.Net.Microservice.Infrastructure\CodeDesignPlus.Net.Microservice.Infrastructure.csproj", "{74D017BE-39B9-4D77-9E08-1DF7B8A4FE62}"
|
|
17
|
+
EndProject
|
|
18
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.AsyncWorker", "src\entrypoints\CodeDesignPlus.Net.Microservice.AsyncWorker\CodeDesignPlus.Net.Microservice.AsyncWorker.csproj", "{97F34780-1E43-49AA-9FCA-798815A69E77}"
|
|
19
|
+
EndProject
|
|
20
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.gRpc", "src\entrypoints\CodeDesignPlus.Net.Microservice.gRpc\CodeDesignPlus.Net.Microservice.gRpc.csproj", "{25D85FA0-461E-4BB1-A956-55DA4835122A}"
|
|
21
|
+
EndProject
|
|
22
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Rest", "src\entrypoints\CodeDesignPlus.Net.Microservice.Rest\CodeDesignPlus.Net.Microservice.Rest.csproj", "{4971758B-7FA0-489F-A5EF-5913385BB672}"
|
|
23
|
+
EndProject
|
|
24
|
+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8CA2014D-1EBA-4CC8-B303-13289F7F279C}"
|
|
25
|
+
EndProject
|
|
26
|
+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "load", "load", "{454F7422-1558-4ECB-9BA6-9C4BF69CF8C6}"
|
|
27
|
+
ProjectSection(SolutionItems) = preProject
|
|
28
|
+
tests\load\load-rest.js = tests\load\load-rest.js
|
|
29
|
+
EndProjectSection
|
|
30
|
+
EndProject
|
|
31
|
+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "integration", "integration", "{C19E3964-BDFB-41E0-B86C-CA90E3E5F335}"
|
|
32
|
+
EndProject
|
|
33
|
+
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unit", "unit", "{5769C6DB-68E8-4A8C-B43A-243401CDB4A2}"
|
|
34
|
+
EndProject
|
|
35
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Rest.Test", "tests\integration\CodeDesignPlus.Net.Microservice.Rest.Test\CodeDesignPlus.Net.Microservice.Rest.Test.csproj", "{5E9FE4C4-9055-4EAD-A600-BAE1A5D598ED}"
|
|
36
|
+
EndProject
|
|
37
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.gRpc.Test", "tests\integration\CodeDesignPlus.Net.Microservice.gRpc.Test\CodeDesignPlus.Net.Microservice.gRpc.Test.csproj", "{0C61268F-92C9-4A73-ACC7-398E70081AC7}"
|
|
38
|
+
EndProject
|
|
39
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.AsyncWorker.Test", "tests\integration\CodeDesignPlus.Net.Microservice.AsyncWorker.Test\CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj", "{32A68CA6-ACF6-4087-8A5C-F838FC8103CF}"
|
|
40
|
+
EndProject
|
|
41
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Application.Test", "tests\unit\CodeDesignPlus.Net.Microservice.Application.Test\CodeDesignPlus.Net.Microservice.Application.Test.csproj", "{92CD6EF4-50B4-41DA-AA90-BF6A67961833}"
|
|
42
|
+
EndProject
|
|
43
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.AsyncWorker.Test", "tests\unit\CodeDesignPlus.Net.Microservice.AsyncWorker.Test\CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj", "{6CF4ECEA-ECC1-4D34-A288-7168BE0D28BB}"
|
|
44
|
+
EndProject
|
|
45
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Default.Test", "tests\unit\CodeDesignPlus.Net.Microservice.Default.Test\CodeDesignPlus.Net.Microservice.Default.Test.csproj", "{231147C8-D789-49E0-B8D0-24F4FEA91C95}"
|
|
46
|
+
EndProject
|
|
47
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Domain.Test", "tests\unit\CodeDesignPlus.Net.Microservice.Domain.Test\CodeDesignPlus.Net.Microservice.Domain.Test.csproj", "{07011B4D-501F-490B-9174-A2434B071E79}"
|
|
48
|
+
EndProject
|
|
49
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.gRpc.Test", "tests\unit\CodeDesignPlus.Net.Microservice.gRpc.Test\CodeDesignPlus.Net.Microservice.gRpc.Test.csproj", "{223DF4AA-8E95-4624-B439-EA232409E903}"
|
|
50
|
+
EndProject
|
|
51
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Infrastructure.Test", "tests\unit\CodeDesignPlus.Net.Microservice.Infrastructure.Test\CodeDesignPlus.Net.Microservice.Infrastructure.Test.csproj", "{B190F800-89F0-43CD-B9BD-3EDD0C2E4B37}"
|
|
52
|
+
EndProject
|
|
53
|
+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CodeDesignPlus.Net.Microservice.Rest.Test", "tests\unit\CodeDesignPlus.Net.Microservice.Rest.Test\CodeDesignPlus.Net.Microservice.Rest.Test.csproj", "{86BB4D11-6C2F-44CA-B7DF-527FDFE79959}"
|
|
54
|
+
EndProject
|
|
55
|
+
Global
|
|
56
|
+
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
57
|
+
Debug|Any CPU = Debug|Any CPU
|
|
58
|
+
Release|Any CPU = Release|Any CPU
|
|
59
|
+
EndGlobalSection
|
|
60
|
+
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
61
|
+
{99DF2DDB-D964-4E58-BEA0-DCD466C94DAF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
62
|
+
{99DF2DDB-D964-4E58-BEA0-DCD466C94DAF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
63
|
+
{99DF2DDB-D964-4E58-BEA0-DCD466C94DAF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
64
|
+
{99DF2DDB-D964-4E58-BEA0-DCD466C94DAF}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
65
|
+
{9AFB99ED-40CA-4992-A301-EEF8519C7240}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
66
|
+
{9AFB99ED-40CA-4992-A301-EEF8519C7240}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
67
|
+
{9AFB99ED-40CA-4992-A301-EEF8519C7240}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
68
|
+
{9AFB99ED-40CA-4992-A301-EEF8519C7240}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
69
|
+
{74D017BE-39B9-4D77-9E08-1DF7B8A4FE62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
70
|
+
{74D017BE-39B9-4D77-9E08-1DF7B8A4FE62}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
71
|
+
{74D017BE-39B9-4D77-9E08-1DF7B8A4FE62}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
72
|
+
{74D017BE-39B9-4D77-9E08-1DF7B8A4FE62}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
73
|
+
{97F34780-1E43-49AA-9FCA-798815A69E77}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
74
|
+
{97F34780-1E43-49AA-9FCA-798815A69E77}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
75
|
+
{97F34780-1E43-49AA-9FCA-798815A69E77}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
76
|
+
{97F34780-1E43-49AA-9FCA-798815A69E77}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
77
|
+
{25D85FA0-461E-4BB1-A956-55DA4835122A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
78
|
+
{25D85FA0-461E-4BB1-A956-55DA4835122A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
79
|
+
{25D85FA0-461E-4BB1-A956-55DA4835122A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
80
|
+
{25D85FA0-461E-4BB1-A956-55DA4835122A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
81
|
+
{4971758B-7FA0-489F-A5EF-5913385BB672}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
82
|
+
{4971758B-7FA0-489F-A5EF-5913385BB672}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
83
|
+
{4971758B-7FA0-489F-A5EF-5913385BB672}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
84
|
+
{4971758B-7FA0-489F-A5EF-5913385BB672}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
85
|
+
{5E9FE4C4-9055-4EAD-A600-BAE1A5D598ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
86
|
+
{5E9FE4C4-9055-4EAD-A600-BAE1A5D598ED}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
87
|
+
{5E9FE4C4-9055-4EAD-A600-BAE1A5D598ED}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
88
|
+
{5E9FE4C4-9055-4EAD-A600-BAE1A5D598ED}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
89
|
+
{0C61268F-92C9-4A73-ACC7-398E70081AC7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
90
|
+
{0C61268F-92C9-4A73-ACC7-398E70081AC7}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
91
|
+
{0C61268F-92C9-4A73-ACC7-398E70081AC7}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
92
|
+
{0C61268F-92C9-4A73-ACC7-398E70081AC7}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
93
|
+
{32A68CA6-ACF6-4087-8A5C-F838FC8103CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
94
|
+
{32A68CA6-ACF6-4087-8A5C-F838FC8103CF}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
95
|
+
{32A68CA6-ACF6-4087-8A5C-F838FC8103CF}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
96
|
+
{32A68CA6-ACF6-4087-8A5C-F838FC8103CF}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
97
|
+
{92CD6EF4-50B4-41DA-AA90-BF6A67961833}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
98
|
+
{92CD6EF4-50B4-41DA-AA90-BF6A67961833}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
99
|
+
{92CD6EF4-50B4-41DA-AA90-BF6A67961833}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
100
|
+
{92CD6EF4-50B4-41DA-AA90-BF6A67961833}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
101
|
+
{6CF4ECEA-ECC1-4D34-A288-7168BE0D28BB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
102
|
+
{6CF4ECEA-ECC1-4D34-A288-7168BE0D28BB}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
103
|
+
{6CF4ECEA-ECC1-4D34-A288-7168BE0D28BB}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
104
|
+
{6CF4ECEA-ECC1-4D34-A288-7168BE0D28BB}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
105
|
+
{231147C8-D789-49E0-B8D0-24F4FEA91C95}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
106
|
+
{231147C8-D789-49E0-B8D0-24F4FEA91C95}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
107
|
+
{231147C8-D789-49E0-B8D0-24F4FEA91C95}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
108
|
+
{231147C8-D789-49E0-B8D0-24F4FEA91C95}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
109
|
+
{07011B4D-501F-490B-9174-A2434B071E79}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
110
|
+
{07011B4D-501F-490B-9174-A2434B071E79}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
111
|
+
{07011B4D-501F-490B-9174-A2434B071E79}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
112
|
+
{07011B4D-501F-490B-9174-A2434B071E79}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
113
|
+
{223DF4AA-8E95-4624-B439-EA232409E903}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
114
|
+
{223DF4AA-8E95-4624-B439-EA232409E903}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
115
|
+
{223DF4AA-8E95-4624-B439-EA232409E903}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
116
|
+
{223DF4AA-8E95-4624-B439-EA232409E903}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
117
|
+
{B190F800-89F0-43CD-B9BD-3EDD0C2E4B37}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
118
|
+
{B190F800-89F0-43CD-B9BD-3EDD0C2E4B37}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
119
|
+
{B190F800-89F0-43CD-B9BD-3EDD0C2E4B37}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
120
|
+
{B190F800-89F0-43CD-B9BD-3EDD0C2E4B37}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
121
|
+
{86BB4D11-6C2F-44CA-B7DF-527FDFE79959}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
122
|
+
{86BB4D11-6C2F-44CA-B7DF-527FDFE79959}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
123
|
+
{86BB4D11-6C2F-44CA-B7DF-527FDFE79959}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
124
|
+
{86BB4D11-6C2F-44CA-B7DF-527FDFE79959}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
125
|
+
EndGlobalSection
|
|
126
|
+
GlobalSection(SolutionProperties) = preSolution
|
|
127
|
+
HideSolutionNode = FALSE
|
|
128
|
+
EndGlobalSection
|
|
129
|
+
GlobalSection(NestedProjects) = preSolution
|
|
130
|
+
{EBFDC2CC-2318-45BC-B619-8754439D2541} = {88B0F225-25A1-4710-9346-9653BCEE0D97}
|
|
131
|
+
{D4373A94-4BBC-46D8-BC13-438F0B895467} = {88B0F225-25A1-4710-9346-9653BCEE0D97}
|
|
132
|
+
{99DF2DDB-D964-4E58-BEA0-DCD466C94DAF} = {D4373A94-4BBC-46D8-BC13-438F0B895467}
|
|
133
|
+
{9AFB99ED-40CA-4992-A301-EEF8519C7240} = {D4373A94-4BBC-46D8-BC13-438F0B895467}
|
|
134
|
+
{74D017BE-39B9-4D77-9E08-1DF7B8A4FE62} = {D4373A94-4BBC-46D8-BC13-438F0B895467}
|
|
135
|
+
{97F34780-1E43-49AA-9FCA-798815A69E77} = {EBFDC2CC-2318-45BC-B619-8754439D2541}
|
|
136
|
+
{25D85FA0-461E-4BB1-A956-55DA4835122A} = {EBFDC2CC-2318-45BC-B619-8754439D2541}
|
|
137
|
+
{4971758B-7FA0-489F-A5EF-5913385BB672} = {EBFDC2CC-2318-45BC-B619-8754439D2541}
|
|
138
|
+
{454F7422-1558-4ECB-9BA6-9C4BF69CF8C6} = {8CA2014D-1EBA-4CC8-B303-13289F7F279C}
|
|
139
|
+
{C19E3964-BDFB-41E0-B86C-CA90E3E5F335} = {8CA2014D-1EBA-4CC8-B303-13289F7F279C}
|
|
140
|
+
{5769C6DB-68E8-4A8C-B43A-243401CDB4A2} = {8CA2014D-1EBA-4CC8-B303-13289F7F279C}
|
|
141
|
+
{5E9FE4C4-9055-4EAD-A600-BAE1A5D598ED} = {C19E3964-BDFB-41E0-B86C-CA90E3E5F335}
|
|
142
|
+
{0C61268F-92C9-4A73-ACC7-398E70081AC7} = {C19E3964-BDFB-41E0-B86C-CA90E3E5F335}
|
|
143
|
+
{32A68CA6-ACF6-4087-8A5C-F838FC8103CF} = {C19E3964-BDFB-41E0-B86C-CA90E3E5F335}
|
|
144
|
+
{92CD6EF4-50B4-41DA-AA90-BF6A67961833} = {5769C6DB-68E8-4A8C-B43A-243401CDB4A2}
|
|
145
|
+
{6CF4ECEA-ECC1-4D34-A288-7168BE0D28BB} = {5769C6DB-68E8-4A8C-B43A-243401CDB4A2}
|
|
146
|
+
{231147C8-D789-49E0-B8D0-24F4FEA91C95} = {5769C6DB-68E8-4A8C-B43A-243401CDB4A2}
|
|
147
|
+
{07011B4D-501F-490B-9174-A2434B071E79} = {5769C6DB-68E8-4A8C-B43A-243401CDB4A2}
|
|
148
|
+
{223DF4AA-8E95-4624-B439-EA232409E903} = {5769C6DB-68E8-4A8C-B43A-243401CDB4A2}
|
|
149
|
+
{B190F800-89F0-43CD-B9BD-3EDD0C2E4B37} = {5769C6DB-68E8-4A8C-B43A-243401CDB4A2}
|
|
150
|
+
{86BB4D11-6C2F-44CA-B7DF-527FDFE79959} = {5769C6DB-68E8-4A8C-B43A-243401CDB4A2}
|
|
151
|
+
EndGlobalSection
|
|
152
|
+
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
153
|
+
SolutionGuid = {91BAB16E-7151-425E-919F-2725C0813642}
|
|
154
|
+
EndGlobalSection
|
|
155
|
+
EndGlobal
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<Project Sdk="Microsoft.NET.Sdk">
|
|
2
|
+
<PropertyGroup>
|
|
3
|
+
<TargetFramework>net9.0</TargetFramework>
|
|
4
|
+
<ImplicitUsings>enable</ImplicitUsings>
|
|
5
|
+
<Nullable>enable</Nullable>
|
|
6
|
+
</PropertyGroup>
|
|
7
|
+
<ItemGroup>
|
|
8
|
+
<PackageReference Include="CodeDesignPlus.Net.Generator" Version="0.5.0-beta.60" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
|
|
9
|
+
<PackageReference Include="CodeDesignPlus.Net.Redis.Abstractions" Version="0.5.0-beta.60" />
|
|
10
|
+
<PackageReference Include="CodeDesignPlus.Net.PubSub.Abstractions" Version="0.5.0-beta.60" />
|
|
11
|
+
<PackageReference Include="CodeDesignPlus.Net.Cache.Abstractions" Version="0.5.0-beta.60" />
|
|
12
|
+
<PackageReference Include="Mapster" Version="7.4.0" />
|
|
13
|
+
<PackageReference Include="Mapster.DependencyInjection" Version="1.0.1" />
|
|
14
|
+
<PackageReference Include="MediatR" Version="12.4.1" />
|
|
15
|
+
<PackageReference Include="FluentValidation.AspNetCore" Version="11.3.0" />
|
|
16
|
+
</ItemGroup>
|
|
17
|
+
<ItemGroup>
|
|
18
|
+
<ProjectReference Include="..\CodeDesignPlus.Net.Microservice.Domain\CodeDesignPlus.Net.Microservice.Domain.csproj" />
|
|
19
|
+
</ItemGroup>
|
|
20
|
+
</Project>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
using CodeDesignPlus.Net.Core.Abstractions;
|
|
2
|
+
|
|
3
|
+
namespace CodeDesignPlus.Net.Microservice.Application;
|
|
4
|
+
|
|
5
|
+
public class Errors: IErrorCodes
|
|
6
|
+
{
|
|
7
|
+
public const string OrderNotFound = "200 : The order does not exist.";
|
|
8
|
+
public const string OrderAlreadyExists = "201 : The order already exists.";
|
|
9
|
+
public const string ClientIsNull = "300 : The client is null.";
|
|
10
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.AddProductToOrder;
|
|
2
|
+
|
|
3
|
+
[DtoGenerator]
|
|
4
|
+
public record AddProductToOrderCommand(Guid Id, Guid IdProduct, string Name, string Description, long Price, int Quantity) : IRequest;
|
|
5
|
+
|
|
6
|
+
public class Validator : AbstractValidator<AddProductToOrderCommand>
|
|
7
|
+
{
|
|
8
|
+
public Validator()
|
|
9
|
+
{
|
|
10
|
+
RuleFor(x => x.Id).NotEmpty().NotNull();
|
|
11
|
+
RuleFor(x => x.IdProduct).NotEmpty().NotNull();
|
|
12
|
+
RuleFor(x => x.Name).NotEmpty().NotNull();
|
|
13
|
+
RuleFor(x => x.Description).NotEmpty().NotNull();
|
|
14
|
+
RuleFor(x => x.Price).NotEmpty().NotNull().GreaterThan(0);
|
|
15
|
+
RuleFor(x => x.Quantity).NotEmpty().NotNull().GreaterThan(0);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.AddProductToOrder;
|
|
2
|
+
|
|
3
|
+
public class AddProductToOrderCommandHandler(IOrderRepository orderRepository, IUserContext user, IPubSub pubsub) : IRequestHandler<AddProductToOrderCommand>
|
|
4
|
+
{
|
|
5
|
+
public async Task Handle(AddProductToOrderCommand request, CancellationToken cancellationToken)
|
|
6
|
+
{
|
|
7
|
+
var order = await orderRepository.FindAsync(request.Id, cancellationToken);
|
|
8
|
+
|
|
9
|
+
ApplicationGuard.IsNull(order, Errors.OrderNotFound);
|
|
10
|
+
|
|
11
|
+
order.AddProduct(request.IdProduct, request.Name, request.Description, request.Price, request.Quantity, user.IdUser);
|
|
12
|
+
|
|
13
|
+
await orderRepository.AddProductToOrderAsync(new AddProductToOrderParams()
|
|
14
|
+
{
|
|
15
|
+
Id = order.Id,
|
|
16
|
+
IdProduct = request.IdProduct,
|
|
17
|
+
Name = request.Name,
|
|
18
|
+
Description = request.Description,
|
|
19
|
+
Price = request.Price,
|
|
20
|
+
Quantity = request.Quantity,
|
|
21
|
+
UpdatedAt = order.UpdatedAt,
|
|
22
|
+
UpdateBy = user.IdUser
|
|
23
|
+
}, cancellationToken);
|
|
24
|
+
|
|
25
|
+
await pubsub.PublishAsync(order.GetAndClearEvents(), cancellationToken);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.CancelOrder;
|
|
2
|
+
|
|
3
|
+
[DtoGenerator]
|
|
4
|
+
public record CancelOrderCommand(Guid Id, string Reason) : IRequest;
|
|
5
|
+
|
|
6
|
+
public class Validator : AbstractValidator<CancelOrderCommand>
|
|
7
|
+
{
|
|
8
|
+
public Validator()
|
|
9
|
+
{
|
|
10
|
+
RuleFor(x => x.Id).NotEmpty().NotNull();
|
|
11
|
+
RuleFor(x => x.Reason).NotEmpty().NotNull();
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.CancelOrder;
|
|
2
|
+
|
|
3
|
+
public class CancelOrderCommandHandler(IOrderRepository orderRepository, IUserContext user, IPubSub pubsub) : IRequestHandler<CancelOrderCommand>
|
|
4
|
+
{
|
|
5
|
+
public async Task Handle(CancelOrderCommand request, CancellationToken cancellationToken)
|
|
6
|
+
{
|
|
7
|
+
var order = await orderRepository.FindAsync(request.Id, cancellationToken);
|
|
8
|
+
|
|
9
|
+
ApplicationGuard.IsNull(order, Errors.OrderNotFound);
|
|
10
|
+
|
|
11
|
+
order.CancelOrder(request.Reason, user.IdUser);
|
|
12
|
+
|
|
13
|
+
await orderRepository.CancelOrderAsync(new CancelOrderParams() {
|
|
14
|
+
Id = order.Id,
|
|
15
|
+
OrderStatus = order.Status,
|
|
16
|
+
Reason = order.ReasonForCancellation,
|
|
17
|
+
CancelledAt = order.CancelledAt,
|
|
18
|
+
UpdatedAt = order.UpdatedAt,
|
|
19
|
+
UpdateBy = order.UpdatedBy
|
|
20
|
+
},cancellationToken);
|
|
21
|
+
|
|
22
|
+
await pubsub.PublishAsync(order.GetAndClearEvents(), cancellationToken);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.CompleteOrder;
|
|
2
|
+
|
|
3
|
+
public record CompleteOrderCommand(Guid Id) : IRequest;
|
|
4
|
+
|
|
5
|
+
public class Validator : AbstractValidator<CompleteOrderCommand>
|
|
6
|
+
{
|
|
7
|
+
public Validator()
|
|
8
|
+
{
|
|
9
|
+
RuleFor(x => x.Id).NotEmpty().NotNull();
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.CompleteOrder;
|
|
2
|
+
|
|
3
|
+
public class CompleteOrderCommandHandler(IOrderRepository orderRepository, IUserContext user, IPubSub pubsub) : IRequestHandler<CompleteOrderCommand>
|
|
4
|
+
{
|
|
5
|
+
public async Task Handle(CompleteOrderCommand request, CancellationToken cancellationToken)
|
|
6
|
+
{
|
|
7
|
+
var order = await orderRepository.FindAsync(request.Id, cancellationToken);
|
|
8
|
+
|
|
9
|
+
ApplicationGuard.IsNull(order, Errors.OrderNotFound);
|
|
10
|
+
|
|
11
|
+
order.CompleteOrder(user.IdUser);
|
|
12
|
+
|
|
13
|
+
await orderRepository.CompleteOrderAsync(new CompleteOrderParams()
|
|
14
|
+
{
|
|
15
|
+
Id = order.Id,
|
|
16
|
+
CompletedAt = order.CompletedAt,
|
|
17
|
+
OrderStatus = order.Status,
|
|
18
|
+
UpdatedAt = order.UpdatedAt,
|
|
19
|
+
UpdateBy = order.UpdatedBy
|
|
20
|
+
}, cancellationToken);
|
|
21
|
+
|
|
22
|
+
await pubsub.PublishAsync(order.GetAndClearEvents(), cancellationToken);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.CreateOrder;
|
|
2
|
+
|
|
3
|
+
[DtoGenerator]
|
|
4
|
+
public record CreateOrderCommand(Guid Id, ClientDto Client, AddressDto Address) : IRequest;
|
|
5
|
+
|
|
6
|
+
public class Validator : AbstractValidator<CreateOrderCommand>
|
|
7
|
+
{
|
|
8
|
+
public Validator()
|
|
9
|
+
{
|
|
10
|
+
RuleFor(x => x.Id).NotEmpty().NotNull();
|
|
11
|
+
RuleFor(x => x.Client)
|
|
12
|
+
.NotNull()
|
|
13
|
+
.DependentRules(() =>
|
|
14
|
+
{
|
|
15
|
+
RuleFor(x => x.Client.Id).NotEmpty().NotNull();
|
|
16
|
+
RuleFor(x => x.Client.Name).NotEmpty().NotNull();
|
|
17
|
+
RuleFor(x => x.Client.Document).NotEmpty().NotNull();
|
|
18
|
+
RuleFor(x => x.Client.TypeDocument).NotEmpty().NotNull();
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
RuleFor(x => x.Address)
|
|
22
|
+
.NotNull()
|
|
23
|
+
.DependentRules(() =>
|
|
24
|
+
{
|
|
25
|
+
RuleFor(x => x.Address.Country).NotEmpty().NotNull();
|
|
26
|
+
RuleFor(x => x.Address.State).NotEmpty().NotNull();
|
|
27
|
+
RuleFor(x => x.Address.City).NotEmpty().NotNull();
|
|
28
|
+
RuleFor(x => x.Address.Address).NotEmpty().NotNull();
|
|
29
|
+
RuleFor(x => x.Address.CodePostal).NotEmpty().NotNull();
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
using CodeDesignPlus.Net.Microservice.Domain.ValueObjects;
|
|
2
|
+
|
|
3
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.CreateOrder;
|
|
4
|
+
|
|
5
|
+
public class CreateOrderCommandHandler(IOrderRepository orderRepository, IUserContext user, IPubSub pubsub) : IRequestHandler<CreateOrderCommand>
|
|
6
|
+
{
|
|
7
|
+
public async Task Handle(CreateOrderCommand request, CancellationToken cancellationToken)
|
|
8
|
+
{
|
|
9
|
+
var order = await orderRepository.FindAsync(request.Id, cancellationToken);
|
|
10
|
+
|
|
11
|
+
ApplicationGuard.IsNotNull(order, Errors.OrderAlreadyExists);
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
var client = ClientValueObject.Create(request.Client.Id, request.Client.Name, request.Client.Document, request.Client.TypeDocument);
|
|
15
|
+
|
|
16
|
+
var address = AddressValueObject.Create(request.Address.Country, request.Address.State, request.Address.City, request.Address.Address, request.Address.CodePostal);
|
|
17
|
+
|
|
18
|
+
order = OrderAggregate.Create(request.Id, client, address, user.Tenant, user.IdUser);
|
|
19
|
+
|
|
20
|
+
await orderRepository.CreateOrderAsync(order, cancellationToken);
|
|
21
|
+
|
|
22
|
+
await pubsub.PublishAsync(order.GetAndClearEvents(), cancellationToken);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.RemoveProduct;
|
|
2
|
+
|
|
3
|
+
public record RemoveProductCommand(Guid Id, Guid ProductId) : IRequest;
|
|
4
|
+
|
|
5
|
+
public class Validator : AbstractValidator<RemoveProductCommand>
|
|
6
|
+
{
|
|
7
|
+
public Validator()
|
|
8
|
+
{
|
|
9
|
+
RuleFor(x => x.Id).NotEmpty().NotNull();
|
|
10
|
+
RuleFor(x => x.ProductId).NotEmpty().NotNull();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.RemoveProduct;
|
|
2
|
+
|
|
3
|
+
public class RemoveProductCommandHandler(IOrderRepository orderRepository, IUserContext user, IPubSub pubsub) : IRequestHandler<RemoveProductCommand>
|
|
4
|
+
{
|
|
5
|
+
public async Task Handle(RemoveProductCommand request, CancellationToken cancellationToken)
|
|
6
|
+
{
|
|
7
|
+
var order = await orderRepository.FindAsync(request.Id, cancellationToken);
|
|
8
|
+
|
|
9
|
+
ApplicationGuard.IsNull(order, Errors.OrderNotFound);
|
|
10
|
+
|
|
11
|
+
order.RemoveProduct(request.ProductId, user.IdUser);
|
|
12
|
+
|
|
13
|
+
await orderRepository.RemoveProductFromOrderAsync(new RemoveProductFromOrderParams() {
|
|
14
|
+
Id = order.Id,
|
|
15
|
+
IdProduct = request.ProductId,
|
|
16
|
+
UpdatedAt = order.UpdatedAt,
|
|
17
|
+
UpdateBy = user.IdUser
|
|
18
|
+
}, cancellationToken);
|
|
19
|
+
|
|
20
|
+
await pubsub.PublishAsync(order.GetAndClearEvents(), cancellationToken);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
namespace CodeDesignPlus.Net.Microservice.Application.Order.Commands.UpdateQuantityProduct;
|
|
2
|
+
|
|
3
|
+
[DtoGenerator]
|
|
4
|
+
public record UpdateQuantityProductCommand(Guid Id, Guid ProductId, int Quantity) : IRequest;
|
|
5
|
+
|
|
6
|
+
public class Validator : AbstractValidator<UpdateQuantityProductCommand>
|
|
7
|
+
{
|
|
8
|
+
public Validator()
|
|
9
|
+
{
|
|
10
|
+
RuleFor(x => x.Id).NotEmpty().NotNull();
|
|
11
|
+
RuleFor(x => x.ProductId).NotEmpty().NotNull();
|
|
12
|
+
RuleFor(x => x.Quantity).GreaterThan(0);
|
|
13
|
+
}
|
|
14
|
+
}
|