TELS Quoting Service - Project Overview

🏠 Home quoting / Quoting / docs

TELS Quoting Service - Project Overview

Solution Structure

The solution (TELS Quoting.sln) contains 9 projects:

Application Projects

Project Type Framework Description
TELS.Quoting.Api Web API .NET 8.0 REST API for bid lifecycle management, pricing, fairness scoring, and PDF-to-bid generation
TELS.Quoting.MQServices Console App .NET 8.0 RabbitMQ subscriber for bid expiration, fairness calculation, and PDF processing
TELS.Quoting.Contracts Library .NET Standard 1.0 / 2.0 Shared event and data contracts (published as NuGet v3.14.0, namespace: TELS.Bidding.Contracts)
TELS.Quoting.PostgresDbUp Console App .NET 8.0 DbUp database migration tool for PostgreSQL
TELS.Quoting.DataUpdater Console App .NET 8.0 Data synchronization/update utility
PDFToBidOfflineValidation Web App .NET 8.0 PDF processing validation service

Test Projects

Project Type Description
TELS.Quoting.Api.Tests NUnit (.NET 8.0) API unit tests
TELS.Quoting.MQServices.Tests NUnit (.NET 8.0) Subscriber unit tests
TELS.Quoting.IntegrationTesting NUnit (.NET 8.0) End-to-end integration tests (Mountebank)

Architecture

Purpose

TELS Quoting (formerly Bidding) is the bid and quote management service for the TELS ecosystem. It provides:

  1. Bid Lifecycle Management — Full lifecycle from creation through acceptance, cancellation, expiration, or loss/win. Bids are linked to work orders (bid requests) and support multi-bid scenarios, supersession, and revalidation.

  2. Pricing & Margin Management — Configurable pricing modifications at owner, chain, and service levels. Price elasticity models (v1 and v2) with margin targets and adjustments. Tracks margin outcomes for analytics.

  3. AI-Powered Features — PDF-to-bid generation using AWS Bedrock and OpenAI for automated bid extraction from uploaded PDFs. Bid fairness scoring with AI-powered explanations.

  4. Bid Fairness — Automated fairness calculation per bid modification. Partner-perceived fairness tracking. Line-item fairness feedback. Unfair bid explanation generation.

  5. Conversations — Bid conversation threading for clarification requests and fairness discussions.

Layering Pattern

+-----------------------------------------------------+
|  API (TELS.Quoting.Api)                              |
|  BidsController — bid lifecycle & commands            |
|  GeneratedBidsController — PDF-to-bid generation      |
|  CustomerQuotesController — margin outcomes            |
|  PriceElasticityV2Controller — pricing configs         |
|  FeatureTogglesController — feature flags              |
|  DiagnosticsController — health & debug                |
+-----------------------------------------------------+
|  Shared Contracts (TELS.Quoting.Contracts)            |
|  TELS.Bidding.Contracts.V1 — events, data, requests   |
+-----------------------------------------------------+
|  Subscriber (TELS.Quoting.MQServices)                 |
|  BiddingConsumer — expiration, fairness, PDF gen       |
|  WorkItemConsumer — bid cancellation, win/loss         |
+-----------------------------------------------------+
|  DAL (Custom DataProvider + Npgsql)                   |
|  PostgreSQL (bidding database, public schema)          |
+-----------------------------------------------------+

Data Access

Message Queue Integration


Key Features

1. Bid Lifecycle

2. Pricing Modifications

3. AI/ML Features

4. Bid Fairness

5. Conversations


API Surface

6 controllers exposing 25+ endpoints:

Authentication

See API Documentation for full endpoint details.


Key Technology Stack

Category Technology
Runtime .NET 8.0
Web Framework ASP.NET Core 8.0
Data Access Npgsql 8.0.5 (PostgreSQL, raw ADO.NET)
Database PostgreSQL (bidding database)
Messaging RabbitMQ + MassTransit 8.2.5
AI/ML AWS Bedrock 3.7.409, OpenAI 2.0-2.5, PdfPig
Auth JWT Bearer, M2M tokens (DSI.Auth.M2M.Token)
API Docs Swashbuckle 6.7.3 (at /quoting/docs)
Monitoring New Relic 10.30.0
Resilience Polly (3 retries, exponential backoff)
Bus Fallback TELS.BusProxy.Client 2.2.0 (S3 fallback)
Testing NUnit 4.2.2, Moq 4.20.72, Mountebank

Deployment

Docker Containers

Environments

Environment URL
Local http://localhost:7147
DEV Sandbox AWS ECS
QA Testing AWS ECS
PROD Production AWS ECS

CI/CD Pipeline

Stage Jobs
Build/Test dotnet build, unit tests, integration tests, Checkmarx SAST
Docker Multi-platform builds (arm64/amd64)
Scan Container vulnerability scanning
Contracts NuGet v3.14.0 to ProGet
Deploy Terraform per environment — DB snapshots, DbUp, API, subscriber

Infrastructure


External Integrations

Integration Mechanism Description
Auth Service HTTP API Token refresh for service-to-service auth
BuildingServices (CloudAPI) HTTP API + NuGet (BuildingServices.Contracts) Service providers, bid requests, markets
Customers Service HTTP API + NuGet (TELS.Customers.Contracts) Facility and owner data
Platform Service HTTP API + NuGet (TELS.Platform.Contracts) Feature toggles and subsystem settings
Files Service HTTP API + NuGet (TELS.WebServiceClients.Files.V1) PDF file access for bid generation
Assets Service NuGet (TELS.WebServiceClients.Assets.V1) Asset data
Work Items Events MQ + NuGet (TELS.WorkItems.Events) Status and fulfillment events
BusProxy HTTP API (NuGet client) Event publishing with S3 fallback
AWS Bedrock SDK LLM inference for PDF-to-bid and fairness
OpenAI SDK Alternative LLM for bid processing

NuGet Packages Published

Package Target Published To
TELS.Quoting.Contracts (namespace: TELS.Bidding.Contracts) .NET Standard 1.0 / 2.0 ProGet (v3.14.0)

Notes