public async Task Execute(AssignGoalToSelfOperationRequest request) { var employee = await _authorizationContext.CurrentEmployee(); var assignGoalRequest = new AssignGoalsToEmployeeOperationRequest { EmployeeId = employee.Id, TopicIds = request.TopicIds }; await _assignGoalToEmployeeOperation.Execute(assignGoalRequest); }
public async Task <IActionResult> CreateEmployeeGoal(CreateEmployeeGoalsModel model) { var request = new AssignGoalsToEmployeeOperationRequest { EmployeeId = model.EmployeeId, TopicIds = model.TopicIds }; try { await _assignGoalToEmployeeOperation.Execute(request); } catch (GoalAlreadyAssignedException e) { return(BadRequest(new ErrorModel(e.Message))); } return(Ok()); }
public async Task Execute(AssignGoalToTeamOperationRequest request) { var team = (await _authorizationContext.CurrentEmployee()) .ManagedTeam; foreach (var employee in team.Employees) { var assignToEmployeeRequest = new AssignGoalsToEmployeeOperationRequest { EmployeeId = employee.Id, TopicIds = request.TopicIds }; try { await _assignGoalToEmployeeOperation.Execute(assignToEmployeeRequest); } catch (ApplicationException) { //swallow } } }
public async Task Execute(AssignGoalsToEmployeeOperationRequest request) { var existingGoals = await _personalGoalRepository .QueryAsync(goal => goal.EmployeeId == request.EmployeeId && request.TopicIds.Contains(goal.TopicId)); var nonCompletedGoal = existingGoals .FirstOrDefault(goal => !goal.CompletionDate.HasValue); if (nonCompletedGoal != null) { throw new GoalAlreadyAssignedException(request.EmployeeId, nonCompletedGoal.TopicId); } var goals = request.TopicIds .Select(topicId => new PersonalGoal { EmployeeId = request.EmployeeId, TopicId = topicId }).ToList(); await _personalGoalRepository.CreateAsync(goals); }