Refactor messaging system to utilize LiteCqrs library
- Replaced instances of the previous messaging system with LiteCqrs across various application components, enhancing the CQRS implementation. - Updated dependency injection to register LiteCqrs services and behaviors, streamlining command and query handling. - Adjusted multiple command and query handlers to align with the new messaging framework, ensuring consistent functionality and improved maintainability. - Added LiteCqrs package reference in the project file for better dependency management.
This commit is contained in:
@@ -7,7 +7,10 @@
|
||||
**PnvPanel** — self-service портал для VPN-конфигураций (VLESS/VMess/Trojan/Shadowsocks): пользователи
|
||||
сами создают конфиги, админ управляет серверами и пользователями. Есть **Telegram-бот** (ссылка на
|
||||
сайт, просмотр конфигов, passwordless-вход). Бэкенд оркестрирует панели **3x-ui** через
|
||||
[`ThreeXui.Net`](https://github.com/mrleo1nid/ThreeXui.Net) и хранит проекцию домена в PostgreSQL.
|
||||
[`ThreeXui.Net`](https://github.com/mrleo1nid/ThreeXui.Net), CQRS — через собственную библиотеку
|
||||
[`LiteCqrs.Net`](https://github.com/mrleo1nid/LiteCqrs.Net) (на время разработки подключена как
|
||||
`ProjectReference` из соседнего репозитория `D:\Github\LiteCqrs.Net`, ещё не опубликована в
|
||||
NuGet/GitHub), и хранит проекцию домена в PostgreSQL.
|
||||
Живые обновления — SignalR. Поставка — **единый Docker-образ** (фронт+бек+бот) + PostgreSQL в compose.
|
||||
|
||||
> Собрано и покрыто тестами, единый образ и compose-стек проверены живьём. Есть опциональный биллинг
|
||||
@@ -25,8 +28,10 @@
|
||||
|
||||
## Стек
|
||||
|
||||
- **Backend**: C# / .NET 10, ASP.NET Core Web API, Clean Architecture, CQRS (**собственный тонкий
|
||||
диспетчер**, без MediatR), EF Core 10 + Npgsql, ASP.NET Core Identity + JWT, SignalR, FluentValidation,
|
||||
- **Backend**: C# / .NET 10, ASP.NET Core Web API, Clean Architecture, CQRS (через
|
||||
[`LiteCqrs.Net`](https://github.com/mrleo1nid/LiteCqrs.Net) — собственная лёгкая
|
||||
CQRS-библиотека, альтернатива MediatR с явным разделением Command/Query), EF Core 10 + Npgsql,
|
||||
ASP.NET Core Identity + JWT, SignalR, FluentValidation,
|
||||
Serilog. Маппинг DTO вручную (`FromDomain(...)`, без Mapster). OpenAPI — нативный
|
||||
`Microsoft.AspNetCore.OpenApi` + Scalar UI (без Swashbuckle).
|
||||
- **Frontend**: React 19 + Vite + TS, TanStack Query/Router, shadcn-стиль поверх Radix + Tailwind v4,
|
||||
@@ -174,8 +179,8 @@ docker compose up -d # api + postgres (+ web)
|
||||
|
||||
## Ключевые решения
|
||||
|
||||
См. [tech-stack.md](docs/tech-stack.md#ключевые-решения-по-домену-и-поведению): CQRS — собственный
|
||||
диспетчер (не MediatR); одна роль на пользователя; секреты нод — ASP.NET Data Protection; биллинг
|
||||
См. [tech-stack.md](docs/tech-stack.md#ключевые-решения-по-домену-и-поведению): CQRS — через
|
||||
LiteCqrs.Net (собственная библиотека, не MediatR); одна роль на пользователя; секреты нод — ASP.NET Data Protection; биллинг
|
||||
опционален per-роль (недоступен для `admin`); i18n — RU+EN (react-i18next); Telegram — long polling,
|
||||
только привязка (не signup); история трафика — простая таблица + TTL; логирование — Serilog.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user