Navigate and understand the EvaAPI codebase structure. Use when searching for models, services, controllers, migrations, or any code related to Eva database entities...
This skill helps you navigate the EvaAPI .NET Core application codebase located at C:\Users\mshepherd\p\leb\EvaAPI.
C:\Users\mshepherd\p\leb\EvaAPI\
โโโ Data\ # Database context and entity models
โ โโโ EvaDbContext.cs # Main DbContext with all DbSets
โ โโโ Models\ # Entity models organized by domain
โ โโโ Committees\ # Committee-related entities
โ โ โโโ CommitteeReports\ # Committee report entities
โ โโโ Calendar\ # Calendar entities
โ โโโ Journal\ # Journal entities
โ โโโ Sessions\ # Session entities
โ
โโโ Services\ # Business logic services
โ โโโ CommitteeManagement\ # Committee-related services
โ โ โโโ CommitteeReports\ # Committee report services
โ โโโ CalendarManagement\ # Calendar services
โ โโโ JournalManagement\ # Journal services
โ
โโโ Controllers\ # API endpoints
โ โโโ CommitteeReportsController.cs
โ โโโ SessionsController.cs
โ โโโ CalendarController.cs
โ
โโโ Dtos\ # Data Transfer Objects
โ โโโ CommitteeReports\ # DTOs for committee reports
โ โโโ Calendar\ # DTOs for calendar
โ
โโโ Migrations\ # EF Core database migrations
โ โโโ EvaDbContextModelSnapshot.cs # Current DB schema snapshot
โ
โโโ Interfaces\ # Service interfaces
โโโ Utilities\ # Helper classes
โโโ Extensions\ # Extension methods
โโโ Filters\ # API filters
โโโ Mapping\ # AutoMapper profiles
โโโ Settings\ # Configuration classes
Location: Data\Models\[Domain]\
Examples:
Data\Models\Committees\CommitteeReports\CommitteeReport.csData\Models\Committees\CommitteeReports\CommitteeReportCommitteeAction.csData\Models\Sessions\Session.csHow to find:
# Find entity by name
cd C:\Users\mshepherd\p\leb\EvaAPI
Get-ChildItem -Path Data\Models -Recurse -Filter "*CommitteeReport*.cs"
# Find all models in a domain
Get-ChildItem -Path Data\Models\Committees -Recurse -Filter *.cs
Location: Data\EvaDbContext.cs
Contains all DbSet<T> declarations that map to database tables.
Example DbSets:
DbSet<CommitteeReport> CommitteeReportsDbSet<CommitteeReportCommitteeAction> CommitteeReportCommitteeActionsDbSet<Session> SessionsLocation: Services\[Domain]\
Examples:
Services\CommitteeManagement\CommitteeReports\CommitteeReportAgendaItemService.csServices\CommitteeManagement\CommitteeReports\CommitteeReportService.csServices\SessionManagement\SessionService.csHow to find:
# Find service by feature
Get-ChildItem -Path Services -Recurse -Filter "*CommitteeReport*.cs"
# Search for specific method usage
Select-String -Path Services\**\*.cs -Pattern "GetAvailableActions"
Location: Controllers\
Examples:
Controllers\CommitteeReportsController.csControllers\SessionsController.csHow to find:
# List all controllers
Get-ChildItem -Path Controllers -Filter *.cs
# Find controller by feature
Get-ChildItem -Path Controllers -Filter "*CommitteeReport*.cs"
Location: Migrations\
Pattern: {Timestamp}_{Description}.cs
Examples:
Migrations\20240607134553_2968__CommitteeReportsRewrite.csMigrations\20240820204656_3881_committee-report-additional-actions.csCurrent Schema: Migrations\EvaDbContextModelSnapshot.cs
How to find migrations for a table:
# Find migrations that reference a specific table
Select-String -Path Migrations\*.cs -Pattern "CommitteeReportCommitteeActions" | Select-Object -First 5
cd C:\Users\mshepherd\p\leb\EvaAPI
# Search all C# files (excluding migrations)
Get-ChildItem -Recurse -Filter *.cs -Exclude *Migration*,*Designer* |
Select-String -Pattern "CommitteeReportCommitteeActions" -SimpleMatch
# 1. Find the entity model
Get-ChildItem -Path Data\Models -Recurse -Filter "*CommitteeReport*.cs"
# 2. Find services using it
Get-ChildItem -Path Services -Recurse -Filter *.cs |
Select-String -Pattern "CommitteeReport"
# 3. Find controllers using it
Get-ChildItem -Path Controllers -Filter *.cs |
Select-String -Pattern "CommitteeReport"
Get-ChildItem -Path Dtos -Recurse -Filter "*CommitteeReport*.cs"
# Find all DbSet declarations
Select-String -Path Data\EvaDbContext.cs -Pattern "DbSet<"
# Find all API endpoints for a feature
Select-String -Path Controllers\CommitteeReportsController.cs -Pattern "\[Http"
CommitteeReports, CommitteeReportActions, SessionsCommitteeReport, CommitteeReportAction, SessionCommitteeReport.csCommitteeReports, CommitteeReportActionsEvaDbContext.csProgram.cs - Application startup and configurationappsettings.json - Production configurationappsettings.development.json - Development configuration (has connection strings)Data\EvaDbContext.cs - Database context with all tablesMigrations\EvaDbContextModelSnapshot.cs - Current complete schemaSettings\JwtSettings.cs - JWT authentication settingsSettings\EmailSettings.cs - Email configurationData\Models\ to understand the structureServices\ for business logicControllers\ for API endpointsData\Models\Committees\CommitteeReports\Services\CommitteeManagement\CommitteeReports\Controllers\CommitteeReportsController.csDtos\CommitteeReports\Data\Models\Sessions\Services\SessionManagement\Controllers\SessionsController.csData\Models\Calendar\Services\CalendarManagement\Controllers\CalendarController.csSee SEARCH-COMMANDS.md for comprehensive search examples.