private void setLogResponse(IActionResult actionResult, TraceInfoBuilder traceInfoBuilder) { if (actionResult is AntiforgeryValidationFailedResult antiforgeryValidationFailedResult) { traceInfoBuilder.Response(antiforgeryValidationFailedResult?.ToJson()).StatusCode(antiforgeryValidationFailedResult.StatusCode); } else if (actionResult is ContentResult contentResult) { traceInfoBuilder.Response(contentResult?.Content).StatusCode(contentResult.StatusCode ?? 200); } else if (actionResult is JsonResult jsonResult) { traceInfoBuilder.Response(jsonResult?.Value?.ToJson()).StatusCode(jsonResult.StatusCode ?? 200); } else if (actionResult is ObjectResult objectResult) { traceInfoBuilder.Response(objectResult?.Value?.ToJson()).StatusCode(objectResult.StatusCode ?? 200); } else if (actionResult is PartialViewResult partialViewResult) { traceInfoBuilder.Response(partialViewResult?.ToJson()).StatusCode(partialViewResult.StatusCode ?? 200); } else if (actionResult is RedirectResult redirectResult) { traceInfoBuilder.Response(redirectResult?.ToJson()).StatusCode((int)HttpStatusCode.Redirect); } else if (actionResult is RedirectToActionResult redirectToActionResult) { traceInfoBuilder.Response(redirectToActionResult?.ToJson()).StatusCode((int)HttpStatusCode.RedirectMethod); } else if (actionResult is RedirectToPageResult redirectToPageResult) { traceInfoBuilder.Response(redirectToPageResult?.ToJson()).StatusCode((int)HttpStatusCode.Redirect); } else if (actionResult is RedirectToRouteResult redirectToRouteResult) { traceInfoBuilder.Response(redirectToRouteResult?.ToJson()).StatusCode((int)HttpStatusCode.RedirectMethod); } else if (actionResult is StatusCodeResult statusCodeResult) { traceInfoBuilder.Response(statusCodeResult?.ToJson()).StatusCode(statusCodeResult.StatusCode); } else if (actionResult is ViewComponentResult viewComponentResult) { traceInfoBuilder.Response(viewComponentResult?.ToJson()).StatusCode(viewComponentResult.StatusCode ?? 200); } else if (actionResult is ViewResult viewResult) { traceInfoBuilder.Response(viewResult?.ToJson()).StatusCode(viewResult.StatusCode ?? 200); } else { var property = actionResult.GetType().GetProperty(HttpConstant.StatusCode); int statuscode = 200; if (property != null) { var code = property.GetValue(actionResult); if (code != null) { if (int.TryParse(code.ToString(), out statuscode)) { traceInfoBuilder.StatusCode(statuscode); } } } traceInfoBuilder.Response(actionResult?.ToJson()).StatusCode(statuscode); } }