Skip to main content

Velox Web Knowledge Map

This repository is the older ASP.NET Core MVC portal for Velox/VxData. It contains a layered solution with common infrastructure, EF Core data access, services, external address providers, MVC areas/views/controllers, and tests.

Complexity is estimated from code volume, coupling to VxData/VxConfig, authentication impact, UI surface area, and integration risk. When behavior is not clear from the repository files alone, it is marked as unclear.

Web Host, Startup, and Routing

Purpose:

  • Boots the MVC web portal, registers dependencies, configures middleware, and maps routes.
  • Establishes session, authentication, controllers, Razor views, Swagger, static files, and area routing.

Main classes:

  • Program
  • Legacy/root Startup and Program files exist outside velox.web; their current runtime role is unclear.
  • PortalModule
  • AppInitFilter

Dependencies:

  • ASP.NET Core MVC.
  • Razor views.
  • Swagger/OpenAPI packages.
  • Dependency injection modules from velox.common, velox.data, velox.service, and external provider projects.

Important entry points:

  • velox.web\Program.cs
  • velox.web\velox.web.csproj
  • velox.web.sln
  • MVC routes configured in startup.

Important configuration:

  • velox.web\appsettings.json
  • velox.web\appsettings.Development.json
  • velox.web\Properties\launchSettings.json
  • Session/authentication/cookie settings in startup.

Related documentation:

  • architecture.md
  • README.md

Estimated complexity: Medium

Portal MVC Areas and Views

Purpose:

  • Provides user-facing portal screens for transactions, administration, dashboard, identity/account flows, OAuth, flow/API interactions, and shared components.
  • Uses controllers and Razor views to expose VxData objects and Velox process state.

Main classes:

  • Controllers under velox.web\Areas\Administration\Controllers
  • Controllers under velox.web\Areas\Api\Controllers
  • Controllers under identity/OAuth/dashboard/transaction areas.
  • Razor views under velox.web\Areas\*\Views and shared components.

Dependencies:

  • Service layer in velox.service.
  • DevExtreme UI conventions and static assets.
  • ASP.NET Core MVC/Razor.
  • Authentication and request context.

Important entry points:

  • velox.web\Areas\Administration\Controllers\HomeController.cs
  • velox.web\Areas\Administration\Controllers\*\*Controller.cs
  • velox.web\Areas\Administration\Controllers\*\*ApiController.cs
  • velox.web\Views\Shared
  • Area route registrations in Program.cs.

Important configuration:

  • Layout and app configuration sections.
  • Route area names and controller/action naming.
  • UI behavior in JavaScript/CSS assets under wwwroot.

Related documentation:

  • architecture.md
  • POSTING DEVEXTREME FORM WITH AJAX.txt
  • right click menu.txt
  • Identity.txt

Estimated complexity: High

Data Access and EF Core Contexts

Purpose:

  • Maps VxData and Velox configuration databases into EF Core contexts and entity models.
  • Provides the persistence foundation for repositories, services, identity, and portal UI.

Main classes:

  • VxDataContext
  • VxConfigContext
  • BaseDbContext
  • BaseIdentityDbContext
  • Entity classes under velox.data\Models
  • Identity classes under velox.data\IdentityModels

Dependencies:

  • Entity Framework Core.
  • SQL Server.
  • VxData schema from velox-data.
  • Velox configuration database schema from velox.
  • AutoMapper profiles in data infrastructure.

Important entry points:

  • velox.data\Context\VxDataContext.cs
  • velox.data\Context\VxConfigContext.cs
  • velox.data\Context\VxDataContextPartial.cs
  • velox.data\Infrastructure\DataModule.cs
  • velox.data\EntityFrameWorkDBBuild.txt
  • velox.data\IdentityFrameWorkDBBuild.txt

Important configuration:

  • ConnectionStrings in appsettings.
  • EF model mappings and partial context extensions.
  • The exact scaffold/regeneration process is partly documented in text files but should be confirmed before changing models.

Related documentation:

  • architecture.md
  • velox.data\EntityFrameWorkDBBuild.txt
  • velox.data\IdentityFrameWorkDBBuild.txt
  • ..\velox-data\KNOWLEDGE_MAP.md

Estimated complexity: High

Repository Layer

Purpose:

  • Encapsulates EF data access and DevExtreme-compatible query/update behavior.
  • Separates VxData repositories from Velox configuration repositories.

