From 731b2cf9b7debbd6cd96bf7ed8908fa43faafc5d Mon Sep 17 00:00:00 2001 From: James Tombleson Date: Thu, 22 Jun 2023 08:09:18 -0700 Subject: [PATCH] moving some commands over to ef --- .../Repositories/ArticlesTable.cs | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/Newsbot.Collector.Database/Repositories/ArticlesTable.cs b/Newsbot.Collector.Database/Repositories/ArticlesTable.cs index 168ce32..de7c117 100644 --- a/Newsbot.Collector.Database/Repositories/ArticlesTable.cs +++ b/Newsbot.Collector.Database/Repositories/ArticlesTable.cs @@ -1,6 +1,8 @@ using System.Data; using Dapper; +using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; +using Newsbot.Collector.Domain.Entities; using Newsbot.Collector.Domain.Interfaces; using Newsbot.Collector.Domain.Models; using Npgsql; @@ -11,9 +13,12 @@ public class ArticlesTable : IArticlesRepository { private readonly string _connectionString; + private DatabaseContext _context; + public ArticlesTable(string connectionString) { _connectionString = connectionString; + _context = new DatabaseContext(connectionString); } public ArticlesTable(IConfiguration configuration) @@ -22,12 +27,24 @@ public class ArticlesTable : IArticlesRepository if (conn is null) conn = ""; _connectionString = conn; + _context = new DatabaseContext(conn); } - public List List(int page = 0, int count = 25) + public async Task> ListAsync(int page = 0, int count = 25) + { + await using var context = new DatabaseContext(_connectionString); + var query = context.Articles + .OrderBy(d => d.PubDate) + .Take(25); + Console.WriteLine(query.ToQueryString()); + await query.ToListAsync(); + return await query.ToListAsync(); + } + + public List List(int page = 0, int count = 25) { using var conn = OpenConnection(_connectionString); - var res = conn.Query(@"select * from articles + var res = conn.Query(@"select * from Articles Order By PubDate Desc Offset @Page Fetch Next @Count Rows Only", new @@ -70,7 +87,16 @@ public class ArticlesTable : IArticlesRepository }).ToList(); } - public ArticlesModel New(ArticlesModel model) + public ArticlesEntity New(ArticlesEntity model) + { + using var context = new DatabaseContext(_connectionString); + model.Id = new Guid(); + var query = context.Articles.Add(model); + context.SaveChanges(); + return model; + } + + public ArticlesModel NewDapper(ArticlesModel model) { model.ID = Guid.NewGuid();