| | 1 | | using planora.Application.Common; |
| | 2 | | using planora.Application.Interfaces.Mediator; |
| | 3 | | using planora.Domain.Entities; |
| | 4 | | using planora.Domain.Errors; |
| | 5 | | using planora.Domain.Repositories; |
| | 6 | |
|
| | 7 | | namespace planora.Application.Features.Activities.Queries.GetDetails; |
| | 8 | |
|
| 4 | 9 | | public class GetActivityDetailsHandler(IRepository<Activity> repository) |
| | 10 | | : IQueryHandler<GetActivityDetailsRequest, Result<GetActivityDetailsResponse>> |
| | 11 | | { |
| | 12 | | public async Task<Result<GetActivityDetailsResponse>> Handle( |
| | 13 | | GetActivityDetailsRequest query, |
| | 14 | | CancellationToken cancellationToken |
| | 15 | | ) |
| | 16 | | { |
| 4 | 17 | | var activityId = query.Id; |
| 4 | 18 | | var activity = await repository.GetByIdAsync(activityId, cancellationToken); |
| | 19 | |
|
| 4 | 20 | | if (activity is null) |
| | 21 | | { |
| 2 | 22 | | return ActivityError.NotFound(activityId); |
| | 23 | | } |
| | 24 | |
|
| 2 | 25 | | var result = activity.MapToActivityDetailsResponse(); |
| | 26 | |
|
| 2 | 27 | | return result; |
| 4 | 28 | | } |
| | 29 | | } |