public List <RutaDeViaje> GetAll() { var conn = Repository.GetConnection(); string comando = @"SELECT * FROM TIRANDO_QUERIES.Ruta_Viaje"; DataTable dataTable; SqlDataAdapter dataAdapter; try { dataAdapter = new SqlDataAdapter(comando, conn); dataTable = new DataTable(); dataAdapter.Fill(dataTable); List <RutaDeViaje> recorridos = new List <RutaDeViaje>(); foreach (DataRow fila in dataTable.Rows) { var rutaDeViaje = new RutaDeViaje() { Cod_Ruta = int.Parse(fila["rv_codigo"].ToString()), Crucero = CruceroDAO.GetByID(int.Parse(fila["rv_crucero"].ToString())), Fecha_Inicio = (DateTime)fila["rv_fecha_salida"], Fecha_Fin = fila["rv_fecha_llegada"] is DBNull ? null : (DateTime?)fila["rv_fecha_llegada"], Fecha_Fin_Estimada = (DateTime)fila["rv_fecha_llegada_estimada"], Recorrido = RecorridoDAO.GetByID(int.Parse(fila["rv_recorrido"].ToString())) }; recorridos.Add(rutaDeViaje); } ; return(recorridos); } catch (Exception ex) { throw new Exception("Ocurrió un error al intentar listar los recorridos", ex); } finally { conn.Close(); conn.Dispose(); } }
/// <summary> /// Metodo llamado desde la vista de compra de pasajes /// </summary> /// <param name="fechaPartida"></param> /// <param name="idPuertoSalida"></param> /// <param name="idPuertoLlegada"></param> /// <returns></returns> public List <RutaDeViaje> GetByFiltersPasaje(DateTime?fechaPartida, int idPuertoSalida, int idPuertoLlegada) { var conn = Repository.GetConnection(); SqlCommand comando = new SqlCommand(@"SELECT " + " Ruta.rv_codigo rv_codigo, " + " Ruta.rv_recorrido rv_recorrido, " + " Ruta.rv_fecha_salida rv_fecha_salida, " + " Ruta.rv_fecha_llegada_estimada rv_fecha_llegada_estimada, " + " Tramo_INICIAL.tram_puerto_desde, " + " Tramo_DESTINO.tram_puerto_hasta, " + " Ruta.rv_crucero rv_crucero " + "FROM [TIRANDO_QUERIES].Ruta_Viaje Ruta, [TIRANDO_QUERIES].Tramo Tramo_INICIAL, " + " [TIRANDO_QUERIES].Tramo Tramo_DESTINO, [TIRANDO_QUERIES].Recorrido Recorridos, " + " [TIRANDO_QUERIES].Crucero Crucero " + "WHERE " + " CONVERT(VARCHAR(10), Ruta.rv_fecha_salida, 111) = CONVERT(VARCHAR(10), @fecha_salida, 111) AND " + " Ruta.rv_recorrido = Recorridos.reco_codigo AND " + " Recorridos.reco_activo = 1 AND " + " Recorridos.reco_invalido <> 1 AND " + " Crucero.cruc_codigo = Ruta.rv_crucero AND " + " Crucero.cruc_activo = 1 AND " + " Tramo_INICIAL.tram_recorrido = Ruta.rv_recorrido AND " + " Tramo_DESTINO.tram_recorrido = Ruta.rv_recorrido AND " + " Tramo_INICIAL.tram_orden = 1 AND "+ " Tramo_INICIAL.tram_puerto_desde = @puerto_desde AND "+ " Tramo_DESTINO.tram_puerto_hasta = @puerto_destino AND "+ " ruta.rv_codigo NOT IN (SELECT DISTINCT rv_codigo FROM [TIRANDO_QUERIES].[Ruta_Viaje] Ruta " + " LEFT JOIN [TIRANDO_QUERIES].Crucero Crucero ON Ruta.rv_crucero = Crucero.cruc_codigo " + " JOIN [TIRANDO_QUERIES].Mantenimiento M ON M.mant_crucero = Crucero.cruc_codigo " + " WHERE M.mant_fecha_hasta > (SELECT getdate()) AND M.mant_fecha_hasta > Ruta.rv_fecha_salida)", conn); DataTable dataTable = new DataTable(); comando.Parameters.AddWithValue("@fecha_salida", fechaPartida); comando.Parameters.AddWithValue("@puerto_desde", idPuertoSalida); comando.Parameters.AddWithValue("@puerto_destino", idPuertoLlegada); SqlDataAdapter dataAdapter = new SqlDataAdapter() { SelectCommand = comando }; try { dataAdapter.Fill(dataTable); List <RutaDeViaje> recorridos = new List <RutaDeViaje>(); foreach (DataRow fila in dataTable.Rows) { var rutaDeViaje = new RutaDeViaje() { Cod_Ruta = int.Parse(fila["rv_codigo"].ToString()), Crucero = CruceroDAO.GetByID(int.Parse(fila["rv_crucero"].ToString())), Fecha_Inicio = (DateTime)fila["rv_fecha_salida"], Fecha_Fin = null, Fecha_Fin_Estimada = (DateTime)fila["rv_fecha_llegada_estimada"], Recorrido = RecorridoDAO.GetByID(int.Parse(fila["rv_recorrido"].ToString())) }; recorridos.Add(rutaDeViaje); } ; return(recorridos); } catch (Exception ex) { throw new Exception("Ocurrió un error al intentar listar las rutas de viaje", ex); } finally { conn.Close(); conn.Dispose(); } }