public static T Load(int id) { try { //identificar o nome da tabela no banco de dados usando o StxFramework string nomeTabela = typeof(T).GetCustomAttributesData().Where(item => item.AttributeType == typeof(Table)).FirstOrDefault().ConstructorArguments[0].ToString().Replace("\"", ""); //(typeof(Table), false)[0].ToString(); //Monta o SQL List <T> list = new List <T>(); string CmdString = "SELECT * FROM "; CmdString += nomeTabela; CmdString += " WHERE id = '" + id + "'"; if (Config.DEBUG_MODE) { Log(CmdString); } MySqlCommand cmd = new MySqlCommand(CmdString, DBConfig.getConnection()); MySqlDataReader rs = cmd.ExecuteReader(); var dt = new DataTable(); dt.Load(rs); list = ConvertToList <T>(dt); rs.Close(); return(list.FirstOrDefault <T>()); } catch (Exception x) { ErrorLog("Erro MagicSqlFramework.GenericController.Select: " + x.Message); throw x; } }
public bool CadastrarLembrete(Lembrete lembrete, List <LembreteDestinatario> destinatarios) { MySqlTransaction trans = null; MySqlConnection conn = null; try { conn = DBConfig.getConnection(); trans = conn.BeginTransaction(); string cmdString = "INSERT INTO lembrete (idloginremetente, titulo, mensagem, datahoracadastro, datahoraenvio, enviada) VALUES ('" + lembrete.idLoginRemetente + "','" + lembrete.titulo + "','" + lembrete.mensagem + "','" + DBConfig.DateTimeSQLFormat(lembrete.dataHoraCadastro) + "','" + DBConfig.DateTimeSQLFormat(lembrete.dataHoraEnvio) + "','" + (lembrete.enviada ? 1 : 0) + "')"; if (Config.DEBUG_MODE) { DBConfig.Log(cmdString); } new MySqlCommand(cmdString, conn).ExecuteNonQuery(); cmdString = "SELECT DISTINCT LAST_INSERT_ID() FROM lembrete;"; int idLembrete = Convert.ToInt32(new MySqlCommand(cmdString, conn).ExecuteScalar()); foreach (LembreteDestinatario ld in destinatarios) { cmdString = "INSERT INTO lembretedestinatario (idlembrete, idlogindestinatario) VALUES ('" + idLembrete + "','" + ld.idlogindestinatario + "')"; new MySqlCommand(cmdString, conn).ExecuteNonQuery(); } trans.Commit(); return(true); } catch (Exception x) { trans.Rollback(); DBConfig.ErrorLog("Erro LembreteControl.CadastrarLembrete: " + x.Message); return(false); } }
public static void Log(String texto) { string CmdString = "INSERT INTO logs (quando, registro) VALUES (CURRENT_TIMESTAMP, @REG)"; MySqlCommand cmd = new MySqlCommand(CmdString, DBConfig.getConnection()); cmd.Parameters.Add("@REG", MySqlDbType.VarChar); cmd.Parameters["@REG"].Value = texto; cmd.ExecuteNonQuery(); }
public string Sincronizar() { try { string CmdString = "SELECT l.id as idlembrete, l.titulo as assunto, l.mensagem as corpo, r.email as remetente, d.email as destinatario " + "FROM lembrete l " + "JOIN login r ON l.idloginremetente = r.id " + "JOIN lembretedestinatario ld ON ld.idlembrete = l.id " + "JOIN login d ON ld.idlogindestinatario = d.id " + "WHERE l.enviada = 0 " + "AND DATE(l.datahoraenvio) <= DATE(NOW()) " + //comentar esta linha para forceps em todos "ORDER BY l.id"; if (Config.DEBUG_MODE) { DBConfig.Log(CmdString); } MySqlDataReader rs = new MySqlCommand(CmdString, DBConfig.getConnection()).ExecuteReader(); DataTable dt = new DataTable(); dt.Load(rs); List <int> idLembretesEnviadosRaw = new List <int>(); if (dt.Rows.Count == 0) { return("Não há mensagens pendentes"); } foreach (DataRow dr in dt.Rows) { Util.SendMail(dr["remetente"].ToString(), dr["destinatario"].ToString(), dr["assunto"].ToString(), dr["corpo"].ToString()); idLembretesEnviadosRaw.Add((int)dr["idlembrete"]); } rs.Close(); //registra que foi enviada a mensagem CmdString = "UPDATE lembrete SET enviada = 1 WHERE id IN ("; foreach (int n in idLembretesEnviadosRaw.Distinct()) { CmdString += n + ", "; } CmdString += "-1)"; //coloca essa gambi aqui só pra nao bugar na ultima virgula perdida if (Config.DEBUG_MODE) { DBConfig.Log(CmdString); } new MySqlCommand(CmdString, DBConfig.getConnection()).ExecuteNonQuery(); return("Foram sincronizadas " + dt.Rows.Count + " mensagens."); } catch (Exception x) { DBConfig.ErrorLog("Erro LembreteControl.Sincronizar: " + x.Message); throw x; } }
public static List <T> Select(CriteriaBuilder criteria = null) { try { //identificar o nome da tabela no banco de dados usando o StxFramework string nomeTabela = typeof(T).GetCustomAttributesData().Where(item => item.AttributeType == typeof(Table)).FirstOrDefault().ConstructorArguments[0].ToString().Replace("\"", ""); //Monta o SQL List <T> list = new List <T>(); string CmdString = "SELECT * FROM "; CmdString += nomeTabela; if (criteria != null) { if (!string.IsNullOrWhiteSpace(criteria.GetQuery())) { ; CmdString += criteria.GetQuery(); } if (!string.IsNullOrWhiteSpace(criteria.GetOrderBy())) { CmdString += criteria.GetOrderBy(); } } if (Config.DEBUG_MODE) { Log(CmdString); } MySqlCommand cmd = new MySqlCommand(CmdString, DBConfig.getConnection()); MySqlDataReader rs = cmd.ExecuteReader(); var dt = new DataTable(); dt.Load(rs); list = ConvertToList <T>(dt); rs.Close(); return(list); } catch (Exception x) { ErrorLog("Erro MagicSqlFramework.GenericController.Select: " + x.Message); return(null); } }