public void ModificarTerminal(Terminal unaTerminal) { SqlConnection oConexion = new SqlConnection(Conexion.Con); SqlCommand comando = new SqlCommand("Sp_ModificarTerminal", oConexion); comando.CommandType = CommandType.StoredProcedure; comando.Parameters.AddWithValue("@codigoTerminal", unaTerminal.CodigoTerminal); comando.Parameters.AddWithValue("@ciudad", unaTerminal.Ciudad); comando.Parameters.AddWithValue("@pais", unaTerminal.Pais); SqlParameter retorno = new SqlParameter("@Retorno", SqlDbType.Int); retorno.Direction = ParameterDirection.ReturnValue; comando.Parameters.Add(retorno); SqlTransaction _miTransaccion = null; try { oConexion.Open(); _miTransaccion = oConexion.BeginTransaction(); comando.Transaction = _miTransaccion; comando.ExecuteNonQuery(); if ((int)retorno.Value == -1) { throw new Exception("No se pudo modificar la Terminal."); } else if ((int)retorno.Value == -2) { throw new Exception("La Terminal no existe o no se encuentra activa."); } PersistenciaFacilidad.EliminarFacilidades(unaTerminal, _miTransaccion); foreach (Facilidad unaFacilidad in unaTerminal.ListaFacilidades) { PersistenciaFacilidad.AltaFacilidad(unaFacilidad, unaTerminal.CodigoTerminal, _miTransaccion); } _miTransaccion.Commit(); } catch (Exception ex) { _miTransaccion.Rollback(); throw ex; } finally { oConexion.Close(); } }
public Terminal BuscarTerminalActiva(string pCodigoTerminal) { SqlDataReader dr; Terminal objTerminal = null; SqlConnection oConexion = new SqlConnection(Conexion.Con); SqlCommand comando = new SqlCommand("Sp_BuscarTerminalActiva", oConexion); comando.CommandType = CommandType.StoredProcedure; comando.Parameters.AddWithValue("@codigoTerminal", pCodigoTerminal); try { oConexion.Open(); dr = comando.ExecuteReader(); if (dr.HasRows) { dr.Read(); objTerminal = new Terminal(dr["CodigoTerminal"].ToString(), dr["Ciudad"].ToString(), dr["Pais"].ToString(), PersistenciaFacilidad.ListarFacilidades(dr["CodigoTerminal"].ToString())); } dr.Close(); } catch (Exception ex) { throw new ApplicationException("Problemas con la base de datos:" + ex.Message); } finally { oConexion.Close(); } return(objTerminal); }