/// <summary> /// Metodo responsabile della ricerca in base ad una query prestabilita /// </summary> /// <param name="query">Stringa da ricercare</param> /// <returns></returns> public IList <IStazione> Cerca(string query) { string uppercaseQuery = query.ToUpper(); List <IStazione> stazioni = new List <IStazione>(); // Effettuo una ricerca CASE-INSENSITIVE sui campi using (SQLiteCommand cmd = new SQLiteCommand("SELECT stazioni.id AS stazioni_id, " + "stazioni.nome AS stazioni_nome, " + "stazioni.locazione AS stazioni_locazione, " + "stazioni.indirizzoDiRete AS stazioni_indirizzoDiRete, " + "stazioni.porta AS stazioni_porta, stazioni.impronta AS stazioni_impronta " + "FROM stazioni WHERE UPPER(nome) LIKE '%' || @query || '%' " + "OR UPPER(locazione) LIKE '%' || @query || '%' " + "OR UPPER(indirizzoDiRete) LIKE '%' || @query || '%'" , _connection)) { cmd.Prepare(); cmd.Parameters.AddWithValue("@query", uppercaseQuery); using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { // Converto la entry del database in una stazione IStazione stazioneCorrente = Stazione.ConvertiRigaInStazione(reader); if (stazioneCorrente != null) { stazioni.Add(stazioneCorrente); } } } } return(stazioni); }
/// <summary> /// Metodo che si occupa di listare tutte le stazioni del database /// </summary> /// <returns></returns> public IList <IStazione> ListaTutti() { List <IStazione> stazioni = new List <IStazione>(); using (SQLiteCommand cmd = new SQLiteCommand("SELECT stazioni.id AS stazioni_id, " + "stazioni.nome AS stazioni_nome, " + "stazioni.locazione AS stazioni_locazione, " + "stazioni.indirizzoDiRete AS stazioni_indirizzoDiRete, " + "stazioni.porta AS stazioni_porta, stazioni.impronta AS stazioni_impronta " + "FROM stazioni", _connection)) { using (SQLiteDataReader reader = cmd.ExecuteReader()) { while (reader.Read()) { // Converto la entry del database in una stazione IStazione stazioneCorrente = Stazione.ConvertiRigaInStazione(reader); if (stazioneCorrente != null) { stazioni.Add(stazioneCorrente); } } } } return(stazioni); }