public Alojamiento FindById(int id) { string cadenaFind = "SELECT Alojamiento.*, Ubicacion.ciudad, Ubicacion.barrio, Ubicacion.dirLinea1, Ubicacion.dirLinea2 FROM Alojamiento, Ubicacion WHERE Alojamiento.idUbicacion = Ubicacion.id AND Alojamiento.id = @id"; SqlConnection cn = BdSQL.Conectar(); List <RangoPrecio> precios_temporada = new List <RangoPrecio>(); Alojamiento unA = null; try { SqlCommand cmd = new SqlCommand(cadenaFind, cn); cmd.Parameters.AddWithValue("@id", id); cn.Open(); SqlDataReader reader = cmd.ExecuteReader(); //traigo alojamiento if (reader != null && reader.Read()) { unA = new Alojamiento(); unA.Load(reader); unA.Id = id; unA.Ubicacion = new Ubicacion { Id = Convert.ToInt32(reader["idUbicacion"].ToString()), Ciudad = reader["ciudad"].ToString(), Barrio = reader["barrio"].ToString(), DireccionLinea1 = reader["dirLinea1"].ToString(), DireccionLinea2 = reader["dirLinea2"].ToString() }; } reader.Close(); //Cargo los elementos de la lista de rango precios cmd.CommandText = "SELECT * FROM RangoPrecio WHERE id_alojamiento = @id"; reader = cmd.ExecuteReader(); while (reader.Read()) { RangoPrecio unR = new RangoPrecio(); unA.loadRangoPrecio(unR, reader); precios_temporada.Add(unR); } unA.Precios_temporada = precios_temporada; reader.Close(); return(unA); } catch (Exception ex) { //mostrar exception BdSQL.LoguearError(ex.Message + "No se pudo cargar el Alojamiento"); unA.Precios_temporada = null; return(unA = null); } finally { cn.Close(); cn.Dispose(); } }
public override bool Add() { if (this.Validar()) { SqlConnection cn = BdSQL.Conectar(); SqlTransaction trn = null; try { SqlCommand cmd = new SqlCommand(cadenaInsert, cn); cmd.Parameters.AddWithValue("@tipo", this.Tipo); //abrimos la coneccion cn.Open(); //iniciamos la transaccion trn = cn.BeginTransaction(); cmd.Transaction = trn; int idRol = Convert.ToInt32(cmd.ExecuteScalar()); cmd.CommandText = "INSERT INTO ReservasHuesped VALUES (@idReserva,@idRol)"; foreach (Reserva unaR in this.ListaReservas) { cmd.Parameters.AddWithValue("@idRol", idRol); cmd.Parameters.AddWithValue("@idAnuncio", unaR.Id); cmd.ExecuteNonQuery(); } cmd.ExecuteNonQuery(); trn.Commit(); cmd.Parameters.Clear(); return(true); } catch (Exception ex) { //falta hacer algo con la excepcion BdSQL.LoguearError(ex.Message + "No se pudo agregar el Huesped"); trn.Rollback(); return(false); }//fin del catch finally { trn.Dispose(); trn = null; cn.Close(); cn.Dispose(); } } else { return(false); } }
public bool Add() { if (this.Validar()) { SqlConnection cn = BdSQL.Conectar(); SqlTransaction trn = null; try { SqlCommand cmd = new SqlCommand(cadenaInsert, cn); cmd.Parameters.AddWithValue("@baño_privado", this.Baño_Privado); cmd.Parameters.AddWithValue("@camas", this.Camas); cmd.Parameters.AddWithValue("@cupo_max", this.Cupo_max); cmd.Parameters.AddWithValue("@precio_base", this.Precio_base); cmd.Parameters.AddWithValue("@id_alojamiento", this.Alojamiento.Id); cn.Open(); int idHabitacion = Convert.ToInt32(cmd.ExecuteScalar()); cmd.CommandText = "INSERT into ServiciosHabitacion (id_habitacion,id_servicio) VALUES (@id_habitacion,@id_servicio)"; foreach (Servicio unS in this.Servicios) { cmd.Parameters.AddWithValue("@id_habitacion", this.Id); cmd.Parameters.AddWithValue("@id_servicio", unS.Id); cmd.ExecuteNonQuery(); } return(true); } catch (Exception ex) { //falta hacer algo con la excepcion BdSQL.LoguearError(ex.Message + "No se pudo agregar la Habitación"); trn.Rollback(); return(false); }//fin del catch finally { trn.Dispose(); trn = null; cn.Close(); cn.Dispose(); } } else { return(false); } }
//private string cadenaUpdate = "UPDATE Persona SET nombre = @nombre, apellido = apellido, ci = @ci, email = @email WHERE id = @id"; //private string cadenaDelete = "DELETE Persona WHERE id = @id; DELETE RolesPersona WHERE id_persona = @id"; #endregion #region Métodos ACTIVE RECORD public bool Add() { if (this.Validar()) { //BdSQL retorna una SQLConnection con el string de conexion en el ConnectionString del WEbconfig SqlConnection cn = BdSQL.Conectar(); SqlTransaction trn = null; try { SqlCommand cmd = new SqlCommand(cadenaInsert, cn); //Asigna el valor a los parametros usados en la consulta cmd.Parameters.AddWithValue("@nombre", this.Nombre); cmd.Parameters.AddWithValue("@apellido", this.Apellido); cmd.Parameters.AddWithValue("@ci", this.Ci); cmd.Parameters.AddWithValue("@email", this.Email); cmd.Parameters.AddWithValue("@clave", this.Clave); //Abro la conexion cn.Open(); //iniciamos la transaccion trn = cn.BeginTransaction(); cmd.Transaction = trn; // me quedo con el id de la persona guardada... int idPersona = Convert.ToInt32(cmd.ExecuteScalar()); // nuevo comando para guardar su lista de roles... cmd.CommandText = "INSERT INTO RolesPersona VALUES (@id_persona,@id_rol)"; // para cada rol hago su insert en la tabla de roles por persona foreach (Rol unR in this.Roles) { cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@id_persona", idPersona); cmd.Parameters.AddWithValue("@id_rol", unR.Id); cmd.ExecuteNonQuery(); } // hago el commit de la transacción... trn.Commit(); // limpio parámetros y retorno true cmd.Parameters.Clear(); return(true); } catch (Exception ex) { // logueo la excepción... BdSQL.LoguearError(ex.Message + "No se pudo agregar la Persona"); // hago un rollback y retorno false trn.Rollback(); return(false); } //fin del catch finally { // libero los recursos... trn.Dispose(); trn = null; cn.Close(); cn.Dispose(); } } else { // si no pasa la validación retorno false... return(false); } }
public bool Add() { if (this.Validar()) { SqlConnection cn = BdSQL.Conectar(); SqlTransaction trn = null; try { SqlCommand cmd = new SqlCommand(cadenaInsert, cn); cmd.Parameters.AddWithValue("@publicado", this.Publicado); cmd.Parameters.AddWithValue("@nombre", this.Nombre); cmd.Parameters.AddWithValue("@descripcion", this.Descripcion); cn.Open(); int idAnuncio = Convert.ToInt32(cmd.ExecuteScalar()); cmd.CommandText = "INSERT INTO HabitacionesAnuncio (id_anuncio,id_habitacion)VALUES (@id_Anuncio,@id_Habitacion)"; foreach (Habitacion unaH in this.Habitaciones) { cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@id_Anuncio", idAnuncio); cmd.Parameters.AddWithValue("@id_Habitacion", unaH.Id); cmd.ExecuteNonQuery(); } // acá tenemos el Anuncio y su lista de habitaciones... cmd.CommandText = "INSERT INTO Foto (ruta,id_anuncio) VALUES (@ruta,@id_Anuncio)"; foreach (Foto unaF in this.Fotos) { cmd.Parameters.AddWithValue("@ruta", unaF.Ruta); cmd.ExecuteNonQuery(); } // acá ya tenemos también guardadas las fotos... cmd.CommandText = "INSERT INTO RangoFechaAnuncio (fecha_ini,fecha_fin,id_anuncio) VALUES (@fecha_ini,@fecha_fin,@id_Anuncio)"; foreach (RangoFechas unRF in this.ListaRangos) { cmd.Parameters.AddWithValue("@fecha_ini", unRF.Fecha_ini); cmd.Parameters.AddWithValue("@fecha_fin", unRF.Fecha_fin); cmd.ExecuteNonQuery(); } trn.Commit(); cmd.Parameters.Clear(); return(true); }//fin del try catch (Exception ex) { //falta hacer algo con la excepcion BdSQL.LoguearError(ex.Message + "No se pudo agregar el Anuncio"); trn.Rollback(); return(false); }//fin del catch finally { trn.Dispose(); trn = null; cn.Close(); cn.Dispose(); } } else { return(false); } }
public bool Add() { if (this.Validar()) { SqlConnection cn = BdSQL.Conectar(); SqlTransaction trn = null; try { SqlCommand cmd = new SqlCommand(cadenaInsert, cn); // acá va el resto de parametros que vamos a insertar... cmd.Parameters.AddWithValue("@tipo", this.Tipo); cmd.Parameters.AddWithValue("@idUbicacion", this.Ubicacion.Id); //abrimos la coneccion cn.Open(); //iniciamos la transaccion trn = cn.BeginTransaction(); cmd.Transaction = trn; int idAlojamiento = Convert.ToInt32(cmd.ExecuteScalar()); this.Id = idAlojamiento; cmd.CommandText = "INSERT INTO RangoPrecio (fecha_ini,fecha_fin,variacion_precio,id_alojamiento) VALUES (@fecha_inicio,@fecha_fin,@variacion_precio,@id_alojamiento)"; foreach (RangoPrecio unR in this.Precios_temporada) { cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@id_alojamiento", idAlojamiento); cmd.Parameters.AddWithValue("@fecha_inicio", unR.Fecha_inicio); cmd.Parameters.AddWithValue("@fecha_fin", unR.Fecha_fin); cmd.Parameters.AddWithValue("@variacion_precio", unR.Variacion_precio); cmd.ExecuteNonQuery(); } // Agregar la ubicacion cmd.CommandText = "INSERT INTO Ubicacion (ciudad,barrio,dirLinea1,dirLinea2) VALUES (@ciudad,@barrio,@dirLinea1,@dirLinea2); SELECT CAST(SCOPE_IDENTITY() AS INT);"; cmd.Parameters.Clear(); cmd.Parameters.AddWithValue("@ciudad", this.Ubicacion.Ciudad); cmd.Parameters.AddWithValue("@barrio", this.Ubicacion.Barrio); cmd.Parameters.AddWithValue("@dirLinea1", this.Ubicacion.DireccionLinea1); cmd.Parameters.AddWithValue("@dirLinea2", this.Ubicacion.DireccionLinea2); // me guardo el id de la ubicación insertada int idUbicacion = Convert.ToInt32(cmd.ExecuteScalar()); this.Ubicacion.Id = idUbicacion; // me agrego como parametro esa ubicacion // le hago un update al alojamiento con el idUbicacion(foreign key).. cmd.CommandText = "UPDATE Alojamiento SET idUbicacion = @idUbicacion WHERE id = @id_alojamiento;"; cmd.Parameters.AddWithValue("@idUbicacion", idUbicacion); cmd.Parameters.AddWithValue("@id_alojamiento", this.Id); cmd.ExecuteNonQuery(); trn.Commit(); cmd.Parameters.Clear(); return(true); }//fin del try catch (Exception ex) { //falta hacer algo con la excepcion BdSQL.LoguearError(ex.Message + "No se pudo agregar el Alojamiento"); trn.Rollback(); return(false); }//fin del catch finally { trn.Dispose(); trn = null; cn.Close(); cn.Dispose(); } } else { return(false); } }