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.
Files changed (200) hide show
  1. package/LICENCE.md +13 -0
  2. package/README.md +454 -0
  3. package/generators/app/index.mjs +22 -0
  4. package/generators/microservice/core/aggregate.mjs +25 -0
  5. package/generators/microservice/core/appsettings.mjs +73 -0
  6. package/generators/microservice/core/asyncWorker.mjs +87 -0
  7. package/generators/microservice/core/command.mjs +54 -0
  8. package/generators/microservice/core/consumer.mjs +73 -0
  9. package/generators/microservice/core/controller.mjs +25 -0
  10. package/generators/microservice/core/core.mjs +98 -0
  11. package/generators/microservice/core/dataTransferObject.mjs +31 -0
  12. package/generators/microservice/core/domainEvent.mjs +36 -0
  13. package/generators/microservice/core/dotnet.mjs +56 -0
  14. package/generators/microservice/core/entity.mjs +29 -0
  15. package/generators/microservice/core/errors.mjs +37 -0
  16. package/generators/microservice/core/grpc.mjs +97 -0
  17. package/generators/microservice/core/microservice.mjs +212 -0
  18. package/generators/microservice/core/proto.mjs +61 -0
  19. package/generators/microservice/core/query.mjs +59 -0
  20. package/generators/microservice/core/repository.mjs +41 -0
  21. package/generators/microservice/core/utils.mjs +196 -0
  22. package/generators/microservice/core/valueObject.mjs +29 -0
  23. package/generators/microservice/core/xml.mjs +48 -0
  24. package/generators/microservice/index.mjs +38 -0
  25. package/generators/microservice/templates/aggregate/ItemAggregate.cs +9 -0
  26. package/generators/microservice/templates/command/ItemCommand.cs +12 -0
  27. package/generators/microservice/templates/command/ItemCommandHandler.cs +9 -0
  28. package/generators/microservice/templates/consumer/ItemHandler.cs +14 -0
  29. package/generators/microservice/templates/controller/ItemController.cs +8 -0
  30. package/generators/microservice/templates/data-transfer-object/ItemDto.cs +6 -0
  31. package/generators/microservice/templates/domain-event/ItemDomainEvent.cs +15 -0
  32. package/generators/microservice/templates/entity/ItemEntity.cs +6 -0
  33. package/generators/microservice/templates/errors/Error.cs +6 -0
  34. package/generators/microservice/templates/grpc/ItemService.cs +6 -0
  35. package/generators/microservice/templates/grpc/grpc.proto +22 -0
  36. package/generators/microservice/templates/microservice/.dockerignore +30 -0
  37. package/generators/microservice/templates/microservice/CodeDesignPlus.Net.Microservice.sln +155 -0
  38. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/CodeDesignPlus.Net.Microservice.Application.csproj +20 -0
  39. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Errors.cs +10 -0
  40. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/AddProductToOrder/AddProductToOrderCommand.cs +17 -0
  41. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/AddProductToOrder/AddProductToOrderCommandHandler.cs +27 -0
  42. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CancelOrder/CancelOrderCommand.cs +13 -0
  43. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CancelOrder/CancelOrderCommandHandler.cs +24 -0
  44. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CompleteOrder/CompleteOrderCommand.cs +11 -0
  45. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CompleteOrder/CompleteOrderCommandHandler.cs +25 -0
  46. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CreateOrder/CreateOrderCommand.cs +32 -0
  47. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/CreateOrder/CreateOrderCommandHandler.cs +24 -0
  48. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/RemoveProduct/RemoveProductCommand.cs +12 -0
  49. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/RemoveProduct/RemoveProductCommandHandler.cs +22 -0
  50. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommand.cs +14 -0
  51. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandHandler.cs +24 -0
  52. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/AddressDto.cs +11 -0
  53. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/ClientDto.cs +9 -0
  54. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/OrderDto.cs +18 -0
  55. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/DataTransferObjects/ProductDto.cs +10 -0
  56. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/FindOrderById/FindOrderByIdQuery.cs +4 -0
  57. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/FindOrderById/FindOrderByIdQueryHandler.cs +23 -0
  58. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/GetAllOrders/GetAllOrdersQuery.cs +3 -0
  59. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Order/Queries/GetAllOrders/GetAllOrdersQueryHandler.cs +18 -0
  60. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Setup/MapsterConfig.cs +26 -0
  61. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Startup.cs +15 -0
  62. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Application/Usings.cs +18 -0
  63. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/CodeDesignPlus.Net.Microservice.Domain.csproj +11 -0
  64. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/AddProductToOrderParams.cs +15 -0
  65. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/CancelOrderParams.cs +13 -0
  66. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/CompleteOrderParams.cs +12 -0
  67. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/RemoveProductFromOrderParams.cs +11 -0
  68. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DataTransferObjects/UpdateQuantityProductParams.cs +12 -0
  69. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCancelledDomainEvent.cs +21 -0
  70. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCompletedDomainEvent.cs +18 -0
  71. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/OrderCreatedDomainEvent.cs +44 -0
  72. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductAddedToOrderDomainEvent.cs +20 -0
  73. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductQuantityUpdatedDomainEvent.cs +20 -0
  74. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/DomainEvents/ProductRemovedFromOrderDomainEvent.cs +18 -0
  75. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Entities/ProductEntity.cs +10 -0
  76. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Enums/OrderStatus.cs +10 -0
  77. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Errors.cs +28 -0
  78. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/OrderAggregate.cs +124 -0
  79. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Repositories/IOrderRepository.cs +14 -0
  80. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Startup.cs +12 -0
  81. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/Usings.cs +11 -0
  82. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/ValueObjects/AddressValueObject.cs +30 -0
  83. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Domain/ValueObjects/ClientValueObject.cs +27 -0
  84. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/CodeDesignPlus.Net.Microservice.Infrastructure.csproj +13 -0
  85. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Errors.cs +6 -0
  86. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Repositories/OrderRepository.cs +109 -0
  87. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Startup.cs +10 -0
  88. package/generators/microservice/templates/microservice/src/domain/CodeDesignPlus.Net.Microservice.Infrastructure/Usings.cs +15 -0
  89. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/CodeDesignPlus.Net.Microservice.AsyncWorker.csproj +31 -0
  90. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Program.cs +41 -0
  91. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Properties/launchSettings.json +15 -0
  92. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/Usings.cs +10 -0
  93. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/appsettings.Development.json +2 -0
  94. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.AsyncWorker/appsettings.json +129 -0
  95. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj +36 -0
  96. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/CodeDesignPlus.Net.Microservice.Rest.csproj.user +11 -0
  97. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Controllers/OrderController.cs +138 -0
  98. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Core/Mapster/MapsterConfig.cs +12 -0
  99. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Dockerfile +37 -0
  100. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Program.cs +52 -0
  101. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Properties/launchSettings.json +26 -0
  102. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/Usings.cs +22 -0
  103. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/appsettings.Development.json +3 -0
  104. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.Rest/appsettings.json +86 -0
  105. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/CodeDesignPlus.Net.Microservice.gRpc.csproj +35 -0
  106. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/CodeDesignPlus.Net.Microservice.gRpc.csproj.user +9 -0
  107. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Core/Mapster/MapsterConfig.cs +13 -0
  108. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Program.cs +61 -0
  109. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Properties/launchSettings.json +23 -0
  110. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Protos/orders.proto +66 -0
  111. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Services/OrderService.cs +29 -0
  112. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/Usings.cs +12 -0
  113. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/appsettings.Development.json +3 -0
  114. package/generators/microservice/templates/microservice/src/entrypoints/CodeDesignPlus.Net.Microservice.gRpc/appsettings.json +92 -0
  115. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj +35 -0
  116. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Properties/launchSettings.json +12 -0
  117. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Usings.cs +8 -0
  118. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/CodeDesignPlus.Net.Microservice.Rest.Test.csproj +36 -0
  119. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Controllers/OrderControllerTest.cs +337 -0
  120. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Properties/launchSettings.json +12 -0
  121. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.Rest.Test/Usings.cs +8 -0
  122. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/CodeDesignPlus.Net.Microservice.gRpc.Test.csproj +46 -0
  123. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Protos/orders.proto +65 -0
  124. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Services/OrdersServiceTest.cs +64 -0
  125. package/generators/microservice/templates/microservice/tests/integration/CodeDesignPlus.Net.Microservice.gRpc.Test/Usings.cs +7 -0
  126. package/generators/microservice/templates/microservice/tests/load/load-rest.js +63 -0
  127. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/CodeDesignPlus.Net.Microservice.Application.Test.csproj +34 -0
  128. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/AddProductToOrder/AddProductToOrderCommandHandlerTest.cs +98 -0
  129. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/AddProductToOrder/AddProductToOrderCommandTest.cs +84 -0
  130. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CancelOrder/CancelOrderCommandHandlerTest.cs +74 -0
  131. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CancelOrder/CancelOrderCommandTest.cs +43 -0
  132. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CompleteOrder/CompleteOrderCommandHandlerTest.cs +74 -0
  133. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CompleteOrder/CompleteOrderCommandTest.cs +32 -0
  134. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CreateOrder/CreateOrderCommandHandlerTest.cs +100 -0
  135. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/CreateOrder/CreateOrderCommandTest.cs +122 -0
  136. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/RemoveProduct/RemoveProductCommandHandlerTest.cs +71 -0
  137. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/RemoveProduct/RemoveProductCommandTest.cs +33 -0
  138. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandHandlerTest.cs +82 -0
  139. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Commands/UpdateQuantityProduct/UpdateQuantityProductCommandTest.cs +51 -0
  140. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Queries/FindOrderById/FindOrderByIdQueryHandlerTest.cs +70 -0
  141. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Order/Queries/GetAllOrders/GetAllOrdersQueryHandlerTest.cs +80 -0
  142. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Setup/MapsterConfigTest.cs +20 -0
  143. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Application.Test/Usings.cs +18 -0
  144. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/CodeDesignPlus.Net.Microservice.AsyncWorker.Test.csproj +38 -0
  145. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.AsyncWorker.Test/Usings.cs +9 -0
  146. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/CodeDesignPlus.Net.Microservice.Default.Test.csproj +35 -0
  147. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Usings.cs +6 -0
  148. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/AggregateTest.cs +37 -0
  149. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/CommandsTests.cs +29 -0
  150. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/DataTransferObjectTest.cs +47 -0
  151. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/DomainEventTest.cs +42 -0
  152. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/EntityTest.cs +25 -0
  153. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/ErrorsTest.cs +55 -0
  154. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/QueryTests.cs +29 -0
  155. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Default.Test/Validations/StartupTest.cs +43 -0
  156. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/CodeDesignPlus.Net.Microservice.Domain.Test.csproj +38 -0
  157. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/DomainEvents/OrderCancelledDomainEventTest.cs +46 -0
  158. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/OrderAggregateTest.cs +518 -0
  159. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Domain.Test/Usings.cs +7 -0
  160. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/CodeDesignPlus.Net.Microservice.Infrastructure.Test.csproj +34 -0
  161. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/Repositories/OrderRepositoryTest.cs +259 -0
  162. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Infrastructure.Test/Usings.cs +14 -0
  163. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/CodeDesignPlus.Net.Microservice.Rest.Test.csproj +40 -0
  164. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Controllers/OrderControllerTest.cs +189 -0
  165. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Core/Mapster/MapsterConfigTest.cs +19 -0
  166. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.Rest.Test/Usings.cs +14 -0
  167. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/CodeDesignPlus.Net.Microservice.gRpc.Test.csproj +39 -0
  168. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Core/Mapster/MapsterConfigTest.cs +19 -0
  169. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Services/OrderServiceTest.cs +72 -0
  170. package/generators/microservice/templates/microservice/tests/unit/CodeDesignPlus.Net.Microservice.gRpc.Test/Usings.cs +15 -0
  171. package/generators/microservice/templates/microservice/tools/convert-crlf-to-lf.sh +6 -0
  172. package/generators/microservice/templates/microservice/tools/sonarqube/sonar.ps1 +18 -0
  173. package/generators/microservice/templates/microservice/tools/sonarqube/sonar.sh +18 -0
  174. package/generators/microservice/templates/microservice/tools/update-packages/update-packages.ps1 +10 -0
  175. package/generators/microservice/templates/microservice/tools/update-packages/update-packages.sh +11 -0
  176. package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.ps1 +10 -0
  177. package/generators/microservice/templates/microservice/tools/upgrade-dotnet/upgrade-assistant.sh +11 -0
  178. package/generators/microservice/templates/microservice/tools/vault/config-vault.ps1 +178 -0
  179. package/generators/microservice/templates/microservice/tools/vault/config-vault.sh +152 -0
  180. package/generators/microservice/templates/others/MapsterConfig.cs +9 -0
  181. package/generators/microservice/templates/query/ItemQuery.cs +4 -0
  182. package/generators/microservice/templates/query/ItemQueryHandler.cs +9 -0
  183. package/generators/microservice/templates/repository/IItemRepository.cs +6 -0
  184. package/generators/microservice/templates/repository/ItemRepository.cs +7 -0
  185. package/generators/microservice/templates/value-object/ItemValueObject.cs +23 -0
  186. package/generators/microservice/types/aggregate.mjs +19 -0
  187. package/generators/microservice/types/appsettings.mjs +26 -0
  188. package/generators/microservice/types/base.mjs +24 -0
  189. package/generators/microservice/types/command.mjs +38 -0
  190. package/generators/microservice/types/consumer.mjs +21 -0
  191. package/generators/microservice/types/controller.mjs +20 -0
  192. package/generators/microservice/types/dataTransferObject.mjs +19 -0
  193. package/generators/microservice/types/domainEvents.mjs +22 -0
  194. package/generators/microservice/types/entity.mjs +21 -0
  195. package/generators/microservice/types/index.mjs +25 -0
  196. package/generators/microservice/types/proto.mjs +19 -0
  197. package/generators/microservice/types/query.mjs +38 -0
  198. package/generators/microservice/types/repository.mjs +21 -0
  199. package/generators/microservice/types/valueObject.mjs +23 -0
  200. 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 <%= name %>(Guid id) : AggregateRoot(id)
