diff --git a/Marco.Pms.Services/Controllers/AttendanceController.cs b/Marco.Pms.Services/Controllers/AttendanceController.cs index de15a20..f02c089 100644 --- a/Marco.Pms.Services/Controllers/AttendanceController.cs +++ b/Marco.Pms.Services/Controllers/AttendanceController.cs @@ -856,10 +856,10 @@ namespace MarcoBMS.Services.Controllers lstAttendanceQuery = lstAttendanceQuery.Where(a => a.ProjectID == projectId); } - Attendance lstAttendance = await lstAttendanceQuery.FirstOrDefaultAsync() ?? new Attendance(); - - var project = await _context.Projects.FirstOrDefaultAsync(p => p.Id == lstAttendance.ProjectID && p.TenantId == tenantId); + List lstAttendances = await lstAttendanceQuery.ToListAsync() ?? new List(); + var projectIds = lstAttendances.Select(a => a.ProjectID).ToList(); + var projects = await _context.Projects.Where(p => projectIds.Contains(p.Id) && p.TenantId == tenantId).ToListAsync(); var employee = await _context.Employees .Include(e => e.Organization) @@ -868,21 +868,24 @@ namespace MarcoBMS.Services.Controllers if (employee != null && employee.JobRole != null && employee.Organization != null) { - EmployeeAttendanceVM result1 = new EmployeeAttendanceVM + foreach (var lstAttendance in lstAttendances) { - Id = lstAttendance.Id, - EmployeeAvatar = null, - EmployeeId = employee.Id, - FirstName = employee.FirstName, - OrganizationName = employee.Organization.Name, - ProjectName = project?.Name, - LastName = employee.LastName, - JobRoleName = employee.JobRole.Name, - CheckInTime = lstAttendance.InTime, - CheckOutTime = lstAttendance.OutTime, - Activity = lstAttendance.Activity - }; - result.Add(result1); + EmployeeAttendanceVM result1 = new EmployeeAttendanceVM + { + Id = lstAttendance.Id, + EmployeeAvatar = null, + EmployeeId = employee.Id, + FirstName = employee.FirstName, + OrganizationName = employee.Organization.Name, + ProjectName = projects.Where(p => p.Id == lstAttendance.ProjectID).Select(p => p.Name).FirstOrDefault(), + LastName = employee.LastName, + JobRoleName = employee.JobRole.Name, + CheckInTime = lstAttendance.InTime, + CheckOutTime = lstAttendance.OutTime, + Activity = lstAttendance.Activity + }; + result.Add(result1); + } } return result;