How beqa-eqseulidze/storeapi works
This appears to be a commerce-style API despite the README’s generic “TaskManager” title: clients can manage products, categories, product images, orders, and authentication. The visible workflow routes HTTP requests through controllers to MediatR commands or queries, which use repositories via a unit of work; persistence is backed by EF Core. The graph preserves the major API and domain areas shown in the tree. Some handlers and wiring were not sampled, so their connections are omitted rather than inferred.
Main entry points: BaseRepository.cs Base repository · IUnitOfWork.cs Unit of work · Mediart Category workflows · AppDbContext.cs EF Core context
Components 25
HTTP API
- Category API
Web.API/Controllers/CategoryController.cs - Product API
Web.API/Controllers/ProductController.cs - Product image API
Web.API/Controllers/ProductImageController.cs - Order API
Web.API/Controllers/OrderController.cs - Authentication API
Web.API/Controllers/AuthController.cs - Exception handling
Web.API/Middleware/GlobalExceptionHandler.cs
Application workflows
- Category workflows
Application/Mediart - Product workflows
Application/Mediart - Image workflows
Application/Mediart - Order workflows
Application/Mediart - Auth workflows
Application/Mediart/Commands/Auth - Request validation
Application/Common/Behaviors/ValidationBehavior.cs
Commerce domain
- Unit of work
Domain/Interfaces/IUnitOfWork.cs - Repository contracts
Domain/Interfaces - Commerce entities
Domain/Entities - Audit and soft-delete fields
Domain/Common/BaseAuditabelEntity.cs
Persistence and auth
- EF Core context
Persistance/AppDbContext.cs - Base repository
Persistance/Common/BaseRepository.cs - Category repository
Persistance/Repositories/CategoryRepository.cs - Product repository
Persistance/Repositories/ProductRepository.cs - Image repository
Persistance/Repositories/ProductImageRepository.cs - Order repository
Persistance/Repositories/OrderRepository.cs - User repository
Persistance/Repositories/UserRepository.cs - JWT token generator
Infrastructure/Authentication/JwtTokenGenerator.cs
Other components
- API client
Connections 29
- API client → Category API: sends requests
- API client → Product API: sends requests
- API client → Product image API: sends requests
- API client → Order API: sends requests
- API client → Authentication API: sends requests
- Category API → Category workflows: dispatches commands and queries
Web.API/Controllers/CategoryController.cs - Product API → Product workflows: dispatches commands and queries
Web.API/Controllers/ProductController.cs - Product image API → Image workflows: dispatches commands and queries
Web.API/Controllers/ProductImageController.cs - Order API → Order workflows: dispatches commands
Web.API/Controllers/OrderController.cs - Authentication API → Auth workflows: dispatches commands
- Category workflows → Unit of work: uses repositories
Application/Mediart/Queries/Category/GetAllCategoriesQuery.cs - Product workflows → Unit of work: uses repositories
Application/Mediart/Queries/Product/GetFilteredProductQuery.cs - Order workflows → Unit of work: uses repositories
Application/Mediart/Queries/Order/GetFilteredOrderQuery.cs - Image workflows → Unit of work: uses repositories
Application/Mediart/Queries/ProductImage/GetProductImagesByProductIdQuery.cs - Unit of work → Repository contracts: exposes repositories
Domain/Interfaces/IUnitOfWork.cs - Category workflows → Category repository: queries categories
Application/Mediart/Queries/Category/GetAllCategoriesQuery.cs - Product workflows → Product repository: queries products
Application/Mediart/Queries/Product/GetFilteredProductQuery.cs - Image workflows → Image repository: queries images
Application/Mediart/Queries/ProductImage/GetProductImagesByProductIdQuery.cs - Order workflows → Order repository: queries orders
Application/Mediart/Queries/Order/GetFilteredOrderQuery.cs - Category repository → Base repository: inherits repository behavior
- Product repository → Base repository: inherits repository behavior
- Image repository → Base repository: inherits repository behavior
Persistance/Repositories/ProductImageRepository.cs - Order repository → Base repository: inherits repository behavior
Persistance/Repositories/OrderRepository.cs - User repository → Base repository: inherits repository behavior
Persistance/Repositories/UserRepository.cs - Base repository → EF Core context: uses EF context
Persistance/Common/BaseRepository.cs - EF Core context → Audit and soft-delete fields: applies audit behavior
Persistance/AppDbContext.cs - EF Core context → Commerce entities: maps domain entities
- Auth workflows → JWT token generator: generates tokens
- Exception handling → Category API: handles request errors