public Decimal ActualizarAssesmentCenter(Decimal ID_ASSESMENT, String NOMBRE_ASSESMENT, String DESCRIPCION_ASSESMENT, Boolean ACTIVO, List<CompetenciaAssesment> listaCompetencias, Byte[] ARCHIVO_DOCUMENTO, Int32 ARCHIVO_TAMANO, String ARCHIVO_EXTENSION, String ARCHIVO_TYPE) { Boolean correcto = true; Conexion conexion = new Conexion(Empresa); conexion.IniciarTransaccion(); try { if (ID_ASSESMENT <= 0) { ID_ASSESMENT = AdicionarAssesmentCenter(NOMBRE_ASSESMENT, DESCRIPCION_ASSESMENT, ACTIVO, conexion); if (ID_ASSESMENT <= 0) { conexion.DeshacerTransaccion(); correcto = false; ID_ASSESMENT = 0; } } else { if (ActualizarSelRegAssesmentCenter(ID_ASSESMENT, NOMBRE_ASSESMENT, DESCRIPCION_ASSESMENT, ACTIVO, conexion) == false) { conexion.DeshacerTransaccion(); correcto = false; ID_ASSESMENT = 0; } } if (correcto == true) { if (ARCHIVO_DOCUMENTO != null) { Decimal ID_DOCUMENTO = conexion.ExecuteEscalarParaAdicionarDocsParaAssesmentCenter(ID_ASSESMENT, ARCHIVO_DOCUMENTO, ARCHIVO_EXTENSION, ARCHIVO_TAMANO, ARCHIVO_TYPE, Usuario); if (ID_DOCUMENTO <= 0) { conexion.DeshacerTransaccion(); correcto = false; ID_ASSESMENT = 0; MensajeError = "Error intentando insertar o actualizar el documento relacionado con el Assesment Center."; } } } if (correcto == true) { DataTable tablaCompetenciasActuales = ObtenerCompetenciasAssesmentActivas(ID_ASSESMENT, conexion); Boolean competenciaExiste = false; foreach (DataRow filaCompetenciaActual in tablaCompetenciasActuales.Rows) { Decimal ID_COMPETENCIA_ASSESMENT_ACTUAL = Convert.ToDecimal(filaCompetenciaActual["ID_COMPETENCIA_ASSESMENT"]); foreach (CompetenciaAssesment competencia in listaCompetencias) { if (ID_COMPETENCIA_ASSESMENT_ACTUAL == competencia.ID_COMPETENCIA_ASSESMENT) { competenciaExiste = true; break; } } if (competenciaExiste == false) { if (EliminarCompetenciaAssesment(ID_COMPETENCIA_ASSESMENT_ACTUAL, conexion) == false) { conexion.DeshacerTransaccion(); correcto = false; ID_ASSESMENT = 0; } } } if (correcto == true) { foreach (CompetenciaAssesment competencia in listaCompetencias) { if (competencia.ID_COMPETENCIA_ASSESMENT <= 0) { if (AdicionarCompetenciaAssesment(ID_ASSESMENT, competencia.ID_COMPETENCIA, conexion) <= 0) { conexion.DeshacerTransaccion(); correcto = false; ID_ASSESMENT = 0; } } } } } if (correcto == true) { conexion.AceptarTransaccion(); } } catch (Exception ex) { conexion.DeshacerTransaccion(); MensajeError = ex.Message; correcto = false; ID_ASSESMENT = 0; } finally { conexion.Desconectar(); } return ID_ASSESMENT; }