Fix AsociarUsuario
This commit is contained in:
@@ -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." });
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user