mirror of
https://github.com/Sea-Haven-Industries/shoc-backend.git
synced 2026-09-30 08:23:12 +00:00
Fix pagination to use database-side Skip/Take instead of loading all rows
- Move .ToList() after .Skip().Take() in ContactController, QuotesController, SettingsController - Prevents loading entire tables into memory for paginated queries
This commit is contained in:
parent
483b765d69
commit
493cff00fb
3 changed files with 12 additions and 18 deletions
|
|
@ -131,12 +131,10 @@ namespace Api.SeaHavenIndustries.Controllers
|
|||
Name = (n.FirstName + " " + n.LastName).Trim(),
|
||||
email = n.Email,
|
||||
phone = n.PhoneNumber
|
||||
}).OrderByDescending(d => d.Id).ToList().Skip((page - 1) * pageSize)
|
||||
.Take(pageSize);
|
||||
// Calculate the number of pages
|
||||
}).OrderByDescending(d => d.Id).Skip((page - 1) * pageSize)
|
||||
.Take(pageSize).ToList();
|
||||
var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
|
||||
|
||||
// Create a view model containing the paged items and pagination metadata
|
||||
var viewModel = new Pagination_DTO
|
||||
{
|
||||
Data = data,
|
||||
|
|
@ -267,12 +265,10 @@ namespace Api.SeaHavenIndustries.Controllers
|
|||
n.Id,
|
||||
n.Name,
|
||||
n.Title
|
||||
}).OrderByDescending(d => d.Id).ToList().Skip((page - 1) * pageSize)
|
||||
.Take(pageSize);
|
||||
// Calculate the number of pages
|
||||
}).OrderByDescending(d => d.Id).Skip((page - 1) * pageSize)
|
||||
.Take(pageSize).ToList();
|
||||
var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
|
||||
|
||||
// Create a view model containing the paged items and pagination metadata
|
||||
var viewModel = new Pagination_DTO
|
||||
{
|
||||
Data = data,
|
||||
|
|
|
|||
|
|
@ -174,8 +174,8 @@ namespace Api.SeaHavenIndustries.Controllers
|
|||
s.ContactId,
|
||||
s.Date,
|
||||
lineitems = s.LineItems.Select(q => new { q.Descriptions, q.Lineitem, q.LineitemNumber}),
|
||||
}).OrderByDescending(d => d.Id).ToList().Skip((page - 1) * pageSize)
|
||||
.Take(pageSize);
|
||||
}).OrderByDescending(d => d.Id).Skip((page - 1) * pageSize)
|
||||
.Take(pageSize).ToList();
|
||||
|
||||
// Calculate the number of pages
|
||||
var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
|
||||
|
|
|
|||
|
|
@ -104,13 +104,11 @@ namespace Api.SeaHavenIndustries.Controllers
|
|||
{
|
||||
s.Id,
|
||||
s.Name
|
||||
}).OrderByDescending(d => d.Id).ToList().Skip((page - 1) * pageSize)
|
||||
.Take(pageSize);
|
||||
}).OrderByDescending(d => d.Id).Skip((page - 1) * pageSize)
|
||||
.Take(pageSize).ToList();
|
||||
|
||||
// Calculate the number of pages
|
||||
var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
|
||||
|
||||
// Create a view model containing the paged items and pagination metadata
|
||||
var viewModel = new Pagination_DTO
|
||||
{
|
||||
Data = data,
|
||||
|
|
@ -129,8 +127,8 @@ namespace Api.SeaHavenIndustries.Controllers
|
|||
try
|
||||
{
|
||||
var totalCount = _db.workOrders.Where(w=> w.istemplate == true).Count();
|
||||
var data = _db.workOrders.Where(w => w.istemplate == true).OrderByDescending(d => d.Id).ToList().Skip((page - 1) * pageSize)
|
||||
.Take(pageSize);
|
||||
var data = _db.workOrders.Where(w => w.istemplate == true).OrderByDescending(d => d.Id).Skip((page - 1) * pageSize)
|
||||
.Take(pageSize).ToList();
|
||||
|
||||
// Calculate the number of pages
|
||||
var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
|
||||
|
|
@ -159,8 +157,8 @@ namespace Api.SeaHavenIndustries.Controllers
|
|||
try
|
||||
{
|
||||
var totalCount = _db.Users.Count();
|
||||
var allUsers = _db.Users.Where(w => (w.FirstName ?? "").ToLower().Contains((search ?? "").ToLower())).OrderByDescending(d => d.Id).ToList().Skip((page - 1) * pageSize)
|
||||
.Take(pageSize);
|
||||
var allUsers = _db.Users.Where(w => (w.FirstName ?? "").ToLower().Contains((search ?? "").ToLower())).OrderByDescending(d => d.Id).Skip((page - 1) * pageSize)
|
||||
.Take(pageSize).ToList();
|
||||
|
||||
// Calculate the number of pages
|
||||
var totalPages = (int)Math.Ceiling(totalCount / (double)pageSize);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue