public async Task UpsertEmployeeIterationRating(bool isManagerRequested, EmployeeRatingRequestModel employeeRatingRequestModel)
        {
            var iterationRating = await _context.EmployeeIterationRatings.Where(x => x.Id == employeeRatingRequestModel.IterationRatingId)
                                  .SingleOrDefaultAsync();

            if (null != iterationRating)
            {
                if (isManagerRequested)
                {
                    iterationRating.ManagerRatingId = employeeRatingRequestModel.ManagerRatingId.Value;
                    iterationRating.MAnagerComments = employeeRatingRequestModel.ManagerComments;
                }
                else
                {
                    iterationRating.EmployeeRatingId = employeeRatingRequestModel.EmployeeRatingId;
                    iterationRating.EmployeeComment  = employeeRatingRequestModel.EmployeeComments;
                }
            }
            else
            {
                iterationRating = new EmployeeIterationRatings()
                {
                    IterationGoalId  = employeeRatingRequestModel.IterationGoalId,
                    EmployeeRatingId = employeeRatingRequestModel.EmployeeRatingId,
                    EmployeeComment  = employeeRatingRequestModel.EmployeeComments,
                    ManagerRatingId  = null,
                    MAnagerComments  = null
                };

                _context.EmployeeIterationRatings.Add(iterationRating);
            }

            await _context.SaveChangesAsync();
        }
コード例 #2
0
        public async Task <IActionResult> SaveEmployeeIterationRating([FromBody] EmployeeRatingRequestModel employeeRatingRequestModel)
        {
            try
            {
                var userId = HttpContext.User.GetUserIdClaim();

                var employee = await _userService.GetUserById(employeeRatingRequestModel.EmployeeId);

                if (null == employee)
                {
                    return(BadRequest(new ApiResponseBadRequestResult()
                    {
                        ErrorMessage = $"User with Id {employeeRatingRequestModel.EmployeeId} does not exists"
                    }));
                }


                bool isManagerRequestedDetails = (userId == employee.ReportingManagerId);
                await _employeeIterationRepository.UpsertEmployeeIterationRating(isManagerRequestedDetails, employeeRatingRequestModel);

                return(Ok(new ApiResponseOKResult()
                {
                    Data = true
                }));
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "Failed to save iteration ratings");
                return(StatusCode((int)HttpStatusCode.InternalServerError, new ApiResponseFailure()
                {
                    ErrorMessage = "Failed to save iteration ratings"
                }));
            }
        }