How abdulrahman-elnabawi/ordrer-api works
This repository is the service-layer and domain core for an order-management REST API. Its principal documented workflow is creating and retrieving orders; the sampled implementation builds an order from a basket, persists it, and removes the basket. Product browsing, basket management, payment-intent handling, and JWT-based user authentication are additional capabilities. The tree contains no controllers or hosting entry point, so the graph starts at service operations rather than claiming a specific HTTP route. Some subsystem connections are supported only by the SOURCE INDEX.
Main entry points: OrderService.cs Order service · BasketService.cs Basket service · ProductService.cs Product service · PaymentService.cs Payment service
Components 23
Catalog and domain
- Product service
Services/Services/ProductService/ProductService.cs - Catalog entities
Core/Entities/Product.cs - Pagination
Services/Helper/Pagination.cs
Basket and ordering
- Basket service
Services/Services/BasketService/BasketService.cs - Basket data
Infrastructure/BasketRepository/BasketEntities/CustomerBasket.cs - Basket repository
Infrastructure/BasketRepository/BasketRepository.cs - Order service
Services/Services/OrderService/OrderService.cs - Order entities
Core/Entities/OrderEntities/Order.cs - Order result DTO
Services/Services/OrderService/Dto/OrderResultDto.cs - Payment service
Services/Services/PaymentService/PaymentService.cs
Persistence
- Unit of work
Infrastructure/Repositores/UnitOfWork.cs - Generic repository
Infrastructure/Repositores/GenericRepository.cs - Product repository
Infrastructure/Repositores/ProductRepository.cs - Query specifications
Infrastructure/Specifications/ISpecifications.cs - Store database context
Core/DbContexts/StoreDbContext.cs
Identity and services
- User service
Services/UserService/UserService.cs - Token service
Services/Services/TokenService/TokenService.cs - Application user
Core/IdentityEntities/AppUser.cs - Identity context
Core/IdentityDbContext/AppIdentityDbContext.cs - Cache service
Services/Services/CacheService/CacheService.cs
Other components
- API client
- Stripe
- Redis
Connections 26
- API client → Product service: requests catalog
- API client → Basket service: manages basket
- API client → Order service: requests orders
- API client → User service: authenticates
- Product service → Unit of work: queries through
Services/Services/ProductService/ProductService.cs - Product service → Query specifications: selects with
Services/Services/ProductService/ProductService.cs - Product service → Pagination: paginates
Services/Services/ProductService/ProductService.cs - Basket service → Basket repository: reads and writes
Services/Services/BasketService/BasketService.cs - Basket service → Basket data: maps basket
Services/Services/BasketService/BasketService.cs - Basket repository → Redis: stores basket
Infrastructure/BasketRepository/BasketRepository.cs - Basket repository → Basket data: serializes
Infrastructure/BasketRepository/BasketRepository.cs - Order service → Basket service: loads and deletes
Services/Services/OrderService/OrderService.cs - Order service → Unit of work: persists orders
Services/Services/OrderService/OrderService.cs - Order service → Payment service: updates intent
Services/Services/OrderService/OrderService.cs - Order service → Order entities: creates order
Services/Services/OrderService/OrderService.cs - Order service → Order result DTO: maps result
Services/Services/OrderService/OrderService.cs - Payment service → Basket service: loads and updates
Services/Services/PaymentService/PaymentService.cs - Payment service → Unit of work: loads and updates
Services/Services/PaymentService/PaymentService.cs - Payment service → Stripe: creates or updates intent
Services/Services/PaymentService/PaymentService.cs - Unit of work → Generic repository: provides repositories
- Generic repository → Store database context: queries database
Infrastructure/Repositores/GenericRepository.cs - Generic repository → Query specifications: evaluates queries
Infrastructure/Repositores/GenericRepository.cs - Product repository → Store database context: queries catalog
Infrastructure/Repositores/ProductRepository.cs - User service → Token service: issues tokens
Services/UserService/UserService.cs - User service → Application user: manages account
Services/UserService/UserService.cs - Token service → Application user: builds claims
Services/Services/TokenService/TokenService.cs