public async Task <IActionResult> ApprovePendingReportingManagerRequests([FromBody] ApproveReportingManagerPendingRequest request) { try { var userId = HttpContext.User.GetUserIdClaim(); var user = await _userManager.FindByIdAsync(userId.ToString()); if (null == user) { return(BadRequest(new ApiResponseBadRequestResult() { ErrorMessage = $"User with Id {userId} does not exists" })); } await _userService.ApprovePendingReportingManagerRequests(request); return(Ok(new ApiResponseOKResult() { StatusCode = StatusCodes.Status200OK, Data = true })); } catch (Exception ex) { _logger.LogError(ex, "Failed to approve reporting manager requests"); return(StatusCode((int)HttpStatusCode.InternalServerError, new ApiResponseFailure() { ErrorMessage = "Failed to approve reporting manager request" })); } }
public async Task ApprovePendingReportingManagerRequests( ApproveReportingManagerPendingRequest request) { var pendingRequest = await _context.ReportingManagerRequests .Where(x => x.RequestStatus == false && x.ReportingManagerRequestId == request.ReportingManagerRequestId) .SingleOrDefaultAsync(); if (null != pendingRequest) { var user = await _userContext.Users.FirstOrDefaultAsync(x => x.Email == request.ReportedUserEmail); if (null != user) { user.ReportingManagerId = request.NewReportingManagerId; pendingRequest.RequestStatus = true; await _userContext.SaveChangesAsync(); await _context.SaveChangesAsync(); } } }