Solution view
Pattern used to separate query - read and command - add, update, delete operations
Event separation
Requests implement IRequest interface (from MediatR package)
Request handlers implements IRequestHandler interface
Controller create request and call it to handler
Validation added if necessary (fluent valdation)
If needed project have registered services
Api project manage all registered services
Exception is thrown into Exception handler middleware
Plugged into pipeline
Logging important steps in application
Save logs to files