Esempio n. 1
0
        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
                }
            });
        }