sort api/v1/leave/user/table and api/v1/discipline/complaint_appeal/user/{id}
This commit is contained in:
parent
fb6a82be14
commit
2a02bdf9f7
3 changed files with 123 additions and 7 deletions
|
|
@ -90,7 +90,7 @@ namespace BMA.EHR.DisciplineComplaint_Appeal.Service.Controllers
|
||||||
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
/// <response code="401">ไม่ได้ Login เข้าระบบ</response>
|
||||||
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
/// <response code="500">เมื่อเกิดข้อผิดพลาดในการทำงาน</response>
|
||||||
[HttpGet("user")]
|
[HttpGet("user")]
|
||||||
public async Task<ActionResult<ResponseObject>> GetDisciplineUser(string status = "ALL", string type = "ALL", int year = 0, int page = 1, int pageSize = 25, string keyword = "")
|
public async Task<ActionResult<ResponseObject>> GetDisciplineUser(string status = "ALL", string type = "ALL", int year = 0, int page = 1, int pageSize = 25, string keyword = "", string? sortBy = null, bool descending = false)
|
||||||
{
|
{
|
||||||
var id = "";
|
var id = "";
|
||||||
var apiUrl = $"{_configuration["API"]}/org/profile/keycloak/position";
|
var apiUrl = $"{_configuration["API"]}/org/profile/keycloak/position";
|
||||||
|
|
@ -125,7 +125,7 @@ namespace BMA.EHR.DisciplineComplaint_Appeal.Service.Controllers
|
||||||
data_search = data_search.Where(x => x.Type == type).ToList();
|
data_search = data_search.Where(x => x.Type == type).ToList();
|
||||||
if (year != 0)
|
if (year != 0)
|
||||||
data_search = data_search.Where(x => x.Year == year).ToList();
|
data_search = data_search.Where(x => x.Year == year).ToList();
|
||||||
var data = data_search
|
var query = data_search
|
||||||
.Select(x => new
|
.Select(x => new
|
||||||
{
|
{
|
||||||
Id = x.Id,
|
Id = x.Id,
|
||||||
|
|
@ -141,8 +141,42 @@ namespace BMA.EHR.DisciplineComplaint_Appeal.Service.Controllers
|
||||||
ProfileId = x.ProfileId,
|
ProfileId = x.ProfileId,
|
||||||
LastUpdatedAt = x.LastUpdatedAt,
|
LastUpdatedAt = x.LastUpdatedAt,
|
||||||
CreatedAt = x.CreatedAt
|
CreatedAt = x.CreatedAt
|
||||||
})
|
});
|
||||||
.OrderByDescending(x => x.CreatedAt)
|
if (!string.IsNullOrEmpty(sortBy))
|
||||||
|
{
|
||||||
|
{
|
||||||
|
if (sortBy == "title")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.Title) : query.OrderBy(x => x.Title);
|
||||||
|
else if (sortBy == "year")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.Year) : query.OrderBy(x => x.Year);
|
||||||
|
else if (sortBy == "status")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.Status) : query.OrderBy(x => x.Status);
|
||||||
|
else if (sortBy == "description")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.Description) : query.OrderBy(x => x.Description);
|
||||||
|
else if (sortBy == "type")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.Type) : query.OrderBy(x => x.Type);
|
||||||
|
else if (sortBy == "caseType")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.CaseType) : query.OrderBy(x => x.CaseType);
|
||||||
|
else if (sortBy == "caseNumber")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.CaseNumber) : query.OrderBy(x => x.CaseNumber);
|
||||||
|
else if (sortBy == "fullname")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.Fullname) : query.OrderBy(x => x.Fullname);
|
||||||
|
else if (sortBy == "citizenId")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.CitizenId) : query.OrderBy(x => x.CitizenId);
|
||||||
|
else if (sortBy == "lastUpdatedAt")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.LastUpdatedAt) : query.OrderBy(x => x.LastUpdatedAt);
|
||||||
|
else if (sortBy == "createdAt")
|
||||||
|
query = descending ? query.OrderByDescending(x => x.CreatedAt) : query.OrderBy(x => x.CreatedAt);
|
||||||
|
else
|
||||||
|
query = query.OrderByDescending(x => x.CreatedAt); // default
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
query = query.OrderByDescending(x => x.CreatedAt);
|
||||||
|
}
|
||||||
|
|
||||||
|
var data = query
|
||||||
.Skip((page - 1) * pageSize)
|
.Skip((page - 1) * pageSize)
|
||||||
.Take(pageSize)
|
.Take(pageSize)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|
|
||||||
|
|
@ -1367,6 +1367,84 @@ namespace BMA.EHR.Leave.Service.Controllers
|
||||||
if (req.Keyword != "")
|
if (req.Keyword != "")
|
||||||
result = result.Where(x => x.FullName.Contains(req.Keyword)).ToList();
|
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();
|
var pageResult = result.Skip((req.Page - 1) * req.PageSize).Take(req.PageSize).ToList();
|
||||||
|
|
||||||
return Success(new { data = pageResult, total = result.Count });
|
return Success(new { data = pageResult, total = result.Count });
|
||||||
|
|
|
||||||
|
|
@ -20,5 +20,9 @@ namespace BMA.EHR.Leave.Service.DTOs.LeaveRequest
|
||||||
public int PageSize = 10;
|
public int PageSize = 10;
|
||||||
|
|
||||||
public string? Keyword { get; set; } = string.Empty;
|
public string? Keyword { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public string? SortBy { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
public bool? Descending { get; set; } = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue