public ResultadoEntidad GuardarSubFamilia(SubFamiliaEntidad SubFamiliaObjetoEntidad) { string CadenaConexion = string.Empty; ResultadoEntidad Resultado = new ResultadoEntidad(); SubFamiliaAcceso SubFamiliaAccesoObjeto = new SubFamiliaAcceso(); SqlTransaction Transaccion; SqlConnection Conexion; CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Almacen); if (BuscarSubFamiliaDuplicada(SubFamiliaObjetoEntidad) == false) { Conexion = new SqlConnection(CadenaConexion); Conexion.Open(); Transaccion = Conexion.BeginTransaction(); try { if (SubFamiliaObjetoEntidad.SubFamiliaId == 0) { //Se inserta la subfamilia Resultado = SubFamiliaAccesoObjeto.InsertarSubFamilia(Conexion, Transaccion, SubFamiliaObjetoEntidad); SubFamiliaObjetoEntidad.SubFamiliaId = Int16.Parse(Resultado.NuevoRegistroId.ToString()); } else { Resultado = SubFamiliaAccesoObjeto.ActualizarSubFamilia(Conexion, Transaccion, SubFamiliaObjetoEntidad); if (Resultado.ErrorId == 0) { //Si salio bien, se eliminan los puestos que tenia Resultado = SubFamiliaAccesoObjeto.EliminarSubFamiliaPuesto(Conexion, Transaccion, SubFamiliaObjetoEntidad); } } if (Resultado.ErrorId == 0) { //Si salio bien, se insertan los puestos Resultado = SubFamiliaAccesoObjeto.InsertarSubFamiliaPuesto(Conexion, Transaccion, SubFamiliaObjetoEntidad); } if (Resultado.ErrorId == 0) { Transaccion.Commit(); Conexion.Close(); } else { Transaccion.Rollback(); Conexion.Close(); } } catch { Resultado.ErrorId = (int)ConstantePrograma.SubFamilia.SubFamiliaConNombreDuplicado; Resultado.DescripcionError = TextoError.SubFamiliaConNombreDuplicado; } } else { Resultado.ErrorId = (int)ConstantePrograma.SubFamilia.SubFamiliaConNombreDuplicado; Resultado.DescripcionError = TextoError.SubFamiliaConNombreDuplicado; } return(Resultado); }