Ejemplo n.º 1
0
        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)));
        }
Ejemplo n.º 2
0
        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)));
        }