AUA Framework Training — Episode 22

Reporting Architecture (Part 1)

Mastering Operational Reports, ListService Implementation, and Enterprise Reporting Patterns in AUA

Watch Video on YouTube

The Importance of Reporting

View Full Reporting Documentation

Reporting represents the final product of core operational data. It is vital for organizational users and managers to meet requirements faster, more dynamically, and with precise visibility into system metrics.

Operational Reports (ListService)

Operational reports provide quick, simple data retrieval with support for various filters across any entity. Known as ListService within the AUA framework architecture, they consist of a single input view model (filters) and a single output view model. If a non-zero TotalCount is passed via input, the framework bypasses automatic computation and returns the value unchanged.

4-Step Implementation Workflow
1 Create SearchVm (Input Model)
2 Create ListDto (Output Return)
3 Create Interface (For Injection)
4 Create ListService (Apply Filters)

Enterprise Reports

Enterprise reports offer complete, professional architecture sharing structural similarities with ListServices. By leveraging operator Specification Patterns, developers can easily execute complex, heavy-duty queries. Total count calculations are handled automatically unless overridden by an explicit non-zero input value.

1. ListService DTOs & SearchViewModel Pattern

UserAccessListService.cs

Operational reports in AUA use a clean 1-input (SearchVm) to 1-output (GridDto) pattern. If TotalCount is passed in the search request, recalculation is bypassed for faster response times.

// 1. Search Filter Input ViewModel
public class UserAccessReportSearchVm : BaseSearchListVm
{
    public string Title { get; set; }
    public int? AccessCode { get; set; }
}

// 2. Grid Output Item DTO
public class UserAccessReportGridVm : BaseEntityDto, IMapFrom<UserAccess>
{
    public string Title { get; set; }
    public int AccessCode { get; set; }
}
“
”
"If you think good architecture is expensive, try bad architecture."
AUA Framework Philosophy

Official Channels & Community

Connect with the AUA Framework ecosystem.