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

# MessageContainer

Implements `IMessageContainer` as a simple in-memory collector of validation errors and warnings, used by `ClaimReportingService.CreateTask` to capture messages from `ITaskService.CreateTaskStateless` and surface them on the per-item `ReportItem.TaskErrorMessage`.

## Purpose
- Collects named validation errors (property name to message) added during an operation.
- Collects free-form warning messages added during an operation.
- Exposes whether any errors were recorded, and formats collected errors/warnings into single comma-separated strings for display.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| AddError(propertyName, message) | `public void AddError(string propertyName, string message)` | Records an error message keyed by property name; throws if the same property name is added twice (backed by a `Dictionary`). |
| AddInformation(message) | `public void AddInformation(string message)` | No-op; informational messages are accepted but discarded and not stored. |
| AddWarning(message) | `public void AddWarning(string message)` | Appends the message to the internal warnings list. |
| HasErrors | `public bool HasErrors { get; }` | Indicates whether at least one error has been recorded. |
| ErrorMessages | `public string ErrorMessages { get; }` | Returns all recorded errors formatted as `"PropertyName: Message"` entries joined by commas. |
| WarningMessages | `public string WarningMessages { get; }` | Returns all recorded warnings joined by commas. |

## Behavioral notes
- `AddInformation` is a deliberate no-op — informational messages passed to this container are silently dropped, unlike errors and warnings.
- `AddError` uses `Dictionary.Add`, which throws `ArgumentException` if a duplicate `propertyName` key is added, rather than overwriting or appending.*

## Constraints and usage notes
- Because `AddError` keys by property name, only one error message per property name can be recorded per container instance.

> **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/Reports/ClaimReportingService.cs
