sort api/v1/leave/user/table and api/v1/discipline/complaint_appeal/user/{id}

This commit is contained in:
AdisakKanthawilang 2025-09-15 10:48:47 +07:00
parent fb6a82be14
commit 2a02bdf9f7
3 changed files with 123 additions and 7 deletions

View file

@ -1367,6 +1367,84 @@ namespace BMA.EHR.Leave.Service.Controllers
if (req.Keyword != "")
result = result.Where(x => x.FullName.Contains(req.Keyword)).ToList();
if (!string.IsNullOrEmpty(req.SortBy))
{
var sort = req.SortBy;
if (sort == "leaveTypeName")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.LeaveTypeName).ToList()
: result.OrderBy(x => x.LeaveTypeName).ToList();
}
else if (sort == "leaveSubTypeName")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.LeaveSubTypeName).ToList()
: result.OrderBy(x => x.LeaveSubTypeName).ToList();
}
else if (sort == "fullName")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.FullName).ToList()
: result.OrderBy(x => x.FullName).ToList();
}
else if (sort == "dateSendLeave")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.DateSendLeave).ToList()
: result.OrderBy(x => x.DateSendLeave).ToList();
}
else if (sort == "isDelete")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.IsDelete).ToList()
: result.OrderBy(x => x.IsDelete).ToList();
}
else if (sort == "status")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.Status).ToList()
: result.OrderBy(x => x.Status).ToList();
}
else if (sort == "leaveStartDate")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.LeaveStartDate).ToList()
: result.OrderBy(x => x.LeaveStartDate).ToList();
}
else if (sort == "leaveEndDate")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.LeaveEndDate).ToList()
: result.OrderBy(x => x.LeaveEndDate).ToList();
}
else if (sort == "hajjDayStatus")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.HajjDayStatus).ToList()
: result.OrderBy(x => x.HajjDayStatus).ToList();
}
else if (sort == "leaveRange")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.LeaveRange).ToList()
: result.OrderBy(x => x.LeaveRange).ToList();
}
else if (sort == "leaveRangeEnd")
{
result = req.Descending.GetValueOrDefault()
? result.OrderByDescending(x => x.LeaveRangeEnd).ToList()
: result.OrderBy(x => x.LeaveRangeEnd).ToList();
}
else
{
// default กรณีส่ง sortBy มาไม่ตรง
result = result.OrderByDescending(x => x.DateSendLeave).ToList();
}
}
var pageResult = result.Skip((req.Page - 1) * req.PageSize).Take(req.PageSize).ToList();
return Success(new { data = pageResult, total = result.Count });