public static async Task <RenderToStringResult> BuildPrerender(this HttpRequest Request) { var nodeServices = Request.HttpContext.RequestServices.GetRequiredService <INodeServices>(); var hostEnv = Request.HttpContext.RequestServices.GetRequiredService <IHostingEnvironment>(); var applicationBasePath = hostEnv.ContentRootPath; var requestFeature = Request.HttpContext.Features.Get <IHttpRequestFeature>(); var unencodedPathAndQuery = requestFeature.RawTarget; var unencodedAbsoluteUrl = $"{Request.Scheme}://{Request.Host}{unencodedPathAndQuery}"; var transferData = new TransferData { request = Request.AbstractRequestInfo(), thisCameFromDotNET = "Some data sent from the server" }; var cancelSource = new System.Threading.CancellationTokenSource(); var cancelToken = cancelSource.Token; return(await Prerenderer.RenderToString( "/", nodeServices, cancelToken, new JavaScriptModuleExport(applicationBasePath + "/ClientApp/dist/main-server"), unencodedAbsoluteUrl, unencodedPathAndQuery, transferData, 30000, Request.PathBase.ToString() )); }
public static async Task <RenderToStringResult> BuildPrerender(this HttpRequest request) { var nodeServices = request.HttpContext.RequestServices.GetRequiredService <INodeServices>(); var hostEnv = request.HttpContext.RequestServices.GetRequiredService <IHostingEnvironment>(); var applicationBasePath = hostEnv.ContentRootPath; var requestFeature = request.HttpContext.Features.Get <IHttpRequestFeature>(); var unencodedPathAndQuery = requestFeature.RawTarget; var unencodedAbsoluteUrl = $"{request.Scheme}://{request.Host}{unencodedPathAndQuery}"; var transferData = new TransferData(); transferData.request = request.AbstractRequestInfo(); transferData.thisCameFromDotNET = "Hi Angular it's asp.net :)"; CancellationTokenSource cancelSource = new CancellationTokenSource(); CancellationToken cancelToken = cancelSource.Token; return(await Prerenderer.RenderToString( "/", nodeServices, cancelToken, new JavaScriptModuleExport(applicationBasePath + "/App/dist/client-app-server"), unencodedAbsoluteUrl, unencodedPathAndQuery, transferData, // the simplified Request object & any other CustomData 30000, request.PathBase.ToString() )); }
public static async Task <RenderToStringResult> BuildPrerender(this HttpRequest request) => // Prerender / Serialize application (with Universal) await Prerenderer.RenderToString( "/", request.HttpContext.RequestServices.GetRequiredService <INodeServices>(), new System.Threading.CancellationTokenSource().Token, new JavaScriptModuleExport(request.HttpContext.RequestServices.GetRequiredService <IHostingEnvironment>().ContentRootPath + "/wwwroot/dist/main"), $"{request.Scheme}://{request.Host}{request.HttpContext.Features.Get<IHttpRequestFeature>().RawTarget}", request.HttpContext.Features.Get <IHttpRequestFeature>().RawTarget, // ** TransferData concept ** // Here we can pass any Custom Data we want ! // By default we're passing down Cookies, Headers, Host from the Request object here new TransferData { request = request.AbstractRequestInfo(), thisCameFromDotNET = "Hi Angular it's asp.net :)" }, // Our simplified Request object & any other CustommData you want to send! 30000, request.PathBase.ToString() );
public static async Task <RenderToStringResult> BuildPrerender(this HttpRequest Request) { var nodeServices = Request.HttpContext.RequestServices.GetRequiredService <INodeServices>(); var hostEnv = Request.HttpContext.RequestServices.GetRequiredService <IHostingEnvironment>(); var applicationBasePath = hostEnv.ContentRootPath; var requestFeature = Request.HttpContext.Features.Get <IHttpRequestFeature>(); var unencodedPathAndQuery = requestFeature.RawTarget; var unencodedAbsoluteUrl = $"{Request.Scheme}://{Request.Host}{unencodedPathAndQuery}"; // ** TransferData concept ** // Here we can pass any Custom Data we want ! // By default we're passing down Cookies, Headers, Host from the Request object here TransferData transferData = new TransferData(); transferData.request = Request.AbstractRequestInfo(); var cookie = Request.Cookies["SpiskerOAuth2Token"]; transferData.SpiskerOAuth2Token = cookie; // Add more customData here, add it to the TransferData class //Prerender now needs CancellationToken System.Threading.CancellationTokenSource cancelSource = new System.Threading.CancellationTokenSource(); System.Threading.CancellationToken cancelToken = cancelSource.Token; // Prerender / Serialize application (with Universal) return(await _policy.ExecuteAsync(() => Prerenderer.RenderToString( "/", nodeServices, cancelToken, new JavaScriptModuleExport(applicationBasePath + "/ClientApp/dist/main-server"), unencodedAbsoluteUrl, unencodedPathAndQuery, transferData, // Our simplified Request object & any other CustommData you want to send! 30000, Request.PathBase.ToString() ))); }
public static async Task <RenderToStringResult> BuildPrerenderAsync(this HttpRequest target, String entryPoint) { var __NodeServices = target.HttpContext.RequestServices.GetRequiredService <INodeServices>(); var __HostingEnvironment = target.HttpContext.RequestServices.GetRequiredService <IHostingEnvironment>(); var __ApplicationBasePath = __HostingEnvironment.ContentRootPath; var __RequestFeature = target.HttpContext.Features.Get <IHttpRequestFeature>(); var __UnencodedPathAndQuery = __RequestFeature.RawTarget; var __UnencodedAbsoluteUrl = $"{target.Scheme}://{target.Host}{__UnencodedPathAndQuery}"; // ** TransferData concept ** // Here we can pass any Custom Data we want ! // By default we're passing down Cookies, Headers, Host from the Request object here // Add more customData here, add it to the TransferData class var __TransferData = new TransferData { request = target.AbstractRequestInfo(), thisCameFromDotNET = "Hi Angular it's asp.net :)" }; //Prerender now needs CancellationToken var __CancelSource = new System.Threading.CancellationTokenSource(); var __CancellationToken = __CancelSource.Token; // Prerender / Serialize application (with Universal) return(await Prerenderer.RenderToString ( "/", __NodeServices, __CancellationToken, new JavaScriptModuleExport(__ApplicationBasePath + entryPoint), __UnencodedAbsoluteUrl, __UnencodedPathAndQuery, __TransferData, // Our simplified Request object & any other CustommData you want to send! 30000, target.PathBase.ToString() ).ConfigureAwait(false)); }
public static async Task <RenderToStringResult> BuildPrerender(this HttpRequest request) { var nodeServices = request.HttpContext.RequestServices.GetRequiredService <INodeServices>(); var hostEnv = request.HttpContext.RequestServices.GetRequiredService <IHostingEnvironment>(); var applicationBasePath = hostEnv.ContentRootPath; var requestFeature = request.HttpContext.Features.Get <IHttpRequestFeature>(); var unencodedPathAndQuery = requestFeature.RawTarget; var unencodedAbsoluteUrl = $"{request.Scheme}://{request.Host}{unencodedPathAndQuery}"; // ** TransferData concept ** // Here we can pass any Custom Data we want ! // By default we're passing down Cookies, Headers, Host from the Request object here TransferData transferData = new TransferData { request = request.AbstractRequestInfo(), thisCameFromDotNET = "Hi Angular it's asp.net :)" }; // Add more customData here, add it to the TransferData class //Prerender now needs CancellationToken CancellationTokenSource cancelSource = new CancellationTokenSource(); CancellationToken cancelToken = cancelSource.Token; // Prerender / Serialize application (with Universal) return(await Prerenderer.RenderToString( "/", nodeServices, cancelToken, new JavaScriptModuleExport(applicationBasePath + "/CodefictionApp/dist-server/main.bundle"), unencodedAbsoluteUrl, unencodedPathAndQuery, transferData, // Our simplified Request object & any other CustommData you want to send! 30000, request.PathBase.ToString() )); }