query by node

This commit is contained in:
kittapath 2024-12-13 21:14:01 +07:00
parent de61f55a0d
commit 5f92b0c536
2 changed files with 18 additions and 3 deletions

View file

@ -139,12 +139,27 @@ namespace BMA.EHR.Application.Repositories.Leaves.TimeAttendants
return data;
}
public async Task<List<ProcessUserTimeStamp>> GetTimestampByDateLateAsync(string type)
public async Task<List<ProcessUserTimeStamp>> GetTimestampByDateLateAsync(string type, string role, string nodeId, int node)
{
var data = await _dbContext.Set<ProcessUserTimeStamp>()
var _nodeId = Guid.Parse(nodeId);
var data = new List<ProcessUserTimeStamp>();
if (role == "OWNER" || role == "CHILD")
{
data = await _dbContext.Set<ProcessUserTimeStamp>().AsQueryable()
.Where(x => x.CheckInStatus == "LATE")
.Where(x => x.ProfileType == type.Trim().ToUpper())
.Where(x => node == 4 ? x.Child4Id == _nodeId : (node == 3 ? x.Child3Id == _nodeId : (node == 2 ? x.Child2Id == _nodeId : (node == 1 ? x.Child1Id == _nodeId : (node == 0 ? x.RootId == _nodeId : true)))))
.ToListAsync();
}
else
{
data = await _dbContext.Set<ProcessUserTimeStamp>().AsQueryable()
.Where(x => x.CheckInStatus == "LATE")
.Where(x => x.ProfileType == type.Trim().ToUpper())
.Where(x => node == 4 ? x.Child4Id == _nodeId : (node == 3 ? x.Child3Id == _nodeId : (node == 2 ? x.Child2Id == _nodeId : (node == 1 ? x.Child1Id == _nodeId : (node == 0 ? x.RootId == _nodeId : true)))))
.Where(x => node == 0 ? x.Child1Id == null : (node == 1 ? x.Child2Id == null : (node == 2 ? x.Child3Id == null : (node == 3 ? x.Child4Id == null : true))))
.ToListAsync();
}
return data;
}