using System.Data; using Dapper; using Newsbot.Collector.Domain.Interfaces; using Newsbot.Collector.Domain.Models; using Npgsql; namespace Newsbot.Collector.Database.Repositories; public class DiscordQueueTable : IDiscordQueueRepository { private string _connectionString; public DiscordQueueTable(string connectionString) { _connectionString = connectionString; } private IDbConnection OpenConnection(string connectionString) { var conn = new NpgsqlConnection(_connectionString); conn.Open(); return conn; } public void New(DiscordQueueModel model) { using var conn = OpenConnection(_connectionString); var query = "Insert into DiscordQueue(ID, ArticleId) Values (@id, @articleid);"; conn.Execute(query, new { id = Guid.NewGuid(), articleid = model.ArticleID }); } public void Delete(Guid id) { using var conn = OpenConnection(_connectionString); var query = "Delete From DiscordQueue Where ID = @id;"; conn.Execute(query, new { id = id }); } public List List(int limit = 25) { using var conn = OpenConnection(_connectionString); var query = "Select * from DiscordQueue LIMIT @id;"; return conn.Query(query, new { limit = limit }).ToList(); } }