public async Task <IActionResult> CreateLimit(CreateLimitModel model) { var request = new CreateLimitOperationRequest { EmployeeId = model.EmployeeId, DaysPerQuarter = model.DaysPerQuarter }; await _createLimitOperation.Execute(request); return(Ok()); }
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); }