1- ## Part 6: Real-World Features — CRUD Operations, Dashboard, Search, and Analytics
1+ # Part 6: Real-World Features — CRUD Operations, Dashboard, Search, and Analytics
22
3- # Building Modern Web Applications with Angular, .NET, and OAuth 2.0
3+ ## Building Modern Web Applications with Angular, .NET, and OAuth 2.0
44
55** [ ← Part 5: Advanced Topics] ( 05-advanced-topics.md ) ** | ** [ Tutorial Home] ( TUTORIAL.md ) **
66
1111This final part demonstrates real-world features aligned with the ** actual TalentManagement project** implementation:
1212
1313* ** Complete CRUD Operations** — Full Create, Read, Update, Delete workflows with Guid IDs
14+ * ** Custom Mediator Pattern** — Using custom IMediator implementation (not MediatR library)
1415* ** Repository Pattern** — Using IEmployeeRepositoryAsync instead of direct DbContext
1516* ** Result Wrapper** — Handling Result<T > and PagedResult<T > responses
1617* ** Base API Service** — Generic service pattern for Angular
@@ -26,9 +27,9 @@ This final part demonstrates real-world features aligned with the **actual Talen
2627** GetEmployeeByIdQuery.cs:**
2728
2829``` csharp
29- using MediatR ;
30- using TalentManagementAPI .Application .Common . Interfaces ;
31- using TalentManagementAPI . Application . DTOs ;
30+ using TalentManagementAPI . Application . Messaging ;
31+ using TalentManagementAPI .Application .Interfaces . Repositories ;
32+ using Mapster ;
3233
3334namespace TalentManagementAPI .Application .Features .Employees .Queries .GetEmployeeById
3435{
@@ -72,7 +73,7 @@ namespace TalentManagementAPI.Application.Features.Employees.Queries.GetEmployee
7273** UpdateEmployeeCommand.cs:**
7374
7475``` csharp
75- using MediatR ;
76+ using TalentManagementAPI . Application . Messaging ;
7677using TalentManagementAPI .Application .Events ;
7778using TalentManagementAPI .Domain .ValueObjects ;
7879
@@ -143,7 +144,7 @@ namespace TalentManagementAPI.Application.Features.Employees.Commands.UpdateEmpl
143144** DeleteEmployeeByIdCommand.cs:**
144145
145146``` csharp
146- using MediatR ;
147+ using TalentManagementAPI . Application . Messaging ;
147148
148149namespace TalentManagementAPI .Application .Features .Employees .Commands .DeleteEmployeeById
149150{
@@ -181,13 +182,17 @@ namespace TalentManagementAPI.Application.Features.Employees.Commands.DeleteEmpl
181182```
182183
183184** Key Features:**
185+ - Uses ** custom mediator pattern** (` TalentManagementAPI.Application.Messaging ` , not MediatR library)
184186- Uses ** Repository pattern** (` IEmployeeRepositoryAsync ` )
185187- Returns ` Result<T> ` wrapper (not bare values)
186188- Uses ` Guid ` for all entity IDs
187189- Updates ** PersonName** value object
188190- Publishes ** domain events** on changes
189191- Proper null checking with failure results
190192
193+ ![ CRUD Operations] ( images/crud-operations.png )
194+ * Figure 10: TalentManagement CRUD operations - Create, Read, Update, Delete employee records*
195+
191196---
192197
193198### Frontend: Complete CRUD with BaseApiService
@@ -602,6 +607,9 @@ this.employeeService.getAllPaged(params).subscribe({
602607* Client controls response payload
603608* Security: only allowed fields can be requested
604609
610+ ![ Search and Filtering] ( images/search-filtering-ui.png )
611+ * Figure 11: Advanced search and filtering with pagination and field shaping*
612+
605613---
606614
607615## 📝 Summary
@@ -654,6 +662,3 @@ In this final part, we covered **real-world features** aligned with the actual p
654662
655663** Start from beginning:** [ Part 1: Foundation →] ( 01-foundation.md )
656664
657- ---
658-
659- ** 📌 Tags:** #crud #repository #valueobjects #domainevents #result-wrapper #fieldshaping #pagination #cleanarchitecture #angular #dotnet #typescript #csharp #guid #baseservice #production
0 commit comments