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

# CreatePolicyTaskRequestValidator

A FluentValidation `AbstractValidator<CreatePolicyTaskRequest>` that confirms a policy-task creation request references a real policy and carries a valid due date and non-empty, length-bounded task text. It depends on `ITaskQueryProvider` to confirm the requested policy number resolves to an actual policy.

## Purpose
- Rejects requests whose `PolicyNumber` does not resolve to an existing policy via `ITaskQueryProvider.PolicyQueries.GetPolicy`.
- Rejects requests with an unset (`DateTime.MinValue`) due date.
- Rejects requests with null/empty text or text exceeding 4000 characters.

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

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| CreatePolicyTaskRequestValidator(...) | `public CreatePolicyTaskRequestValidator(ITaskQueryProvider provider)` | Registers FluentValidation rules for `PolicyNumber` (must resolve to an existing policy), `TaskDate` (required), and `TaskText` (required, max 4000 characters) against the injected task query provider. |

## Behavioral notes
- Unlike `TaskValidator<TTask>`, this validator does not check that the due date falls on a working day — it only checks that it is set — so working-day enforcement for policy-task requests happens elsewhere (or not at all) for this specific request type*.
- This validator is instantiated by `TaskValidatorFactory` specifically for `CreatePolicyTaskRequest`, and is used by `TaskFactory` via `IValidationService.Validate` before a marketing or underwriting task is created.

> **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/Tasks/Validators/CreatePolicyTaskRequestValidator.cs
