Added on hold job count in service project list API
This commit is contained in:
parent
f171b0add6
commit
230267bdb9
@ -48,7 +48,7 @@ namespace Marco.Pms.Services.Controllers
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region =================================================================== Job Status APIs ===================================================================
|
#region =================================================================== Team role APIs ===================================================================
|
||||||
[HttpGet("team-roles/list")]
|
[HttpGet("team-roles/list")]
|
||||||
public async Task<IActionResult> GetTeamRoles()
|
public async Task<IActionResult> GetTeamRoles()
|
||||||
{
|
{
|
||||||
|
|||||||
@ -126,8 +126,10 @@ namespace Marco.Pms.Services.Service
|
|||||||
.Select(g => new
|
.Select(g => new
|
||||||
{
|
{
|
||||||
ProjectId = g.Key,
|
ProjectId = g.Key,
|
||||||
JobsPassedDueDateCount = g.Count(jt => jt.DueDate.Date < DateTime.UtcNow.Date),
|
JobsPassedDueDateCount = g.Count(jt => jt.StatusId != DoneStatus && jt.StatusId != ClosedStatus && jt.DueDate.Date < DateTime.UtcNow.Date),
|
||||||
ActiveJobsCount = g.Count(jt => jt.StatusId == AssignedStatus || jt.StatusId == InProgressStatus || jt.StatusId == ReviewStatus)
|
ActiveJobsCount = g.Count(jt => jt.StatusId != DoneStatus && jt.StatusId != ClosedStatus && jt.StatusId != OnHoldStatus),
|
||||||
|
AssignedJobsCount = g.Count(jt => jt.StatusId == AssignedStatus),
|
||||||
|
OnHoldJobsCount = g.Count(jt => jt.StatusId == OnHoldStatus)
|
||||||
})
|
})
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
});
|
});
|
||||||
@ -146,25 +148,9 @@ namespace Marco.Pms.Services.Service
|
|||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
});
|
});
|
||||||
|
|
||||||
var jobMembersTask = Task.Run(async () =>
|
await Task.WhenAll(jobTask, teamMemberTask);
|
||||||
{
|
|
||||||
await using var context = await _dbContextFactory.CreateDbContextAsync();
|
|
||||||
return await context.JobEmployeeMappings
|
|
||||||
.Include(jem => jem.JobTicket)
|
|
||||||
.Where(jem => jem.JobTicket != null && serviceProjectIds.Contains(jem.JobTicket.ProjectId) && jem.TenantId == tenantId)
|
|
||||||
.GroupBy(jem => jem.JobTicket!.ProjectId)
|
|
||||||
.Select(g => new
|
|
||||||
{
|
|
||||||
ProjectId = g.Key,
|
|
||||||
JobMembersCount = g.Select(jem => jem.AssigneeId).Distinct().Count()
|
|
||||||
})
|
|
||||||
.ToListAsync();
|
|
||||||
});
|
|
||||||
|
|
||||||
await Task.WhenAll(jobTask, jobMembersTask, teamMemberTask);
|
|
||||||
|
|
||||||
var jobTickets = jobTask.Result;
|
var jobTickets = jobTask.Result;
|
||||||
var jobMembers = jobMembersTask.Result;
|
|
||||||
var teamMembers = teamMemberTask.Result;
|
var teamMembers = teamMemberTask.Result;
|
||||||
|
|
||||||
// Map the service projects into view models including related data
|
// Map the service projects into view models including related data
|
||||||
@ -180,7 +166,8 @@ namespace Marco.Pms.Services.Service
|
|||||||
projectVm.TeamMemberCount = teamMembers.FirstOrDefault(tm => tm.ProjectId == sp.Id)?.TeamMemberCount ?? 0;
|
projectVm.TeamMemberCount = teamMembers.FirstOrDefault(tm => tm.ProjectId == sp.Id)?.TeamMemberCount ?? 0;
|
||||||
projectVm.ActiveJobsCount = jobTickets.FirstOrDefault(jt => jt.ProjectId == sp.Id)?.ActiveJobsCount ?? 0;
|
projectVm.ActiveJobsCount = jobTickets.FirstOrDefault(jt => jt.ProjectId == sp.Id)?.ActiveJobsCount ?? 0;
|
||||||
projectVm.JobsPassedDueDateCount = jobTickets.FirstOrDefault(jt => jt.ProjectId == sp.Id)?.JobsPassedDueDateCount ?? 0;
|
projectVm.JobsPassedDueDateCount = jobTickets.FirstOrDefault(jt => jt.ProjectId == sp.Id)?.JobsPassedDueDateCount ?? 0;
|
||||||
projectVm.JobMembersCount = jobMembers.FirstOrDefault(jm => jm.ProjectId == sp.Id)?.JobMembersCount ?? 0;
|
projectVm.AssignedJobsCount = jobTickets.FirstOrDefault(jt => jt.ProjectId == sp.Id)?.AssignedJobsCount ?? 0;
|
||||||
|
projectVm.OnHoldJobsCount = jobTickets.FirstOrDefault(jt => jt.ProjectId == sp.Id)?.OnHoldJobsCount ?? 0;
|
||||||
return projectVm;
|
return projectVm;
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user