From 6826c2890d9951c6a3b7c9418c884bd738fc0542 Mon Sep 17 00:00:00 2001 From: gradovenko Date: Mon, 10 Feb 2020 17:10:30 +0500 Subject: [PATCH 1/3] Add dapper package for query infrastructure --- .../ProjectManagementSystem.Queries.Infrastructure.csproj | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ProjectManagementSystem.Queries.Infrastructure/ProjectManagementSystem.Queries.Infrastructure.csproj b/src/ProjectManagementSystem.Queries.Infrastructure/ProjectManagementSystem.Queries.Infrastructure.csproj index 3f2b341..bd8e84f 100644 --- a/src/ProjectManagementSystem.Queries.Infrastructure/ProjectManagementSystem.Queries.Infrastructure.csproj +++ b/src/ProjectManagementSystem.Queries.Infrastructure/ProjectManagementSystem.Queries.Infrastructure.csproj @@ -9,6 +9,7 @@ + From 086515e9ef144ebcd0211ff41d783c6f033ce44d Mon Sep 17 00:00:00 2001 From: gradovenko Date: Tue, 10 Mar 2020 18:01:32 +0500 Subject: [PATCH 2/3] Add sql-code in the IssuePriorityListQueryHandler --- .../IssuePriorityListQueryHandler.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/ProjectManagementSystem.Queries.Infrastructure/Admin/IssuePriorities/IssuePriorityListQueryHandler.cs b/src/ProjectManagementSystem.Queries.Infrastructure/Admin/IssuePriorities/IssuePriorityListQueryHandler.cs index f1d7043..b5941ba 100644 --- a/src/ProjectManagementSystem.Queries.Infrastructure/Admin/IssuePriorities/IssuePriorityListQueryHandler.cs +++ b/src/ProjectManagementSystem.Queries.Infrastructure/Admin/IssuePriorities/IssuePriorityListQueryHandler.cs @@ -1,6 +1,8 @@ +using System.Data; using System.Linq; using System.Threading; using System.Threading.Tasks; +using Dapper; using MediatR; using Microsoft.EntityFrameworkCore; using ProjectManagementSystem.Queries.Admin.IssuePriorities; @@ -9,17 +11,26 @@ namespace ProjectManagementSystem.Queries.Infrastructure.Admin.IssuePriorities { public class IssuePriorityListQueryHandler : IRequestHandler> { - private readonly IssuePriorityDbContext _context; + private readonly IDbConnection _dbConnection; - public IssuePriorityListQueryHandler(IssuePriorityDbContext context) + public IssuePriorityListQueryHandler(IDbConnection dbConnection) { - _context = context; + _dbConnection = dbConnection; } public async Task> Handle(IssuePriorityListQuery query, CancellationToken cancellationToken) { - var sql = _context.IssuePriorities.AsNoTracking() + var sql = await _dbConnection.QueryAsync(@" +SELECT i.""IssuePriorityId"" AS ""Id"", i.""Name"", i.""IsActive"" +FROM ""IssuePriority"" AS i +ORDER BY (SELECT 1) +LIMIT @__p_1 OFFSET @__p_0 +"); + + + + .IssuePriorities.AsNoTracking() .Select(issuePriority => new IssuePriorityListItemView { Id = issuePriority.Id, From 27f59554774d1cc11e72ca23db1f79bfbeca8969 Mon Sep 17 00:00:00 2001 From: gradovenko Date: Tue, 10 Mar 2020 18:52:27 +0500 Subject: [PATCH 3/3] Add sql-code for counting in the IssuePriorityListQueryHandler --- .../IssuePriorities/IssuePriorityListQueryHandler.cs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/ProjectManagementSystem.Queries.Infrastructure/Admin/IssuePriorities/IssuePriorityListQueryHandler.cs b/src/ProjectManagementSystem.Queries.Infrastructure/Admin/IssuePriorities/IssuePriorityListQueryHandler.cs index b5941ba..d7b9a3b 100644 --- a/src/ProjectManagementSystem.Queries.Infrastructure/Admin/IssuePriorities/IssuePriorityListQueryHandler.cs +++ b/src/ProjectManagementSystem.Queries.Infrastructure/Admin/IssuePriorities/IssuePriorityListQueryHandler.cs @@ -21,11 +21,16 @@ public IssuePriorityListQueryHandler(IDbConnection dbConnection) public async Task> Handle(IssuePriorityListQuery query, CancellationToken cancellationToken) { - var sql = await _dbConnection.QueryAsync(@" + var sqlCount = _dbConnection.QueryAsync(@" +SELECT COUNT(*) +FROM ""IssuePriority"" +"); + + var sqlItems = _dbConnection.QueryAsync($@" SELECT i.""IssuePriorityId"" AS ""Id"", i.""Name"", i.""IsActive"" FROM ""IssuePriority"" AS i ORDER BY (SELECT 1) -LIMIT @__p_1 OFFSET @__p_0 +LIMIT {} OFFSET @__p_0 ");