├── .dockerignore ├── .editorconfig ├── .gitattributes ├── .gitignore ├── README.md ├── Sample.MediatR.sln └── src ├── Sample.MediatR.Application ├── Consumers │ ├── IndexClientProducts │ │ ├── IndexClient.cs │ │ ├── IndexClientProductConsumerHandler.cs │ │ └── IndexClientProductEvent.cs │ └── SendEmail │ │ ├── SendEmailConsumerHandler.cs │ │ └── SendEmailEvent.cs ├── MapperProfile.cs ├── Sample.MediatR.Application.csproj └── UseCases │ ├── Client │ ├── Create │ │ ├── CreateClientCommand.cs │ │ └── CreateClientCommandHandler.cs │ └── Get │ │ ├── GetClientsQuery.cs │ │ ├── GetClientsQueryHandler.cs │ │ └── GetClientsQueryResponse.cs │ ├── Email │ └── Send │ │ ├── SendEmailNotification.cs │ │ └── SendEmailNotificationHandler.cs │ └── Product │ ├── Create │ ├── CreateProductCommand.cs │ └── CreateProductCommandHandler.cs │ ├── CreateNotification │ ├── AddProductNotificationHandler.cs │ └── CreateProductNotification.cs │ └── Get │ ├── GetProductsQuery.cs │ ├── GetProductsQueryHandler.cs │ └── GetProductsQueryResponse.cs ├── Sample.MediatR.Persistence ├── Context │ └── ClientContext.cs ├── Elasticsearch │ ├── ElasticBaseIndex.cs │ ├── ElasticBaseRepository.cs │ ├── ElasticRepository.cs │ ├── IBaseElasticRepository.cs │ └── IIElasticBaseRepository.cs └── Sample.MediatR.Persistence.csproj ├── Sample.MediatR.WebApi.Core ├── Extensions │ ├── ApiConfigurationExtensions.cs │ ├── ElasticsearchExtensions.cs │ ├── MasstransitExtension.cs │ └── SerilogExtensions.cs ├── Middlewares │ └── ErrorHandlingMiddleware.cs └── Sample.MediatR.WebApi.Core.csproj └── Sample.MediatR.WebApi ├── Controllers ├── ClientController.cs ├── ProductController.cs └── QueriesController.cs ├── Dockerfile ├── Program.cs ├── Sample.MediatR.WebApi.csproj └── appsettings.json /.dockerignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/.dockerignore -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | 3 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/.gitignore -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/README.md -------------------------------------------------------------------------------- /Sample.MediatR.sln: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/Sample.MediatR.sln -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/Consumers/IndexClientProducts/IndexClient.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/Consumers/IndexClientProducts/IndexClient.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/Consumers/IndexClientProducts/IndexClientProductConsumerHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/Consumers/IndexClientProducts/IndexClientProductConsumerHandler.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/Consumers/IndexClientProducts/IndexClientProductEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/Consumers/IndexClientProducts/IndexClientProductEvent.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/Consumers/SendEmail/SendEmailConsumerHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/Consumers/SendEmail/SendEmailConsumerHandler.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/Consumers/SendEmail/SendEmailEvent.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/Consumers/SendEmail/SendEmailEvent.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/MapperProfile.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/MapperProfile.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/Sample.MediatR.Application.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/Sample.MediatR.Application.csproj -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Client/Create/CreateClientCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Client/Create/CreateClientCommand.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Client/Create/CreateClientCommandHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Client/Create/CreateClientCommandHandler.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Client/Get/GetClientsQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Client/Get/GetClientsQuery.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Client/Get/GetClientsQueryHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Client/Get/GetClientsQueryHandler.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Client/Get/GetClientsQueryResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Client/Get/GetClientsQueryResponse.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Email/Send/SendEmailNotification.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Email/Send/SendEmailNotification.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Email/Send/SendEmailNotificationHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Email/Send/SendEmailNotificationHandler.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Product/Create/CreateProductCommand.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Product/Create/CreateProductCommand.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Product/Create/CreateProductCommandHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Product/Create/CreateProductCommandHandler.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Product/CreateNotification/AddProductNotificationHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Product/CreateNotification/AddProductNotificationHandler.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Product/CreateNotification/CreateProductNotification.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Product/CreateNotification/CreateProductNotification.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Product/Get/GetProductsQuery.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Product/Get/GetProductsQuery.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Product/Get/GetProductsQueryHandler.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Product/Get/GetProductsQueryHandler.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Application/UseCases/Product/Get/GetProductsQueryResponse.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Application/UseCases/Product/Get/GetProductsQueryResponse.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Persistence/Context/ClientContext.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Persistence/Context/ClientContext.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Persistence/Elasticsearch/ElasticBaseIndex.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Persistence/Elasticsearch/ElasticBaseIndex.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Persistence/Elasticsearch/ElasticBaseRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Persistence/Elasticsearch/ElasticBaseRepository.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Persistence/Elasticsearch/ElasticRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Persistence/Elasticsearch/ElasticRepository.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Persistence/Elasticsearch/IBaseElasticRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Persistence/Elasticsearch/IBaseElasticRepository.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Persistence/Elasticsearch/IIElasticBaseRepository.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Persistence/Elasticsearch/IIElasticBaseRepository.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.Persistence/Sample.MediatR.Persistence.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.Persistence/Sample.MediatR.Persistence.csproj -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi.Core/Extensions/ApiConfigurationExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi.Core/Extensions/ApiConfigurationExtensions.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi.Core/Extensions/ElasticsearchExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi.Core/Extensions/ElasticsearchExtensions.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi.Core/Extensions/MasstransitExtension.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi.Core/Extensions/MasstransitExtension.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi.Core/Extensions/SerilogExtensions.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi.Core/Extensions/SerilogExtensions.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi.Core/Middlewares/ErrorHandlingMiddleware.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi.Core/Middlewares/ErrorHandlingMiddleware.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi.Core/Sample.MediatR.WebApi.Core.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi.Core/Sample.MediatR.WebApi.Core.csproj -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi/Controllers/ClientController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi/Controllers/ClientController.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi/Controllers/ProductController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi/Controllers/ProductController.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi/Controllers/QueriesController.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi/Controllers/QueriesController.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi/Dockerfile -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi/Program.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi/Program.cs -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi/Sample.MediatR.WebApi.csproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi/Sample.MediatR.WebApi.csproj -------------------------------------------------------------------------------- /src/Sample.MediatR.WebApi/appsettings.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hgmauri/sample-cqrs-mediatr/HEAD/src/Sample.MediatR.WebApi/appsettings.json --------------------------------------------------------------------------------