Main classes:

  • RepositoryBase
  • RepositoryIdentityBase
  • VeloxRepositoryBaseData
  • VeloxRepositoryBaseConfig
  • DevExtremeRepositoryBase
  • DevExtremeRepositoryBaseGeneric
  • DevExtremeRepositoryBaseConfig
  • Domain repositories under velox.data\Repositories

Dependencies:

  • EF Core contexts.
  • DevExtreme data loading/update patterns.
  • Request/user context.
  • Domain model classes and data models.

Important entry points:

  • velox.common\Repositories\RepositoryBase.cs
  • velox.data\Repositories\VeloxRepositoryBaseData.cs
  • velox.data\Repositories\VeloxRepositoryBaseConfig.cs
  • velox.data\Repositories\Num
  • velox.data\Repositories\Generic
  • velox.data\Repositories\VeloxConfig

Important configuration:

  • DI registrations in DataModule.
  • Repository lifetimes.
  • Model-to-entity mapping rules.

Related documentation:

  • architecture.md
  • Repository tests under velox.web.test\RepositoryTest

Estimated complexity: High

Service and Business Layer

Purpose:

  • Provides application services over repositories for portal screens, APIs, account management, email, Velox API calls, webhook processing, and domain operations.
  • Implements reusable business operations outside controllers.

Main classes:

  • ServiceModule
  • BaseDevExtremeService
  • BaseDevExtremeServiceGeneric
  • BaseDevExtremeServiceConfig
  • Domain services under velox.service\Services\Num, Generic, VeloxConfig, and Other.
  • EmailService
  • AccountService
  • VeloxApiService
  • VeloxFlowService

Dependencies:

  • Repository layer.
  • AutoMapper.
  • MailKit/email configuration.
  • HTTP calls to VeloxAPIService.
  • Request/user context.

Important entry points:

  • velox.service\Infrastructure\ServiceModule.cs
  • velox.service\Services\Num
  • velox.service\Services\Generic
  • velox.service\Services\VeloxConfig
  • velox.service\Services\Other

Important configuration:

  • EmailConfig
  • AppConfig
  • Velox API host/port settings.
  • DI service lifetimes in ServiceModule.

Related documentation:

  • architecture.md
  • Service tests under velox.web.test

Estimated complexity: High

Dependency Injection and Configuration Modules

Purpose:

  • Organizes service registration into modules so each project can register its own dependencies and configuration.
  • Binds appsettings sections to strongly typed config classes.

Main classes:

  • IServiceCollectionModule
  • ServiceCollectionExtensions
  • ConfigurationModule
  • DataModule
  • ServiceModule
  • PortalModule
  • AddressFinderModule
  • GoogleAddressModule

Dependencies:

  • ASP.NET Core dependency injection.
  • Microsoft.Extensions.Configuration.
  • Project assembly scanning or module registration helpers.

Important entry points:

  • velox.common\Extensions\ServiceCollectionExtensions.cs
  • velox.common\Extensions\ConfigurationModule.cs
  • velox.data\Infrastructure\DataModule.cs
  • velox.service\Infrastructure\ServiceModule.cs
  • velox.web\Infrastructure\PortalModule.cs

Important configuration:

  • ConnectionStrings
  • EmailConfig
  • CacheConfig
  • AddressFinderConfig
  • GoogleAddressConfig
  • AppConfig
  • LayoutConfig

Related documentation:

  • architecture.md

Estimated complexity: Medium

Authentication, Authorization, and Request Context

Purpose:

  • Handles identity, login/account operations, claims transformation, user/party access, and request-scoped authorization context.
  • Restricts access to data and portal functions by user identity and allowed parties.

Main classes:

  • PortalUser
  • PortalRole
  • AddUserClaimsTransformation
  • IRequestContext
  • AccountService
  • AccountApiController
  • Login/account controllers.

Dependencies:

  • ASP.NET Core Identity.
  • EF Identity tables in VxData.
  • ClaimsPrincipal extensions.
  • User/party data services and repositories.

Important entry points:

  • velox.data\Transformation\AddUserClaimsTransformation.cs
  • velox.common\Context\IRequestContext.cs
  • velox.web\Areas\Administration\Controllers\AccountApiController.cs
  • Identity/OAuth area controllers.

Important configuration:

  • Identity database connection.
  • Authentication cookie/session settings.
  • User-party relationships.
  • OAuth callback behavior is present, but complete production flow is unclear from repository files alone.

