All checks were successful
toastie-stuff/SupportChild/pipeline/head This commit looks good
112 lines
No EOL
3.6 KiB
C#
112 lines
No EOL
3.6 KiB
C#
using System.Collections.Generic;
|
|
using MySqlConnector;
|
|
|
|
namespace SupportChild.Database;
|
|
|
|
public class Message(MySqlDataReader reader)
|
|
{
|
|
public readonly string identifier = reader.GetString("identifier");
|
|
public readonly ulong userID = reader.GetUInt64("user_id");
|
|
public readonly string message = reader.GetString("message");
|
|
|
|
public static List<Message> GetAllMessages()
|
|
{
|
|
using MySqlConnection c = Connection.GetConnection();
|
|
c.Open();
|
|
using MySqlCommand selection = new("SELECT * FROM messages", c);
|
|
selection.Prepare();
|
|
MySqlDataReader results = selection.ExecuteReader();
|
|
|
|
if (!results.Read())
|
|
{
|
|
return [];
|
|
}
|
|
|
|
List<Message> messages = [new(results)];
|
|
while (results.Read())
|
|
{
|
|
messages.Add(new Message(results));
|
|
}
|
|
results.Close();
|
|
|
|
return messages;
|
|
}
|
|
|
|
public static bool TryGetMessage(string identifier, out Message message)
|
|
{
|
|
using MySqlConnection c = Connection.GetConnection();
|
|
c.Open();
|
|
using MySqlCommand selection = new("SELECT * FROM messages WHERE identifier=@identifier", c);
|
|
selection.Parameters.AddWithValue("@identifier", identifier);
|
|
selection.Prepare();
|
|
MySqlDataReader results = selection.ExecuteReader();
|
|
|
|
// Check if ticket exists in the database
|
|
if (!results.Read())
|
|
{
|
|
message = null;
|
|
return false;
|
|
}
|
|
message = new Message(results);
|
|
results.Close();
|
|
return true;
|
|
}
|
|
|
|
public static bool AddMessage(string identifier, ulong userID, string message)
|
|
{
|
|
try
|
|
{
|
|
using MySqlConnection c = Connection.GetConnection();
|
|
c.Open();
|
|
using MySqlCommand cmd = new("INSERT INTO messages (identifier,user_id,message) VALUES (@identifier, @user_id, @message);", c);
|
|
cmd.Parameters.AddWithValue("@identifier", identifier);
|
|
cmd.Parameters.AddWithValue("@user_id", userID);
|
|
cmd.Parameters.AddWithValue("@message", message);
|
|
cmd.Prepare();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch (MySqlException e)
|
|
{
|
|
Logger.Error("Could not add message to database.", e);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static bool UpdateMessage(string identifier, ulong userID, string message)
|
|
{
|
|
try
|
|
{
|
|
using MySqlConnection c = Connection.GetConnection();
|
|
c.Open();
|
|
using MySqlCommand cmd = new("UPDATE messages SET message = @message, user_id = @user_id WHERE identifier=@identifier", c);
|
|
cmd.Parameters.AddWithValue("@identifier", identifier);
|
|
cmd.Parameters.AddWithValue("@user_id", userID);
|
|
cmd.Parameters.AddWithValue("@message", message);
|
|
cmd.Prepare();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch (MySqlException e)
|
|
{
|
|
Logger.Error("Could not add message to database.", e);
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static bool RemoveMessage(string identifier)
|
|
{
|
|
try
|
|
{
|
|
using MySqlConnection c = Connection.GetConnection();
|
|
c.Open();
|
|
using MySqlCommand cmd = new("DELETE FROM messages WHERE identifier=@identifier", c);
|
|
cmd.Parameters.AddWithValue("@identifier", identifier);
|
|
cmd.Prepare();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
catch (MySqlException e)
|
|
{
|
|
Logger.Error("Could not remove message from database.", e);
|
|
return false;
|
|
}
|
|
}
|
|
} |