public async Task <IActionResult> CreateLimit(CreateLimitModel model)
        {
            var request = new CreateLimitOperationRequest
            {
                EmployeeId     = model.EmployeeId,
                DaysPerQuarter = model.DaysPerQuarter
            };

            await _createLimitOperation.Execute(request);

            return(Ok());
        }
Esempio n. 2
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);
        }