public async Task RegisterAsync(string triggerName, string triggerValue)
        {
            IUser user   = Context.User;
            int   chatId = Context.Guild.Get_ID();
            int   userId = user.Get_DiscriminatorInt();
            ChatTriggerRequest request = new ChatTriggerRequest(chatId, userId, triggerName, triggerValue);

            bool success = ChatDataAccess.Instance.CreateChatTrigger(request);

            if (success)
            {
                ReplyAsyncCodeBlock($"Successfully created trigger for [{triggerName}]");
            }
            else
            {
                ReplyAsyncCodeBlock($"Failed to create trigger for [{triggerName}]");
            }
        }
        public bool CreateChatTrigger(ChatTriggerRequest request)
        {
            return(PerformSqlInsertOrUpdate(
                       (SqlConnection connection) =>
            {
                string query = "MERGE " +
                               "[ReputationBot].[dbo].[Chat_Triggers] AS T " +
                               "USING (SELECT @chatID AS chatID, @userID as userID, @triggerName as tName, @triggerType as tType, @triggerValue as tValue) AS S " +
                               "	ON (T.ChatID = S.chatID AND T.TriggerName = S.tName) "+
                               "WHEN NOT MATCHED BY TARGET " +
                               "	THEN INSERT (ChatID, UserID, TriggerName, TriggerType, TriggerValue) VALUES (S.chatID, S.userID, S.tName, S.tType, s.tValue) "+
                               "WHEN MATCHED " +
                               "	THEN UPDATE SET T.UserID = S.userID, T.TriggerValue = s.tValue;";

                SqlCommand command = new SqlCommand(query, connection);
                command.Parameters.AddWithValue("@chatID", request.ChatID);
                command.Parameters.AddWithValue("@userID", request.UserID);
                command.Parameters.AddWithValue("@triggerName", request.TriggerName);
                command.Parameters.AddWithValue("@triggerType", request.TriggerType);
                command.Parameters.AddWithValue("@triggerValue", request.TriggerValue);
                return command;
            }));
        }