private Library.Notificacao NovaNotificacao(string texto) { Library.Notificacao notificacao = new Library.Notificacao(); notificacao.Data = DateTime.Now; notificacao.Texto = texto; notificacao.TermoCompromisso = this.TermoCompromisso; return(notificacao); }
static public List <Library.Notificacao> FindAdvanced(params Library.Classes.QItem[] args) { NpgsqlDataReader rdr = null; NpgsqlConnection conexao = null; try { conexao = new NpgsqlConnection(global::Connection.Connection.StringPostgree()); using (NpgsqlCommand comando = new NpgsqlCommand()) { string query = "SELECT * FROM \"Notificacao\" AS n " + "INNER JOIN \"TermoCompromisso\" AS tc ON tc.id = n.idTermoCompromisso "; int p = 0; string pre = ""; foreach (Library.Classes.QItem qi in args) { if (p == 0) { pre = "WHERE "; } else { pre = " AND "; } p++; switch (qi.Campo) { case "n.id": query += pre + "(n.id = @id)"; comando.Parameters.AddWithValue("@id", qi.Objeto); break; case "n.idTermoCompromisso": query += pre + "(n.idTermoCompromisso = @idTC)"; comando.Parameters.AddWithValue("@idTC", qi.Objeto); break; case "tc.id": query += pre + "(tc.id = @idtermocompromisso)"; comando.Parameters.AddWithValue("@idtermocompromisso", qi.Objeto); break; case "tc.status": query += pre + "(tc.status = @status)"; comando.Parameters.AddWithValue("@status", qi.Objeto); break; case "ORDER BY": query += " ORDER BY " + qi.Objeto; break; } } comando.CommandText = query; comando.Connection = conexao; conexao.Open(); rdr = comando.ExecuteReader(); } List <Library.Notificacao> notificacoes = new List <Library.Notificacao>(); while (rdr.Read()) { DateTime date = DateTime.MinValue; DateTime.TryParse(rdr["data"].ToString(), out date); Library.Notificacao notificacao = new Notificacao(); notificacao.Id = (long)rdr["id"]; notificacao.TermoCompromisso = Library.TermoCompromissoBD.FindById((long)rdr["idTermoCompromisso"]); notificacao.Texto = rdr["texto"].ToString(); notificacao.Data = date; if ((int)rdr["isJudicial"] == 1) { notificacao.isJudicial = true; } else { notificacao.isJudicial = false; } notificacoes.Add(notificacao); } return(notificacoes); } catch (Exception ex) { Library.Classes.Logger.Error(ex);; } finally { if (conexao != null) { conexao.Close(); } } return(null); }