Skip to content
CAI
Software that uses CAICheck a score

aspnetrun/run-aspnetcore-cqrs

39.3

Weak · 21 September 2026

4.4k

lines of production code

C#

with TypeScript

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

AspnetRun is a full-stack e-commerce and contract management application built on ASP.NET Core and Angular. It provides a RESTful API for managing products, customers, orders, and payments, supported by a SQL Server backend with Entity Framework Core. The system implements Clean Architecture with Domain-Driven Design, featuring JWT-based authentication and comprehensive validation logic for all business operations.

Features

Added core domain entities for orders, contracts, and payments

The core domain model has been expanded with new entity classes to support e-commerce and contract management. This includes Order and OrderItem for managing customer purchases, Contract and ContractItem for handling contracts, and Payment and PaymentItem for processing transactions. Additionally, supporting entities such as Customer, Address, Product, Category, and Specification have been introduced, along with base classes for entities and enumerations.

AspnetRun.Core · high confidence

Added product command handlers and request validators

The application layer now includes command handlers for creating, updating, and deleting products, as well as validation rules for all product-related requests. This introduces the core application logic for product management operations, ensuring that requests are validated before processing.

src/AspnetRun.Api/Application · high confidence

Application layer scaffolding for product, category, and customer domains

The application layer now includes the foundational structure for managing products, categories, and customers. This includes domain models (ProductModel, CategoryModel, CustomerModel), service interfaces and implementations (IProductService, ICategoryService, ICustomerService), and a dependency injection registrar to wire them up. The ProductService implements full CRUD operations (create, update, delete, search), while the CategoryService provides list and paginated search capabilities. The CustomerService is currently a placeholder with a NotImplementedException. Additionally, an ApplicationException class and an AutoMapper configuration for entity-to-model mapping are introduced.

src/AspnetRun.Application · high confidence

Initial Angular web application structure and core services

The AspnetRun.Web project is initialized with a complete Angular 8 application structure, including routing, a core module with HTTP interceptors for authentication and error handling, and shared modules for UI components and validation. This adds the foundational layers for the web client, including the main app component, layout components, and service providers for data access and authentication.

src/AspnetRun.Web · high confidence

Initial infrastructure layer with persistence, authentication, and domain models

The infrastructure layer now provides the foundational data access and domain models for the application. This includes the \AspnetRunContext\ for Entity Framework Core, supporting transactional behavior and database seeding for categories, products, and users. The system introduces ASP.NET Identity with JWT authentication, defining \AspnetRunUser\ and \AspnetRunRole\ entities. Domain entities such as \Order\, \Payment\, \Contract\, and \Product\ are established, along with repository interfaces and a generic repository base class. Additionally, a specification pattern is implemented for query composition, and paging/filtering options are introduced to support data retrieval.

src/AspnetRun.Infrastructure · high confidence

Initial release of the AspnetRun API with authentication and core endpoints

The AspnetRun API is now available, introducing JWT-based authentication via the new AccountController, along with read-only endpoints for browsing and searching categories, products, and customers. The API is configured with SQL Server persistence, Swagger documentation, and a database seed on startup.

src/AspnetRun.Api/Controllers · high confidence

Initial release of the AspnetRun Angular Real World application

The project has been initialized with a complete solution structure for an ASP.NET Core application following Clean Architecture and Domain-Driven Design principles. The solution file defines the core, application, infrastructure, API, and test projects, while the README provides comprehensive documentation on the architecture, prerequisites, and setup instructions for building and running the e-commerce domain application.

(repo-wide) · high confidence

New request models for product and customer operations

The API layer now includes request models for creating, updating, and deleting products, as well as retrieving product and customer details. This includes specific request classes for operations such as creating a product, deleting a product by ID, and fetching products by ID, name, or category. Additionally, a login request model has been added to support authentication flows.

src/AspnetRun.Api/Requests · high confidence

Behavioural changes

Centralized dependency registration for commands and validators

The IoC layer now explicitly registers all command handlers and their corresponding FluentValidation validators via the new DependencyRegistrar. This ensures that the application's command processing and validation logic are properly wired up within the dependency injection container.

src/AspnetRun.Api/IoC · high confidence

Test coverage

Added initial unit test for the AspnetRun.Tests project

Added a new unit test file (UnitTest1.cs) in the test directory, establishing the baseline for test coverage in the AspnetRun.Tests project.

test · high confidence

Dependencies

Initial project structure and dependency setup

The project was initialized with a new .NET Core 2.2 solution structure, adding the AspnetRun.Api, AspnetRun.Application, AspnetRun.Core, and AspnetRun.Infrastructure projects with their respective NuGet package references (e.g., FluentValidation, MediatR, AutoMapper, xUnit). Simultaneously, the Angular frontend was set up with Angular v8.2.7, including dependencies for CoreUI, ngx-bootstrap, ngx-toastr, and angular-slickgrid, establishing the initial build and runtime environment for both client and server sides.

(dependencies) · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 41 → 39 (-1.5)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 66 → 61 (-4.7)
  • Architecture 81 → 78 (-3.5)
  • Maturity 51 → 51 (+0.0)
  • Readiness 28 → 27 (-1.6)
  • Security 54 → 51 (-2.7)
  • Accessibility 46 → 45 (-1.0)

Resolved (62)

  • Bounded contexts not declared
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • …and 42 more

New (132)

  • CommentedOutCode (src/AspnetRun.Infrastructure/IoC/DependencyRegistrar.cs)
  • CommentedOutCode (src/AspnetRun.Infrastructure/IoC/DependencyRegistrar.cs)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • Critical CVE: [GHSA redacted] (src/AspnetRun.Web/package-lock.json)
  • …and 112 more

API surface

  • Unchanged — 7 HTTP endpoints

Architecture

  • Unchanged — 2 containers · 1 contexts · 0 edges

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

aspnetrun/run-aspnetcore-cqrs was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit 338911bd298cd11832acbebd82e2f067983846f9 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-28e75b8e3254.