Related documentation:

  • architecture.md
  • Identity.txt

Estimated complexity: High

Webhook and API Endpoints

Purpose:

  • Exposes API endpoints for transactions, uploads, webhooks, and portal/API interactions.
  • Bridges external requests into VxData services.

Main classes:

  • API area controllers under velox.web\Areas\Api\Controllers
  • WebHookService
  • WebHookFileService
  • WebHookRepository
  • WebHookFileRepository

Dependencies:

  • ASP.NET Core MVC/Web API.
  • Service layer.
  • VxData webhook/upload tables.
  • Authentication/authorization and request context.

Important entry points:

  • velox.web\Areas\Api\Controllers
  • velox.service\Services\Num\WebHookService.cs
  • velox.service\Services\Num\WebHookFileService.cs
  • velox.data\Repositories\Num\WebHookRepository.cs

Important configuration:

  • Routing and authentication policy.
  • Webhook table configuration.
  • Exact external authentication and retry semantics are unclear from this repository alone.

Related documentation:

  • architecture.md
  • ..\velox-data\KNOWLEDGE_MAP.md

Estimated complexity: Medium

Velox Flow and API Bridge

Purpose:

  • Integrates the web portal with Velox flow execution and VeloxAPIService.
  • Provides services for listing/triggering flows and calling the Delphi API service.

Main classes:

  • VeloxApiService
  • VeloxFlowService
  • VxActionService
  • VxLogService
  • Velox config repositories/data models under velox.data\DataModels\VeloxConfig.

Dependencies:

  • Velox configuration database.
  • Running VeloxAPIService.
  • VxAction/VxLog/VxFlow schema.
  • HTTP client/runtime configuration.

Important entry points:

  • velox.service\Services\Other\VeloxApiService.cs
  • velox.service\Services\Num\VeloxFlowService.cs
  • velox.service\Services\VeloxConfig\VxActionService.cs
  • velox.service\Services\VeloxConfig\VxLogService.cs

Important configuration:

  • Velox API host and port settings.
  • Connection strings for Velox config.
  • Flow/action IDs from database configuration.

Related documentation:

  • architecture.md
  • ..\velox\KNOWLEDGE_MAP.md
  • ..\velox-web2\KNOWLEDGE_MAP.md

Estimated complexity: Medium

External Providers, Email, Cache, and Utilities

Purpose:

  • Provides address lookup integrations, email sending, cache helpers, MIME/file helpers, validation, enums, and shared utility models.
  • Supports portal UX and service behavior without embedding provider-specific logic in controllers.

Main classes:

  • AddressFinderService
  • GoogleAddressService
  • EmailService
  • CacheConfig
  • FileHelpers
  • MimeTypeMap
  • Validation classes under velox.data\Validation.

Dependencies:

  • AddressFinder and Google Address APIs.
  • MailKit.
  • Application configuration.
  • Shared models and enums.

Important entry points:

  • velox.external.addressfinder
  • velox.external.googleaddress
  • velox.common\Helpers
  • velox.common\Config
  • velox.data\Validation

Important configuration:

  • AddressFinderConfig
  • GoogleAddressConfig
  • EmailConfig
  • CacheConfig
  • Provider keys/secrets should not be documented verbatim.

Related documentation:

  • architecture.md
  • velox.external.googleaddress\Parsing google address components.txt

Estimated complexity: Medium

Tests and Legacy Reference Material

Purpose:

  • Provides unit/integration tests for repositories, services, external providers, and pipelines.
  • Keeps old or exploratory code snippets under zUnneeded Code for reference.

Main classes:

  • Test classes under velox.web.test.
  • FindSuburbNumPipeline and related pipeline tests.
  • Reference snippets under zUnneeded Code.

Dependencies:

  • Test framework from project packages.
  • EF/database test setup, exact isolation strategy unclear.
  • External provider test configuration for address services.

Important entry points:

  • velox.web.test\velox.web.test.csproj
  • velox.web.test\WebModulesTest.cs
  • velox.web.test\RepositoryTest
  • velox.web.test\PipelineTests
  • zUnneeded Code

Important configuration:

  • Test connection strings and provider credentials are unclear from repository files alone.
  • Legacy snippets should not be treated as active runtime code without verification.

Related documentation:

  • architecture.md
  • zUnneeded Code\Readme.txt

Estimated complexity: Medium