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()
                       ));
        }
Пример #2
0
        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()
     );
Пример #4
0
        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()
                       ));
        }