skantravels/API/Application/Users/Queries/QueryAllUsers.cs

35 lines
948 B
C#

using API.Models;
using API.Persistence.Repositories;
using Microsoft.AspNetCore.Mvc;
namespace API.Application.Users.Queries
{
public class QueryAllUsers
{
private readonly IUserRepository _repository;
public QueryAllUsers(IUserRepository repository)
{
_repository = repository;
}
public async Task<ActionResult<List<UserDTO>>> Handle()
{
List<User> users = await _repository.QueryAllUsersAsync();
if (!users.Any())
{
return new ConflictObjectResult(new { message = "No users found." });
}
List<UserDTO> userDTOs = users.Select(user => new UserDTO
{
Id = user.Id,
Email = user.Email,
Username = user.Username,
ProfilePicture = user.ProfilePicture,
}).ToList();
return userDTOs;
}
}
}