using Application.Common.Extensions; using AutoMapper; using Domain.Enums; using MediatR; namespace Application.Features.BudgetManager.Queries; public record GetBudgetStatusListDto { public string? Id { get; init; } public string? Name { get; init; } } public class GetBudgetStatusListProfile : Profile { public GetBudgetStatusListProfile() { } } public class GetBudgetStatusListResult { public List? Data { get; init; } } public class GetBudgetStatusListRequest : IRequest { } public class GetBudgetStatusListHandler : IRequestHandler { public GetBudgetStatusListHandler() { } public async Task Handle(GetBudgetStatusListRequest request, CancellationToken cancellationToken) { var statuses = Enum.GetValues(typeof(BudgetStatus)) .Cast() .Select(status => new GetBudgetStatusListDto { Id = ((int)status).ToString(), Name = status.ToFriendlyName() }) .ToList(); await Task.CompletedTask; return new GetBudgetStatusListResult { Data = statuses }; } }