diff --git a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-FSharp.fsproj.in b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-FSharp.fsproj.in index f9390a53f5..0c33c1025c 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-FSharp.fsproj.in +++ b/src/ProjectTemplates/Web.ProjectTemplates/StarterWeb-FSharp.fsproj.in @@ -7,8 +7,8 @@ - + diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/Program.fs b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/Program.fs index 91d8b747cd..78dd7f23b3 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/Program.fs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/Program.fs @@ -12,9 +12,7 @@ open Microsoft.Extensions.Hosting open Microsoft.Extensions.Logging module Program = - let exitCode = 0 - - let CreateHostBuilder args = + let createHostBuilder args = Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(fun webBuilder -> webBuilder.UseStartup() |> ignore @@ -22,6 +20,6 @@ module Program = [] let main args = - CreateHostBuilder(args).Build().Run() + createHostBuilder(args).Build().Run() - exitCode + 0 // Exit code diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/Startup.fs b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/Startup.fs index 80312fb99a..e728d9a8a5 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/Startup.fs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/EmptyWeb-FSharp/Startup.fs @@ -11,16 +11,16 @@ type Startup() = // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940 - member this.ConfigureServices(services: IServiceCollection) = + member _.ConfigureServices(services: IServiceCollection) = () // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - member this.Configure(app: IApplicationBuilder, env: IWebHostEnvironment) = + member _.Configure(app: IApplicationBuilder, env: IWebHostEnvironment) = if env.IsDevelopment() then app.UseDeveloperExceptionPage() |> ignore - app.UseRouting() |> ignore - - app.UseEndpoints(fun endpoints -> - endpoints.MapGet("/", fun context -> context.Response.WriteAsync("Hello World!")) |> ignore + app.UseRouting() + .UseEndpoints(fun endpoints -> + endpoints.MapGet("/", fun context -> + context.Response.WriteAsync("Hello World!")) |> ignore ) |> ignore diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Controllers/HomeController.fs b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Controllers/HomeController.fs index 8f7da1f178..f8f6a47b44 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Controllers/HomeController.fs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Controllers/HomeController.fs @@ -4,9 +4,13 @@ open System open System.Collections.Generic open System.Linq open System.Threading.Tasks +open System.Diagnostics + open Microsoft.AspNetCore.Mvc open Microsoft.Extensions.Logging +open Company.WebApplication1.Models + type HomeController (logger : ILogger) = inherit Controller() @@ -16,5 +20,12 @@ type HomeController (logger : ILogger) = member this.Privacy () = this.View() + [] member this.Error () = - this.View(); + let reqId = + if isNull Activity.Current then + this.HttpContext.TraceIdentifier + else + Activity.Current.Id + + this.View({ RequestId = reqId }) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Models/ErrorViewModel.fs b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Models/ErrorViewModel.fs index b028e7d4e4..e94d4df9a0 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Models/ErrorViewModel.fs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Models/ErrorViewModel.fs @@ -1,8 +1,9 @@ -namespace Company.WebApplication1 +namespace Company.WebApplication1.Models open System -type ErrorViewModel private () = - member val RequestId : string = null with get, set +type ErrorViewModel = + { RequestId: string } - member val ShowRequestId : bool = true with get, set + member this.ShowRequestId = + not (String.IsNullOrEmpty(this.RequestId)) diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Views/Shared/Error.cshtml b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Views/Shared/Error.cshtml index a1e04783c6..06c02f4a38 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Views/Shared/Error.cshtml +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/StarterWeb-FSharp/Views/Shared/Error.cshtml @@ -1,4 +1,5 @@ -@model ErrorViewModel +@using Company.WebApplication1.Models +@model ErrorViewModel @{ ViewData["Title"] = "Error"; } diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/Controllers/WeatherForecastController.fs b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/Controllers/WeatherForecastController.fs index 45c42e8e12..d701ce64f9 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/Controllers/WeatherForecastController.fs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/Controllers/WeatherForecastController.fs @@ -13,10 +13,22 @@ open Company.WebApplication1 type WeatherForecastController (logger : ILogger) = inherit ControllerBase() - let summaries = [| "Freezing"; "Bracing"; "Chilly"; "Cool"; "Mild"; "Warm"; "Balmy"; "Hot"; "Sweltering"; "Scorching" |] + let summaries = + [| + "Freezing" + "Bracing" + "Chilly" + "Cool" + "Mild" + "Warm" + "Balmy" + "Hot" + "Sweltering" + "Scorching" + |] [] - member __.Get() : WeatherForecast[] = + member _.Get() = let rng = System.Random() [| for index in 0..4 -> diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/Startup.fs b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/Startup.fs index 2a0ec457f8..1a44dc3b08 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/Startup.fs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/Startup.fs @@ -14,32 +14,29 @@ open Microsoft.Extensions.Configuration open Microsoft.Extensions.DependencyInjection open Microsoft.Extensions.Hosting -type Startup private () = - new (configuration: IConfiguration) as this = - Startup() then - this.Configuration <- configuration +type Startup(configuration: IConfiguration) = + member _.Configuration = configuration // This method gets called by the runtime. Use this method to add services to the container. - member this.ConfigureServices(services: IServiceCollection) = + member _.ConfigureServices(services: IServiceCollection) = // Add framework services. services.AddControllers() |> ignore // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - member this.Configure(app: IApplicationBuilder, env: IWebHostEnvironment) = + member _.Configure(app: IApplicationBuilder, env: IWebHostEnvironment) = if (env.IsDevelopment()) then app.UseDeveloperExceptionPage() |> ignore #if (!NoHttps) - - app.UseHttpsRedirection() |> ignore -#else - -#endif - app.UseRouting() |> ignore - - app.UseAuthorization() |> ignore - - app.UseEndpoints(fun endpoints -> - endpoints.MapControllers() |> ignore + app.UseHttpsRedirection() + .UseRouting() + .UseAuthorization() + .UseEndpoints(fun endpoints -> + endpoints.MapControllers() |> ignore ) |> ignore - - member val Configuration : IConfiguration = null with get, set +#else + app.UseRouting() + .UseAuthorization() + .UseEndpoints(fun endpoints -> + endpoints.MapControllers() |> ignore + ) |> ignore +#endif diff --git a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/WeatherForecast.fs b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/WeatherForecast.fs index 34e1d8e301..1fbc6e0631 100644 --- a/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/WeatherForecast.fs +++ b/src/ProjectTemplates/Web.ProjectTemplates/content/WebApi-FSharp/WeatherForecast.fs @@ -8,4 +8,4 @@ type WeatherForecast = Summary: string } member this.TemperatureF = - 32 + (int (float this.TemperatureC / 0.5556)) + 32.0 + (float this.TemperatureC / 0.5556)