Skip to main content

Asset Service Application Layer

Implementation

Application is a folder/namespace in the web project. AssetCommands coordinates aggregate writes, tenant/actor context, repository access, audit/timeline ports, workflow calls, and unit-of-work save. DocumentCommands coordinates document gateway operations and evidence. AssetQueries implements read projections over IQueryable repository access. AssetCompatService adapts legacy-shaped requests and responses.

Endpoint delegates call these concrete services directly. A lightweight Result type expresses validation, not-found, conflict, and forbidden outcomes; EndpointResults maps them to HTTP responses. DTOs are C# records and mappings are explicit extension methods. DbContext SaveChanges forms the transaction boundary and converts queued domain events into outbox records.

MediatR, FluentValidation, AutoMapper, a command-bus pipeline, separate handler classes, and a generic application service framework are absent. Some observability endpoints query DbContext directly, so API-to-Application separation is not absolute.

Requires confirmation

Production ownership, authorization governance, operational policy, and future architecture require confirmation where the source does not enforce them.

Source References

  • microservices/src/asset-service/Application/Commands/AssetCommands.cs
  • microservices/src/asset-service/Application/Queries/AssetQueries.cs
  • microservices/src/asset-service/Application/Common/Abstractions.cs
  • microservices/src/asset-service/Application/Mappings.cs