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();
            }
        }
Exemplo n.º 2
0
        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);
            }
        }