/// <summary> /// Metodo que modifica un itinerario de la base de datos /// </summary> /// <param name="it">el itinerario a modificar</param> /// <returns>true si modifica existosamente, false en caso de error</returns> public Itinerario ModificarItinerario(Itinerario it) { try { con = new ConexionBase(); con.Conectar(); comm = new NpgsqlCommand("mod_itinerario", con.SqlConexion); comm.CommandType = CommandType.StoredProcedure; comm.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Integer, it.Id); comm.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Varchar, it.Nombre); comm.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Date, it.FechaInicio); comm.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Date, it.FechaFin); comm.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Integer, it.IdUsuario); pgread = comm.ExecuteReader(); pgread.Read(); con.Desconectar(); return(it); } catch (NpgsqlException e) { con.Desconectar(); throw e; } catch (InvalidCastException e) { con.Desconectar(); throw e; } catch (Exception e) { con.Desconectar(); throw e; } }
/// <summary>returns /// Metodo que agrega en la base de datos un nuevo itinerario /// </summary> /// <param name="it">el itinerario a agregar</param> /// <returns>true si agrega existosamente, false en caso de error</> public Itinerario AgregarItinerario(Itinerario it) { try { con = new ConexionBase(); con.Conectar(); comm = new NpgsqlCommand("add_itinerario", con.SqlConexion); comm.CommandType = CommandType.StoredProcedure; comm.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Varchar, it.Nombre); comm.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Integer, it.IdUsuario); pgread = comm.ExecuteReader(); pgread.Read(); it.Id = pgread.GetInt16(0); it.Nombre = pgread.GetString(1); con.Desconectar(); return(it); } catch (NpgsqlException e) { con.Desconectar(); throw e; } catch (InvalidCastException e) { con.Desconectar(); throw e; } catch (NullReferenceException e) { con.Desconectar(); throw e; } catch (Exception e) { con.Desconectar(); throw e; } }
public List <Itinerario> ConsultarItinerariosCorreo(int id_usuario) { List <Itinerario> itinerarios = new List <Itinerario>(); // Lista de itinerarios de un usuario try { con = new ConexionBase(); con.Conectar(); comm = new NpgsqlCommand("consultar_itinerarios_correo", con.SqlConexion); comm.CommandType = CommandType.StoredProcedure; comm.Parameters.AddWithValue(NpgsqlTypes.NpgsqlDbType.Integer, id_usuario); NpgsqlDataReader pgread = comm.ExecuteReader(); int auxiliar = 0; //Recorremos los registros devueltos while (pgread.Read()) { Itinerario iti; if (!pgread.IsDBNull(2) && (!pgread.IsDBNull(3))) { iti = new Itinerario(pgread.GetInt32(0), pgread.GetString(1), pgread.GetDateTime(2), pgread.GetDateTime(3), id_usuario, true); } else { iti = new Itinerario(pgread.GetInt32(0), pgread.GetString(1), id_usuario, true); } //Se revisa si el registro de itinerario en la base ya se encuentra en la lista de itinerarios del usuario if (itinerarios.Count == 0) { itinerarios.Add(iti); } foreach (Itinerario itinerario in itinerarios) { if (itinerario.Id == iti.Id) { auxiliar = 1; } } if (auxiliar != 1) { itinerarios.Add(iti); } auxiliar = 0; //Agregamos los eventos, actividades y lugares a la lista correspondiente //Si existe lugar turistico en este registro if (!pgread.IsDBNull(4)) { dynamic lugar = new System.Dynamic.ExpandoObject(); lugar.Nombre = pgread.GetString(4); lugar.Descripcion = pgread.GetString(5); lugar.Tipo = "Lugar Turistico"; itinerarios[itinerarios.Count - 1].Items_agenda.Add(lugar); } //Si existe actividad en este registro if (!pgread.IsDBNull(6)) { dynamic actividad = new System.Dynamic.ExpandoObject(); actividad.Nombre = pgread.GetString(6); actividad.Descripcion = pgread.GetString(7); actividad.Tipo = "Actividad"; itinerarios[itinerarios.Count - 1].Items_agenda.Add(actividad); } //Si existe eventos en este registro. if (!pgread.IsDBNull(8)) { dynamic evento = new System.Dynamic.ExpandoObject(); evento.Nombre = pgread.GetString(8); evento.Descripcion = pgread.GetString(9); evento.Tipo = "Evento"; itinerarios[itinerarios.Count - 1].Items_agenda.Add(evento); } } con.Desconectar(); return(itinerarios); } catch (NpgsqlException sql) { con.Desconectar(); throw sql; } catch (ArgumentException arg) { con.Desconectar(); throw arg; } catch (InvalidCastException cast) { con.Desconectar(); throw cast; } catch (Exception e) { con.Desconectar(); throw e; } }