public async Task <IActionResult> AcceptStatusChange([FromBody] AcceptRequest acceptRequest) { try { var userToken = User.FindFirst("sub")?.Value; OperationResult operationResult = await infectionService.AcceptStatusAsync(userToken, acceptRequest); switch (operationResult.Status) { case StatusCodes.Status200OK: logger.LogInformation("Change request is accepted"); return(Ok()); case StatusCodes.Status404NotFound: logger.LogWarning(operationResult.ErrorMessage); return(ActionError(operationResult.Status, new InnerError(ErrorTarget.AcceptStatusCodeNotFound, operationResult.ErrorMessage))); case StatusCodes.Status406NotAcceptable: logger.LogWarning(operationResult.ErrorMessage); return(ActionError(operationResult.Status, new InnerError(ErrorTarget.AcceptStatusCodeExpired, operationResult.ErrorMessage))); } logger.LogError(operationResult.ErrorMessage); return(InternalServerError(new InnerError(ErrorTarget.AcceptStatusFailed, "Unhandled exception."))); } catch (Exception e) { logger.LogError(e, $"Unhandled exception: {e.Message}"); return(InternalServerError(new InnerError(ErrorTarget.AcceptStatusRejected, "Unhandled exception."))); } }