public async Task<(List Items, int RowCount)> GetExternalAssignedDocuments(int page = 1, int pageSize = 20) { var assignedStatusId = DocumentRegistryStatus.Assigned.Value; var currentUserId = (await GetUser()).Id; var offset = Offset(page, pageSize); var result = RunSqlQuery((connection) => { const string sqlCount = @" SELECT COUNT(*) from dbo.""ExternalDocumentAssignments"" e where e.""CompletionStatusId""= @assignedStatusId;"; const string sql = @" select e.""Id"", e.""AssignedOn"", e.""RegistryEntryId"", er.""RegistryNumber"", er.""Subject"", er.""CompanyName"" from dbo.""ExternalDocumentAssignments"" e left join dbo.""ExternalDocumentRegistryEntries"" er ON er.""Id"" = e.""RegistryEntryId"" where e.""CompletionStatusId""=@assignedStatusId ORDER BY e.""AssignedOn"" DESC LIMIT @PageSize OFFSET @Offset; "; var multiQueryResult = connection.QueryMultiple($"{sqlCount} {sql}", new { assignedStatusId, pageSize, offset }); var totalRowCounts = multiQueryResult.Read().Single(); var result = multiQueryResult.Read().ToList(); return (Data: result?.ToList() ?? [], Total: totalRowCounts); }); return result; } public (List Items, int RowCount) GetAllExternalDocumentRegistries(DocumentRegistryStatus status, int page = 1, int pageSize = 20) { var statusId = status.Value; var offset = Offset(page, pageSize); var result = RunSqlQuery((connection) => { const string sqlCount = @" SELECT COUNT(*) from dbo.""ExternalDocumentRegistryEntries"" e where e.""StatusId""= @statusId;"; const string sql = @" select e.""Id"" as ""RegistryEntryId"", e.""RegistryNumber"", e.""Subject"", e.""CompanyName"", s.""Name"" as ""Status"" from dbo.""ExternalDocumentRegistryEntries"" e left join dbo.""DocumentRegistryStatuses"" s on s.""Value""=e.""StatusId"" where e.""StatusId""=@statusId ORDER BY e.""SubmittedOn"" DESC LIMIT @PageSize OFFSET @Offset; "; var multiQueryResult = connection.QueryMultiple($"{sqlCount} {sql}", new { statusId, pageSize, offset }); var totalRowCounts = multiQueryResult.Read().Single(); var result = multiQueryResult.Read().ToList(); return (Data: result?.ToList() ?? [], Total: totalRowCounts); }); return result; }