4
+ {
5
+ public static <%= name %> Create(Guid id, Guid tenant, Guid createBy)
6
+ {
7
+ return default;
8
+ }
9
+ }
@@ -0,0 +1,12 @@
1
+ namespace <%= ns %>;
2
+
3
+ [DtoGenerator]
4
+ public record <%= name %>(Guid Id) : IRequest;
5
+
6
+ public class Validator : AbstractValidator<<%= name %>>
7
+ {
8
+ public Validator()
9
+ {
10
+ RuleFor(x => x.Id).NotEmpty().NotNull();
11
+ }
12
+ }
@@ -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,8 @@
1
+ namespace <%= ns %>;
2
+
3
+ [Route("api/[controller]")]
4
+ [ApiController]
5
+ public class <%= name %>(IMediator mediator, IMapper mapper) : ControllerBase
6
+ {
7
+
8
+ }
@@ -0,0 +1,6 @@
1
+ namespace <%= ns %>;
2
+
3
+ public class <%= name %>: IDtoBase
4
+ {
5
+ public required Guid Id { get; set; }
6
+ }
@@ -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,6 @@
1
+ namespace <%= ns %>;
2
+
3
+ public class <%= name %> : IEntityBase
4
+ {
5
+ public Guid Id { get; set; }
6
+ }
@@ -0,0 +1,6 @@
1
+ namespace <%= ns %>;
2
+
3
+ public class Errors: IErrorCodes
4
+ {
5
+ public const string UnknownError = "<%= code %>";
6
+ }
@@ -0,0 +1,6 @@
1
+ namespace <%= ns %>;
2
+
3
+ public class <%= name %>Service(IMediator mediator, IMapper mapper) : <%= name %>.<%= name %>Base
4
+ {
5
+
6
+ }
@@ -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
+ }