using System.Threading.Tasks; using System.Linq; using Dapper; using Website.Models; using Website.Data.States; namespace Website.Data { public class BlogRepository { private readonly IDatabaseProvider _dbProvider; public BlogRepository(IDatabaseProvider dbProvider) => _dbProvider = dbProvider; public async Task GetPostAsync(int id) { const string query = "SELECT * FROM blog_posts WHERE post_id=@id AND post_deleted=0"; using (var connection = _dbProvider.NewConnection()) { connection.Open(); var result = await connection.QueryAsync(query, new{id}); return new BlogPost(result.First()); } } public async Task GetLatestPostAsync() { const string query = "SELECT * FROM blog_posts WHERE post_content<>'' AND post_deleted=0 ORDER BY post_timestamp DESC LIMIT 1"; using (var connection = _dbProvider.NewConnection()) { connection.Open(); var result = await connection.QueryAsync(query); return new BlogPost(result.First()); } } } }