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) |         INSERT INTO dbo.usuarios_equipos (equipo_id, usuario_id, origen) | ||||||
|         SELECT e.id, u.id, 'automatica' |         SELECT e.id, u.id, 'automatica' | ||||||
|         FROM dbo.equipos e, dbo.usuarios u |         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()) |       using (var connection = _context.CreateConnection()) | ||||||
|       { |       { | ||||||
|         try |         await connection.ExecuteAsync(query, new { Hostname = hostname, dto.Username }); | ||||||
|         { |         return Ok(new { success = true, message = "Asociación asegurada." }); | ||||||
|           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."); |  | ||||||
|         } |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user