Fix AsociarUsuario

This commit is contained in:
2025-10-08 14:46:27 -03:00
parent bcd682484b
commit 15d44aaf58

View File

@@ -239,20 +239,17 @@ namespace Inventario.API.Controllers
INSERT INTO dbo.usuarios_equipos (equipo_id, usuario_id, origen)
SELECT e.id, u.id, 'automatica'
FROM dbo.equipos e, dbo.usuarios u
WHERE e.Hostname = @Hostname AND u.Username = @Username;";
WHERE e.Hostname = @Hostname AND u.Username = @Username
AND NOT EXISTS (
SELECT 1
FROM dbo.usuarios_equipos ue
WHERE ue.equipo_id = e.id AND ue.usuario_id = u.id
);";
using (var connection = _context.CreateConnection())
{
try
{
var filasAfectadas = await connection.ExecuteAsync(query, new { Hostname = hostname, dto.Username });
if (filasAfectadas == 0) return NotFound("Equipo o usuario no encontrado.");
return Ok(new { success = true });
}
catch (SqlException ex) when (ex.Number == 2627) // Error de clave primaria duplicada
{
return Conflict("El usuario ya está asociado a este equipo.");
}
await connection.ExecuteAsync(query, new { Hostname = hostname, dto.Username });
return Ok(new { success = true, message = "Asociación asegurada." });
}
}