Comenzando la implementación final de permisos y depuración. Se sigue...
This commit is contained in:
@@ -114,8 +114,8 @@ namespace GestionIntegral.Api.Services.Impresion
|
||||
};
|
||||
|
||||
using var connection = _connectionFactory.CreateConnection();
|
||||
if (connection is System.Data.Common.DbConnection dbConnection) { await dbConnection.OpenAsync(); } else { connection.Open(); }
|
||||
using var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
|
||||
if (connection is System.Data.Common.DbConnection dbConnection) { await dbConnection.OpenAsync(); } else { connection.Open(); }
|
||||
using var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
|
||||
|
||||
try
|
||||
{
|
||||
@@ -133,14 +133,14 @@ namespace GestionIntegral.Api.Services.Impresion
|
||||
}
|
||||
catch (KeyNotFoundException knfex) // Captura específica si el repo la lanza
|
||||
{
|
||||
try { transaction.Rollback(); } catch (Exception rbEx) { _logger.LogError(rbEx, "Error adicional durante el rollback en ActualizarAsync Planta."); }
|
||||
_logger.LogWarning(knfex, "Intento de actualizar Planta ID: {Id} no encontrada.", id);
|
||||
return (false, "Planta no encontrada.");
|
||||
try { transaction.Rollback(); } catch (Exception rbEx) { _logger.LogError(rbEx, "Error adicional durante el rollback en ActualizarAsync Planta."); }
|
||||
_logger.LogWarning(knfex, "Intento de actualizar Planta ID: {Id} no encontrada.", id);
|
||||
return (false, "Planta no encontrada.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
try { transaction.Rollback(); } catch (Exception rbEx) { _logger.LogError(rbEx, "Error adicional durante el rollback en ActualizarAsync Planta."); }
|
||||
_logger.LogError(ex, "Error en transacción ActualizarAsync para Planta ID: {Id}", id);
|
||||
_logger.LogError(ex, "Error en transacción ActualizarAsync para Planta ID: {Id}", id);
|
||||
return (false, $"Error interno al actualizar la planta: {ex.Message}");
|
||||
}
|
||||
}
|
||||
@@ -153,33 +153,42 @@ namespace GestionIntegral.Api.Services.Impresion
|
||||
}
|
||||
|
||||
using var connection = _connectionFactory.CreateConnection();
|
||||
if (connection is System.Data.Common.DbConnection dbConnection) { await dbConnection.OpenAsync(); } else { connection.Open(); }
|
||||
if (connection is System.Data.Common.DbConnection dbConnection) { await dbConnection.OpenAsync(); } else { connection.Open(); }
|
||||
using var transaction = connection.BeginTransaction(IsolationLevel.ReadCommitted);
|
||||
|
||||
try
|
||||
{
|
||||
var eliminado = await _plantaRepository.DeleteAsync(id, idUsuario, transaction);
|
||||
if (!eliminado)
|
||||
{
|
||||
if (!eliminado)
|
||||
{
|
||||
throw new DataException("La operación de eliminación no afectó ninguna fila.");
|
||||
}
|
||||
}
|
||||
|
||||
transaction.Commit(); // <--- CORREGIDO: Commit síncrono
|
||||
_logger.LogInformation("Planta ID {IdPlanta} eliminada exitosamente por Usuario ID {IdUsuario}.", id, idUsuario);
|
||||
return (true, null);
|
||||
}
|
||||
catch (KeyNotFoundException knfex) // Captura específica si el repo la lanza
|
||||
catch (KeyNotFoundException knfex) // Captura específica si el repo la lanza
|
||||
{
|
||||
try { transaction.Rollback(); } catch (Exception rbEx) { _logger.LogError(rbEx, "Error adicional durante el rollback en EliminarAsync Planta."); }
|
||||
_logger.LogWarning(knfex, "Intento de eliminar Planta ID: {Id} no encontrada.", id);
|
||||
return (false, "Planta no encontrada.");
|
||||
try { transaction.Rollback(); } catch (Exception rbEx) { _logger.LogError(rbEx, "Error adicional durante el rollback en EliminarAsync Planta."); }
|
||||
_logger.LogWarning(knfex, "Intento de eliminar Planta ID: {Id} no encontrada.", id);
|
||||
return (false, "Planta no encontrada.");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
try { transaction.Rollback(); } catch (Exception rbEx) { _logger.LogError(rbEx, "Error adicional durante el rollback en EliminarAsync Planta."); }
|
||||
_logger.LogError(ex, "Error en transacción EliminarAsync para Planta ID: {Id}", id);
|
||||
try { transaction.Rollback(); } catch (Exception rbEx) { _logger.LogError(rbEx, "Error adicional durante el rollback en EliminarAsync Planta."); }
|
||||
_logger.LogError(ex, "Error en transacción EliminarAsync para Planta ID: {Id}", id);
|
||||
return (false, $"Error interno al eliminar la planta: {ex.Message}");
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<IEnumerable<PlantaDropdownDto>> ObtenerParaDropdownAsync()
|
||||
{
|
||||
var plantas = await _plantaRepository.GetAllAsync(null, null);
|
||||
return plantas
|
||||
.OrderBy(p => p.Nombre)
|
||||
.Select(p => new PlantaDropdownDto { IdPlanta = p.IdPlanta, Nombre = p.Nombre })
|
||||
.ToList();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user