Example #1
0
        public void Configure(
            IApplicationBuilder app,
            IHostApplicationLifetime lifetime,
            IBrowserLauncher browserLauncher,
            IDirectoryAccessor directoryAccessor,
            PackageRegistry packageRegistry)
        {
            using (var operation = Log.OnEnterAndConfirmOnExit())
            {
                lifetime.ApplicationStopping.Register(() => _disposables.Dispose());

                ConfigureForOrchestratorProxy(app);

                // Serve Blazor on the /LocalCodeRunner/blazor-console prefix
                app.Map("/LocalCodeRunner/blazor-console", blazor =>
                {
                    blazor.UseClientSideBlazorFiles <MLS.Blazor.Startup>();

                    blazor.UseRouting();

                    blazor.UseEndpoints(endpoints =>
                    {
                        endpoints.MapFallbackToClientSideBlazor <MLS.Blazor.Startup>("index.html");
                    });
                });


                var budget = new Budget();
                _disposables.Add(() => budget.Cancel());
                BlazorPackageConfiguration.Configure(app, app.ApplicationServices, packageRegistry, budget, !StartupOptions.IsLanguageService);

                app.UseMvc()
                .UseDefaultFiles()
                .UseStaticFilesFromToolLocationAndRootDirectory(directoryAccessor.GetFullyQualifiedRoot());

                operation.Succeed();

                if (StartupOptions.Mode == StartupMode.Try && !StartupOptions.IsJupyter)
                {
                    var uri = new Uri(app.ServerFeatures.Get <IServerAddressesFeature>().Addresses.First());
                    Clock.Current
                    .Schedule(_ => LaunchBrowser(browserLauncher, directoryAccessor, uri), TimeSpan.FromSeconds(1));
                }
            }
        }
Example #2
0
        public void Configure(
            IApplicationBuilder app,
            IApplicationLifetime lifetime,
            IBrowserLauncher browserLauncher,
            IDirectoryAccessor directoryAccessor,
            PackageRegistry packageRegistry)
        {
            using (var operation = Log.OnEnterAndConfirmOnExit())
            {
                lifetime.ApplicationStopping.Register(() => _disposables.Dispose());

                ConfigureForOrchestratorProxy(app);

                app.Map("/LocalCodeRunner/blazor-console", builder =>
                {
                    builder.UsePathBase("/LocalCodeRunner/blazor-console/");
                    builder.EnableCachingBlazorContent();
                    builder.UseBlazor <MLS.Blazor.Program>();
                });

                app.Map("/LocalCodeRunner/humanizer.api", builder =>
                {
                    builder.UsePathBase("/LocalCodeRunner/humanizer/");
                    builder.EnableCachingBlazorContent();
                    builder.UseBlazor <MLS.HumanizerRunner.Program>();
                });

                var budget = new Budget();
                _disposables.Add(() => budget.Cancel());
                BlazorPackageConfiguration.Configure(app, app.ApplicationServices, packageRegistry, budget, !StartupOptions.IsLanguageService);

                app.UseDefaultFiles()
                .UseStaticFilesFromToolLocation()
                .UseRouter(new StaticFilesProxyRouter())
                .UseMvc();

                operation.Succeed();

                if (StartupOptions.Mode == StartupMode.Try)
                {
                    Clock.Current
                    .Schedule(_ => LaunchBrowser(browserLauncher, directoryAccessor), TimeSpan.FromSeconds(1));
                }
            }
        }