$mermaidjs
Clean Architecture Demo
Loading...
Searching...
No Matches
GetTaskByIdQuery.cs
Go to the documentation of this file.
1using MediatR;
4
6
28public sealed class GetTaskByIdQuery : IRequest<Result<TaskDto>>
29{
30 public Guid TaskId { get; init; }
31
32 public GetTaskByIdQuery(Guid taskId)
33 {
34 TaskId = taskId;
35 }
36}
37
73public sealed class GetTaskByIdQueryHandler : IRequestHandler<GetTaskByIdQuery, Result<TaskDto>>
74{
75 private readonly ITaskReadRepository _readRepository;
77 {
78 _readRepository = readRepository;
79 }
80 public async Task<Result<TaskDto>> Handle(
81 GetTaskByIdQuery request,
82 CancellationToken cancellationToken)
83 {
84 ArgumentNullException.ThrowIfNull(request);
85
86 var task = await _readRepository.GetByIdAsync(request.TaskId, cancellationToken).ConfigureAwait(false);
87 if (task is null)
89 return Result.Success(task);
90 }
91}
92// DTO optimizado para lecturas. Mantenerlo como tipo basado en propiedades para que Dapper pueda
93// materializar sin requerir una firma de constructor exacta de tipos de proveedor.
94public sealed class TaskDto
95{
96 public string Id { get; init; } = string.Empty;
97 public string Title { get; init; } = string.Empty;
98 public string Description { get; init; } = string.Empty;
99 public string Status { get; init; } = string.Empty;
100 public string Priority { get; init; } = string.Empty;
101 public DateTime? DueDate {
102 get; init;
103 }
104 public DateTime CreatedAt {
105 get; init;
106 }
107 public string CreatedBy { get; init; } = string.Empty;
108 public string? AssignedTo {
109 get; init;
110 }
111}
GetTaskByIdQueryHandler es el servicio de aplicación para recuperar detalles de tarea.
GetTaskByIdQueryHandler(ITaskReadRepository readRepository)
async Task< Result< TaskDto > > Handle(GetTaskByIdQuery request, CancellationToken cancellationToken)
GetTaskByIdQuery encapsula una solicitud para recuperar una sola tarea por ID.
Result es un tipo de unión discriminada que implementa el patrón Result para manejo de errores.
Definition Result.cs:71
static Result Failure(string error)
TaskErrors es un repositorio central para todos los mensajes de error del dominio de tareas.
Definition TaskErrors.cs:37
ITaskReadRepository es la abstracción para consultas de sólo lectura de tareas.