Skip to main content

Practice ยท 1 of 4

Milestone 1 โ€” Task Domain Validation

CHALLENGE
Difficulty: intermediate+25 XP

The engine's first gate: CreateTask input validation. Write Solution.ValidateTaskInput(string title, Priority priority, Status status) which: - throws System.ArgumentException when the title is null, empty/whitespace after trimming, or over 120 chars (after trim), - throws System.ArgumentException when priority or status is not a defined enum value (e.g. (Priority)99), - returns the **trimmed** title when everything is valid, and Solution.NewTask(int id, int projectId, string title, Priority priority) returning a new TaskItem with Status = Status.Todo, AssigneeId = null (title already validated/trimmed by you). Provided: DomainGuard.ValidTitle/Defined helpers โ€” reuse them, do not re-implement the checks. ``csharp public static class Solution { public static string ValidateTaskInput(string title, Priority priority, Status status); public static TaskItem NewTask(int id, int projectId, string title, Priority priority); } ` Provided types: TaskItem(int Id, int ProjectId, string Title, int? AssigneeId, Priority Priority, Status Status), Priority, Status`.

Back to lesson: Practice: Capstone Milestones: Domain to Engine