# AI and developer navigation (large repository) This document helps **find code quickly** in a very large solution. It does **not** replace [CLAUDE.md](../../CLAUDE.md) (rules and patterns) or [general-structure.md](general-structure.md) (layering and ILogic details). Use it as a **map**: where to look before running broad searches. ## How this fits other docs | Need | Primary doc | |------|-------------| | Mandatory patterns, Result, dual API, DB, encoding | [CLAUDE.md](../../CLAUDE.md) | | Layering, ClassContainer, ILogic / BL / WS | [general-structure.md](general-structure.md) | | Adding REST methods (legacy + modern) | [../guides/services/add-webservice-methods.md](../guides/services/add-webservice-methods.md) | | MVVM, modules, UI | [../guides/ui/](../guides/ui/) and [../reference/architecture/mvvm-in-centron.md](../reference/architecture/mvvm-in-centron.md) | ## Top-level layout | Path | Role | |------|------| | `src/backend/` | `Centron.BL`, `Centron.DAO`, `Centron.Entities`, `Centron.Interfaces`, `Centron.Common`, `Centron.Gateway` | | `src/centron/` | WPF client (`Centron.WPF.UI`, `Centron.WPF.UI.Extension`) | | `src/webservice/` | `Centron.WebServices.Core` (legacy REST), `Centron.Controllers` (ASP.NET Core API), hosts (`Centron.Host*`) | | `src/nexus/` | Blazor Server portal (`CentronNexus`, hosts, Outlook add-in) | | `src/apis/` | External integration assemblies (FinAPI, GLS, Shipcloud, ITscope, Icecat, etc.) | | `src/shared/` | `Centron.Core`, `Centron.Controls`, reusable UI | | `tests/` | Unit, integration, E2E, API tests, Playwright, Nexus tests | | `scripts/` | `Centron.Scripts` build orchestration | | `deployment/` | WiX / installers | | `.claude/` | Claude Code agents, commands, hooks (not used by Cursor rules) | Solution file: `Centron.sln` (groups many projects; not every folder under `src/` is listed above—search the `.sln` for exact project names). ## Find code by concern | You need | Where to look | |----------|----------------| | **NHibernate entity** | `src/backend/Centron.Entities/` (namespaces like `Centron.Data.Entities.*`) | | **FluentNHibernate mapping** | `src/backend/Centron.DAO/Mappings/` (mirrors domain folders, e.g. `Mappings/Accounting/`) | | **Business logic (BL)** | `src/backend/Centron.BL/` (`*BL.cs`, script methods under `Administration/Scripts/ScriptMethods/Scripts/`) | | **DAO / queries** | `src/backend/Centron.DAO/` | | **ILogic interface** | `src/centron/Centron.WPF.UI/Services/Logics/**/I*Logic.cs` | | **BLLogic / WSLogic** | Same tree: `src/centron/Centron.WPF.UI/Services/Logics/**/BL*Logic.cs`, `WS*Logic.cs` | | **WebServiceBL + DTO mapping** | `src/backend/Centron.BL/` (often `WebServices/` or domain folders; AutoMapper profiles in `WebServices/ObjectMapperConfiguration/`) | | **Legacy REST contract** | `src/backend/Centron.Interfaces/` (`ICentronRestService`), implementation `src/webservice/Centron.WebServices.Core/RestService/CentronRestService.cs` | | **Modern REST controllers** | `src/webservice/Centron.Controllers/Controllers/` (`v1/{Domain}/`, `Unversioned/`) | | **WPF module registration** | `src/centron/Centron.WPF.UI/Modules/ModuleRegistration.cs` | | **Application settings IDs** | `src/backend/Centron.Interfaces/Administration/Settings/ApplicationSettingID.cs`, `ApplicationSettingDefinitions.cs` | | **User rights constants** | `src/webservice/Centron.WebServices.Core/EntitiesWrongPlace/Administration/Rights/UserRightsConst.cs` | **Search tip:** For a feature name (e.g. `Receipt`), search the **interface** name first (`IReceipt*Logic`, `*Receipt*WebServiceBL`, `Receipt*Controller`) to narrow the tree. ## Test projects (targeted runs) Use `dotnet test Centron.sln` for everything; for **faster feedback** narrow to a project: | Project path | Typical use | |--------------|-------------| | `tests/backend/Centron.Tests.BL` | Business logic unit tests | | `tests/backend/Centron.Tests.DAO` | DAO / persistence tests | | `tests/shared/Centron.Tests.Core` | Shared test utilities | | `tests/Centron.Tests.Integration` | Integration | | `tests/Centron.Tests.EndToEnd` | E2E | | `tests/apis/*` | External API wrapper tests | | `tests/CentronNexusTests` | Blazor portal | | `tests/PlaywrightTests` | Browser E2E | Example: `dotnet test tests/backend/Centron.Tests.BL/Centron.Tests.BL.csproj` ## Claude Code vs Cursor - **`.claude/`** — agents and commands for Claude Code. - **`.cursor/rules/`** — Cursor project rules; still follow **CLAUDE.md** as the canonical playbook. Keeping behavioral rules in **one place** ([CLAUDE.md](../../CLAUDE.md)) avoids drift; this file only improves **orientation** in the tree.