public async Task Execute(CreateGlobalLimitOperationRequest request) { var currentEmployee = await _authorizationContext.CurrentEmployee(); if (!currentEmployee.IsTopLevelManager) { throw new ApplicationException("Cannot create a global limit, as you're not authorized to do so."); } var allEmployees = await _employeeRepository.ListAsync(); var oldLimitsToDelete = await _limitRepository.ListAsync(); var globalLimit = new Domain.Entity.LearningCalendar.Limit { Id = new Guid(), DaysPerQuarter = request.DaysPerQuarter }; await _limitRepository.CreateAsync(globalLimit); foreach (var employee in allEmployees) { employee.LimitId = globalLimit.Id; } await _employeeRepository.UpdateAsync(allEmployees); await _limitRepository.DeleteAsync(oldLimitsToDelete); }
public async Task <IActionResult> CreateGlobalLimit(CreateGlobalLimitModel model) { var request = new CreateGlobalLimitOperationRequest { DaysPerQuarter = model.DaysPerQuarter }; await _createGlobalLimitOperation.Execute(request); return(Ok()); }