public async Task <IActionResult> IterationInDifferentStateCount([FromBody] IterationInStateCountRequestModel requestModel) { try { var iteration = await _iterationRepository.GetIteration(requestModel.IterationId); if (null == iteration || iteration.Status != (int)Constants.Constants.ITERATION_STATUS.ACTIVE) { return(BadRequest(new ApiResponseBadRequestResult() { ErrorMessage = $"Invalid Iteration." })); } var response = await _reportRepository.GetIterationInDifferentStateCount(requestModel.IterationId); return(Ok(new ApiResponseOKResult() { Data = response })); } catch (Exception ex) { _logger.LogError(ex, "Failed to fetch iteration in different state count"); return(StatusCode((int)HttpStatusCode.InternalServerError, new ApiResponseFailure() { ErrorMessage = "Failed to fetch iteration in different state count" })); } }
public async Task <IActionResult> GetIteration(int iterationId) { try { var iteration = await _iterationRepository.GetIteration(iterationId); if (null == iteration) { return(BadRequest(new ApiResponseBadRequestResult() { ErrorMessage = $"Iteration does not exists" })); } var response = _mapper.Map <IterationReposnseModel>(iteration); return(Ok(new ApiResponseOKResult() { Data = response })); } catch (Exception ex) { _logger.LogError(ex, "Failed to get iteration"); return(StatusCode((int)HttpStatusCode.InternalServerError, new ApiResponseFailure() { ErrorMessage = "Failed to get iteration" })); } }
public async Task <IActionResult> AddIterationGoal([FromBody] EmployeeIterationGoalRequestModel employeeIterationGoalRequestModel) { try { var reportingManagerId = HttpContext.User.GetUserIdClaim(); var user = await _userService.GetUserById(employeeIterationGoalRequestModel.EmployeeId); if (null == user) { return(BadRequest(new ApiResponseBadRequestResult() { ErrorMessage = $"User with Id {employeeIterationGoalRequestModel.EmployeeId} does not exists" })); } if (user.ReportingManagerId != reportingManagerId) { return new JsonResult(new ApiResponseFailure() { ErrorMessage = "Requested User has different reporting manager assigned", StatusCode = (int)StatusCodes.Status403Forbidden }) { StatusCode = StatusCodes.Status403Forbidden } } ; var iteration = await _iterationRepository.GetIteration(employeeIterationGoalRequestModel.IterationId); if (null == iteration || iteration.Status != (int)Constants.Constants.ITERATION_STATUS.ACTIVE) { return(BadRequest(new ApiResponseBadRequestResult() { ErrorMessage = $"Invalid Iteration." })); } var iterationGoal = await _employeeIterationRepository.GetEmployeeIterationGoal(employeeIterationGoalRequestModel.EmployeeId, employeeIterationGoalRequestModel.IterationId, employeeIterationGoalRequestModel.GoalId); if (iterationGoal != null) { return(BadRequest(new ApiResponseBadRequestResult() { ErrorMessage = $"Requested Goal is already set" })); } var model = _mapper.Map <EmployeeIterationGoals>(employeeIterationGoalRequestModel); model.ReportingManagerId = reportingManagerId; await _employeeIterationRepository.AddEmployeeIterationGoal(model); return(Ok(new ApiResponseOKResult() { Data = true })); } catch (Exception ex) { _logger.LogError(ex, "Failed to add iteration goal"); return(StatusCode((int)HttpStatusCode.InternalServerError, new ApiResponseFailure() { ErrorMessage = "Failed to add iteration goal" })); } }