Conversation
…ies, and notifications - Added core abstractions for commands, queries, notifications, and pipeline behaviors. - Implemented InProcessDispatcher to handle command and query execution. - Created command and query handlers for user management (CreateUser, UpdateUserEmail). - Introduced validation and logging behaviors for pipeline processing. - Developed service factory for dependency resolution. - Added example usage in Program.cs demonstrating command and query execution. - Included README-DEV.md for project overview and usage instructions.
…andling - Implemented core abstractions for commands, queries, and notifications. - Created in-process dispatcher to handle command and query execution. - Added pipeline behaviors for logging and validation. - Developed a simple service factory for dependency resolution. - Introduced example console application demonstrating usage. - Implemented integration tests for end-to-end scenarios. - Added unit tests for dispatcher functionality and validation behavior.
chore: Update README with project structure and commands feat: Add global usings for benchmarks and examples
…ncluding CreateUser and GetUserById commands, timing behavior, and interactive API documentation
…tializations, and remove redundant `using` directives for cleaner and more consistent codebase.
…le for consistent logging
|
Caution Review failedThe pull request is closed. 📝 WalkthroughWalkthroughThis pull request introduces ProDispatch, a new in-process dispatcher framework for .NET 10.0. It includes core abstractions (commands, queries, notifications, pipeline behaviors, validation), implementations (InProcessDispatcher, SimpleServiceFactory), two comprehensive sample applications (console and minimal API), benchmarks, integration and unit tests, CI/CD workflows, and project documentation. Changes
Sequence Diagram(s)sequenceDiagram
participant Client
participant InProcessDispatcher
participant ServiceFactory
participant PipelineBehavior as Pipeline Behavior<br/>(Reversed Order)
participant Handler
participant Notification as Notification Handler
Client->>InProcessDispatcher: SendAsync(Command)
InProcessDispatcher->>ServiceFactory: GetInstance(Handler)
ServiceFactory-->>InProcessDispatcher: Handler
InProcessDispatcher->>ServiceFactory: GetInstances(IPipelineBehavior)
ServiceFactory-->>InProcessDispatcher: [Behavior1, Behavior2]
Note over InProcessDispatcher: Build pipeline chain<br/>in reverse order
InProcessDispatcher->>PipelineBehavior: HandleAsync(request, cancellation, next)
PipelineBehavior->>PipelineBehavior: Execute logic (validate, log, etc.)
PipelineBehavior->>Handler: next(request, cancellation)
Handler->>Handler: HandleAsync(command)
Handler->>InProcessDispatcher: PublishAsync(Notification)
InProcessDispatcher->>ServiceFactory: GetInstances(INotificationHandler)
ServiceFactory-->>InProcessDispatcher: [Handler1, Handler2]
InProcessDispatcher->>Notification: HandleAsync (parallel)
Notification-->>InProcessDispatcher: Task.WhenAll
Handler-->>PipelineBehavior: Response/Result
PipelineBehavior-->>InProcessDispatcher: Response/Result
InProcessDispatcher-->>Client: Task/Task<TResult>
Estimated code review effort🎯 5 (Critical) | ⏱️ ~100 minutes Poem
✨ Finishing touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary by CodeRabbit
Release Notes
New Features
Documentation
Tests
✏️ Tip: You can customize this high-level summary in your review settings.