public async Task <GetTeamDetailsOperationResponse> Execute() { var employee = await _authorizationContext.CurrentEmployee(); var getMySubordinatesRequest = new GetTeamDetailsOperationRequest { ManagerId = employee.Id }; return(await _getTeamDetailsOperation.Execute(getMySubordinatesRequest)); }
public async Task <GetTeamDetailsOperationResponse> Execute(GetTeamDetailsOperationRequest request) { var team = await _teamRepository.GetByManagerIdAsync(request.ManagerId); var manager = team?.Manager ?? await _employeeRepository.GetByIdAsync(request.ManagerId); var employees = team?.Employees .Select(employee => new GetTeamDetailsOperationResponse.Employee { Id = employee.Id, Name = employee.FullName, GoalTopics = MapGoals(employee), Limit = new GetTeamDetailsOperationResponse.Limit { LearningDaysPerQuarter = employee.Limit.DaysPerQuarter, TopicsPerDay = employee.Limit.TopicsPerDay, CreatedLearningDaysThisQuarter = employee .GetLearningDaysForQuarter(DateTime.Today.GetQuarter()) .Count() } }) .ToList() ?? new List <GetTeamDetailsOperationResponse.Employee>(); return(new GetTeamDetailsOperationResponse { Team = new GetTeamDetailsOperationResponse.Details { Manager = new GetTeamDetailsOperationResponse.Employee { Id = request.ManagerId, Name = manager.FullName, GoalTopics = null }, Employees = employees } }); }