---
title: ServiceCodeService
summary: API reference for ServiceCodeService.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-24
library: SAIF.Services
reference_type: package
---

# ServiceCodeService

Retrieves billing service-code records via `IServiceCodeMaintenanceQueryProvider` and maps them to `CbpBillServiceCode` contracts through AutoMapper, while its update and insert operations are unfinished — both currently throw `NotImplementedException`. It depends on `IUnitOfWork`, `IUserProfileService`, and `IServiceCodeMaintenanceQueryProvider`, and its static constructor registers the service-code AutoMapper mappings via `ServiceCodeMappingHelper.MapServiceCodeService()`.

## Purpose
- Looks up a single billing service code by code and type, translated into its contract representation.
- Provides the entry points intended for updating and inserting service codes, though neither is currently functional.

## Context
- Namespace: `SAIF.Services.Claims.Bills`
- Assembly/package: `SAIF.Services` (packaged inside the `SAIF.SAIFCode.Core` NuGet package)

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| ServiceCodeService(unit, profileService, serviceCodeMaintenanceQP) | `ServiceCodeService(IUnitOfWork unit, IUserProfileService profileService, IServiceCodeMaintenanceQueryProvider serviceCodeMaintenanceQP)` | Guards against null dependencies and stores them for use by the service's operations. |
| GetServiceCode | `CbpBillServiceCode GetServiceCode(string code, string type)` | Retrieves the service-code record matching the given code and type from `IServiceCodeMaintenanceQueryProvider` and maps it to a `CbpBillServiceCode` contract. |
| UpdateServiceCode | `void UpdateServiceCode(CbpBillServiceCode cbpServiceCode)` | Begins a unit-of-work transaction and looks up an application user with a placeholder identifier, then always throws `NotImplementedException` — the update logic has not yet been implemented.* |
| InsertServiceCode | `void InsertServiceCode(CbpBillServiceCode cbpServiceCode)` | Always throws `NotImplementedException` — insert logic has not yet been implemented. |

## Behavioral notes
- Static constructor calls `ServiceCodeMappingHelper.MapServiceCodeService()` to register AutoMapper mappings for service-code entities before any instance is used.
- `UpdateServiceCode` calls `unitOfWork.Begin()` and `userProfileService.GetApplicationUser("thisisjusttogettobuild")` with a hardcoded placeholder string before throwing, indicating the method is a work-in-progress stub.*

## Constraints and usage notes
- `UpdateServiceCode` and `InsertServiceCode` are not usable in their current form; calling either will always raise `NotImplementedException`.
- `UpdateServiceCode` begins a unit-of-work transaction that is never committed or rolled back before the exception is thrown, since the method exits via the thrown exception.*

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Sources
- `Services/SAIF.Services/Claims/Bills/ServiceCodeService.cs`
