public async Task <ActionResult> GetEmployeesByProject([FromRoute] int projectId) { var employees = await Db.Set <ProjectEmployee>() .Include(pe => pe.Project) .Include(pe => pe.Employee) .Where(pe => pe.ProjectId == projectId && pe.Role == RoleType.Employee) .Select(pe => pe.Employee).ToListAsync(); if (!employees.Any()) { return(NotFound()); } return(Ok(DtoConverter.ToEmployeeDto(employees))); }
public async Task <ActionResult> GetEmployees(int projectId, int employeeId) { var manager = await Db.Set <Employee>().FirstOrDefaultAsync(e => e.Id == employeeId && e.ManagerId == null && e.MaxRole == RoleType.Manager).ConfigureAwait(false); if (manager == null) { return(NotFound(new { Message = $"Employee with id = {employeeId} not found or employee is not a manager" })); } var project = await Db.Set <Project>().FirstOrDefaultAsync(p => p.Id == projectId).ConfigureAwait(false); if (project == null) { return(NotFound(new { Message = $"Project with id = {projectId} not found" })); } var employees = await Db.Set <ProjectEmployee>() .Where(pe => pe.Employee.ManagerId == employeeId && pe.ProjectId == projectId) .Select(pe => pe.Employee) .Include(p => p.ProjectEmployees).ThenInclude(pe => pe.Project) .ToListAsync(); return(Ok(DtoConverter.ToEmployeeDto(employees))); }