Fase 2: Gestión de Usuarios (CRUD Completo) - Backend & Frontend

This commit is contained in:
2025-12-17 13:37:06 -03:00
parent b3b553495b
commit dff7a377a4
9 changed files with 387 additions and 0 deletions

View File

@@ -31,4 +31,32 @@ public class UserRepository : IUserRepository
SELECT CAST(SCOPE_IDENTITY() as int);";
return await conn.QuerySingleAsync<int>(sql, user);
}
public async Task<IEnumerable<User>> GetAllAsync()
{
using var conn = _connectionFactory.CreateConnection();
return await conn.QueryAsync<User>("SELECT Id, Username, Role, Email, CreatedAt, PasswordHash FROM Users");
}
public async Task<User?> GetByIdAsync(int id)
{
using var conn = _connectionFactory.CreateConnection();
return await conn.QuerySingleOrDefaultAsync<User>("SELECT * FROM Users WHERE Id = @Id", new { Id = id });
}
public async Task UpdateAsync(User user)
{
using var conn = _connectionFactory.CreateConnection();
var sql = @"
UPDATE Users
SET Username = @Username, Role = @Role, Email = @Email, PasswordHash = @PasswordHash
WHERE Id = @Id";
await conn.ExecuteAsync(sql, user);
}
public async Task DeleteAsync(int id)
{
using var conn = _connectionFactory.CreateConnection();
await conn.ExecuteAsync("DELETE FROM Users WHERE Id = @Id", new { Id = id });
}
}