Ejemplo n.º 1
0
        public async Task Execute(CreateLimitOperationRequest request)
        {
            var targetEmployee = (await _authorizationContext.CurrentEmployee())
                                 .ManagedTeam.Employees
                                 .FirstOrDefault(employee => employee.Id == request.EmployeeId);

            if (targetEmployee == null)
            {
                throw new ApplicationException("You can only create limits for your direct subordinates");
            }

            targetEmployee = await _employeeRepository.QuerySingleAsync(employee => employee.Id == request.EmployeeId);

            targetEmployee.Limit = new Domain.Entity.LearningCalendar.Limit
            {
                DaysPerQuarter = request.DaysPerQuarter
            };

            await _employeeRepository.UpdateAsync(targetEmployee);

            var nonAssignedLimits = await _limitRepository.GetNonAssignedLimitsAsync();

            await _limitRepository.DeleteAsync(nonAssignedLimits);
        }