Esempio n. 1
0
        public static T UseHttpApi <T>(this T kernel, StartupOptions startupOptions, HttpProbingSettings httpProbingSettings)
            where T : Kernel
        {
            var initApiCommand = new Command("#!enable-http")
            {
                IsHidden = true,
                Handler  = CommandHandler.Create((KernelInvocationContext context) =>
                {
                    if (context.Command is SubmitCode submitCode)
                    {
                        var probingUrls = httpProbingSettings != null
                            ? httpProbingSettings.AddressList
                            : new[]
                        {
                            new Uri($"http://localhost:{startupOptions.HttpPort}")
                        };
                        var html =
                            HttpApiBootstrapper.GetHtmlInjection(probingUrls, startupOptions.HttpPort?.ToString() ?? Guid.NewGuid().ToString("N"));
                        context.Display(html, "text/html");
                        context.Complete(submitCode);
                    }
                })
            };

            kernel.AddDirective(initApiCommand);

            return(kernel);
        }
Esempio n. 2
0
        public static T UseHttpApi <T>(this T kernel, StartupOptions startupOptions)
            where T : KernelBase
        {
            var initApiCommand = new Command("#!enable-http")
            {
                Handler = CommandHandler.Create((KernelInvocationContext context) =>
                {
                    if (context.Command is SubmitCode submitCode)
                    {
                        var scriptContent =
                            HttpApiBootstrapper.GetJSCode(new Uri($"http://localhost:{startupOptions.HttpPort}"));

                        string value =
                            script[type: "text/javascript"](

                                scriptContent.ToHtmlContent())
                            .ToString();

                        context.Publish(new DisplayedValueProduced(
                                            scriptContent,
                                            context.Command,
                                            formattedValues: new[]
                        {
                            new FormattedValue("text/html",
                                               value)
                        }));

                        context.Complete(submitCode);
                    }
                })
            };

            kernel.AddDirective(initApiCommand);

            return(kernel);
        }