From 5fa317f5c4cb38383f8bc920cae759ce937bf63b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borja=20Garc=C3=ADa=20Rodr=C3=ADguez?= Date: Fri, 18 Dec 2020 09:48:28 +0100 Subject: [PATCH] net 5 webapps --- src/Web/WebMVC/Dockerfile | 4 +- src/Web/WebMVC/Program.cs | 120 +++++++++--------- .../WebMVC/Services/ModelDTOs/BasketDTO.cs | 26 ++-- .../WebMVC/Services/ModelDTOs/LocationDTO.cs | 6 +- src/Web/WebMVC/Services/ModelDTOs/OrderDTO.cs | 4 +- .../Services/ModelDTOs/OrderProcessAction.cs | 6 +- src/Web/WebMVC/Startup.cs | 3 - src/Web/WebMVC/ViewModels/Basket.cs | 7 +- src/Web/WebMVC/ViewModels/BasketItem.cs | 23 ++-- src/Web/WebMVC/ViewModels/Campaign.cs | 16 +-- src/Web/WebMVC/ViewModels/CampaignItem.cs | 22 ++-- .../CartViewModels/IndexViewModel.cs | 8 +- src/Web/WebMVC/ViewModels/Catalog.cs | 15 +-- src/Web/WebMVC/ViewModels/CatalogItem.cs | 25 ++-- .../CatalogViewModels/IndexViewModel.cs | 3 - src/Web/WebMVC/ViewModels/Header.cs | 10 +- src/Web/WebMVC/ViewModels/OrderItem.cs | 21 ++- .../ViewModels/Pagination/PaginationInfo.cs | 7 +- src/Web/WebMVC/WebMVC.csproj | 2 +- src/Web/WebSPA/Dockerfile | 4 +- src/Web/WebSPA/Program.cs | 58 ++++----- src/Web/WebSPA/WebSPA.csproj | 2 +- src/Web/WebhookClient/Dockerfile | 4 +- src/Web/WebhookClient/Program.cs | 28 +--- .../WebhookClient/Services/IWebhooksClient.cs | 4 +- src/Web/WebhookClient/WebhookClient.csproj | 2 +- 26 files changed, 184 insertions(+), 246 deletions(-) diff --git a/src/Web/WebMVC/Dockerfile b/src/Web/WebMVC/Dockerfile index a21c9d9a7..84ae88a26 100644 --- a/src/Web/WebMVC/Dockerfile +++ b/src/Web/WebMVC/Dockerfile @@ -1,8 +1,8 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base +FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS base WORKDIR /app EXPOSE 80 -FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build +FROM mcr.microsoft.com/dotnet/sdk:5.0 AS build WORKDIR /src # It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles diff --git a/src/Web/WebMVC/Program.cs b/src/Web/WebMVC/Program.cs index eb99cd42e..a95578718 100644 --- a/src/Web/WebMVC/Program.cs +++ b/src/Web/WebMVC/Program.cs @@ -1,79 +1,77 @@ using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; +using Microsoft.eShopOnContainers.WebMVC; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Logging; using Serilog; using System; using System.IO; -namespace Microsoft.eShopOnContainers.WebMVC -{ - public class Program - { - public static readonly string Namespace = typeof(Program).Namespace; - public static readonly string AppName = Namespace.Substring(Namespace.LastIndexOf('.', Namespace.LastIndexOf('.') - 1) + 1); +var configuration = GetConfiguration(); - public static int Main(string[] args) - { - var configuration = GetConfiguration(); +Log.Logger = CreateSerilogLogger(configuration); - Log.Logger = CreateSerilogLogger(configuration); +try +{ + Log.Information("Configuring web host ({ApplicationContext})...", Program.AppName); + var host = BuildWebHost(configuration, args); - try - { - Log.Information("Configuring web host ({ApplicationContext})...", AppName); - var host = BuildWebHost(configuration, args); + Log.Information("Starting web host ({ApplicationContext})...", Program.AppName); + host.Run(); - Log.Information("Starting web host ({ApplicationContext})...", AppName); - host.Run(); + return 0; +} +catch (Exception ex) +{ + Log.Fatal(ex, "Program terminated unexpectedly ({ApplicationContext})!", Program.AppName); + return 1; +} +finally +{ + Log.CloseAndFlush(); +} + +IWebHost BuildWebHost(IConfiguration configuration, string[] args) => + WebHost.CreateDefaultBuilder(args) + .CaptureStartupErrors(false) + .ConfigureAppConfiguration(x => x.AddConfiguration(configuration)) + .UseStartup() + .UseSerilog() + .Build(); - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, "Program terminated unexpectedly ({ApplicationContext})!", AppName); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } +Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) +{ + var seqServerUrl = configuration["Serilog:SeqServerUrl"]; + var logstashUrl = configuration["Serilog:LogstashgUrl"]; + var cfg = new LoggerConfiguration() + .ReadFrom.Configuration(configuration) + .Enrich.WithProperty("ApplicationContext", Program.AppName) + .Enrich.FromLogContext() + .WriteTo.Console(); + if (!string.IsNullOrWhiteSpace(seqServerUrl)) + { + cfg.WriteTo.Seq(seqServerUrl); + } + if (!string.IsNullOrWhiteSpace(logstashUrl)) + { + cfg.WriteTo.Http(logstashUrl); + } + return cfg.CreateLogger(); +} - private static IWebHost BuildWebHost(IConfiguration configuration, string[] args) => - WebHost.CreateDefaultBuilder(args) - .CaptureStartupErrors(false) - .ConfigureAppConfiguration(x => x.AddConfiguration(configuration)) - .UseStartup() - .UseSerilog() - .Build(); +IConfiguration GetConfiguration() +{ + var builder = new ConfigurationBuilder() + .SetBasePath(Directory.GetCurrentDirectory()) + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .AddEnvironmentVariables(); - private static Serilog.ILogger CreateSerilogLogger(IConfiguration configuration) - { - var seqServerUrl = configuration["Serilog:SeqServerUrl"]; - var logstashUrl = configuration["Serilog:LogstashgUrl"]; - var cfg = new LoggerConfiguration() - .ReadFrom.Configuration(configuration) - .Enrich.WithProperty("ApplicationContext", AppName) - .Enrich.FromLogContext() - .WriteTo.Console(); - if (!string.IsNullOrWhiteSpace(seqServerUrl)) { - cfg.WriteTo.Seq(seqServerUrl); - } - if (!string.IsNullOrWhiteSpace(logstashUrl)) { - cfg.WriteTo.Http(logstashUrl); - } - return cfg.CreateLogger(); - } + return builder.Build(); +} - private static IConfiguration GetConfiguration() - { - var builder = new ConfigurationBuilder() - .SetBasePath(Directory.GetCurrentDirectory()) - .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) - .AddEnvironmentVariables(); - return builder.Build(); - } - } +public class Program +{ + private static readonly string _namespace = typeof(Startup).Namespace; + public static readonly string AppName = _namespace.Substring(_namespace.LastIndexOf('.', _namespace.LastIndexOf('.') - 1) + 1); } \ No newline at end of file diff --git a/src/Web/WebMVC/Services/ModelDTOs/BasketDTO.cs b/src/Web/WebMVC/Services/ModelDTOs/BasketDTO.cs index 130a729f5..bff5ec10b 100644 --- a/src/Web/WebMVC/Services/ModelDTOs/BasketDTO.cs +++ b/src/Web/WebMVC/Services/ModelDTOs/BasketDTO.cs @@ -3,35 +3,35 @@ using System.ComponentModel.DataAnnotations; namespace WebMVC.Services.ModelDTOs { - public class BasketDTO + public record BasketDTO { [Required] - public string City { get; set; } + public string City { get; init; } [Required] - public string Street { get; set; } + public string Street { get; init; } [Required] - public string State { get; set; } + public string State { get; init; } [Required] - public string Country { get; set; } + public string Country { get; init; } - public string ZipCode { get; set; } + public string ZipCode { get; init; } [Required] - public string CardNumber { get; set; } + public string CardNumber { get; init; } [Required] - public string CardHolderName { get; set; } + public string CardHolderName { get; init; } [Required] - public DateTime CardExpiration { get; set; } + public DateTime CardExpiration { get; init; } [Required] - public string CardSecurityNumber { get; set; } + public string CardSecurityNumber { get; init; } - public int CardTypeId { get; set; } + public int CardTypeId { get; init; } - public string Buyer { get; set; } + public string Buyer { get; init; } [Required] - public Guid RequestId { get; set; } + public Guid RequestId { get; init; } } } diff --git a/src/Web/WebMVC/Services/ModelDTOs/LocationDTO.cs b/src/Web/WebMVC/Services/ModelDTOs/LocationDTO.cs index 0bff03604..626b2b2d3 100644 --- a/src/Web/WebMVC/Services/ModelDTOs/LocationDTO.cs +++ b/src/Web/WebMVC/Services/ModelDTOs/LocationDTO.cs @@ -1,8 +1,8 @@ namespace WebMVC.Services.ModelDTOs { - public class LocationDTO + public record LocationDTO { - public double Longitude { get; set; } - public double Latitude { get; set; } + public double Longitude { get; init; } + public double Latitude { get; init; } } } diff --git a/src/Web/WebMVC/Services/ModelDTOs/OrderDTO.cs b/src/Web/WebMVC/Services/ModelDTOs/OrderDTO.cs index aabfb5b5f..f88cf22f8 100644 --- a/src/Web/WebMVC/Services/ModelDTOs/OrderDTO.cs +++ b/src/Web/WebMVC/Services/ModelDTOs/OrderDTO.cs @@ -2,9 +2,9 @@ namespace WebMVC.Services.ModelDTOs { - public class OrderDTO + public record OrderDTO { [Required] - public string OrderNumber { get; set; } + public string OrderNumber { get; init; } } } \ No newline at end of file diff --git a/src/Web/WebMVC/Services/ModelDTOs/OrderProcessAction.cs b/src/Web/WebMVC/Services/ModelDTOs/OrderProcessAction.cs index 065f53dbc..34e4a2695 100644 --- a/src/Web/WebMVC/Services/ModelDTOs/OrderProcessAction.cs +++ b/src/Web/WebMVC/Services/ModelDTOs/OrderProcessAction.cs @@ -1,9 +1,9 @@ namespace WebMVC.Services.ModelDTOs { - public class OrderProcessAction + public record OrderProcessAction { - public string Code { get; private set; } - public string Name { get; private set; } + public string Code { get; } + public string Name { get; } public static OrderProcessAction Ship = new OrderProcessAction(nameof(Ship).ToLowerInvariant(), "Ship"); diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index e438e9d6c..1f00ece92 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -7,19 +7,16 @@ using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; -using Microsoft.AspNetCore.Mvc; using Microsoft.eShopOnContainers.WebMVC.Services; using Microsoft.eShopOnContainers.WebMVC.ViewModels; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Diagnostics.HealthChecks; using Microsoft.Extensions.Hosting; -using Microsoft.Extensions.Logging; using Microsoft.IdentityModel.Logging; using StackExchange.Redis; using System; using System.IdentityModel.Tokens.Jwt; -using System.Net.Http; using WebMVC.Infrastructure; using WebMVC.Infrastructure.Middlewares; using WebMVC.Services; diff --git a/src/Web/WebMVC/ViewModels/Basket.cs b/src/Web/WebMVC/ViewModels/Basket.cs index b95a910a2..bafb3cbe8 100644 --- a/src/Web/WebMVC/ViewModels/Basket.cs +++ b/src/Web/WebMVC/ViewModels/Basket.cs @@ -1,18 +1,17 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.WebMVC.ViewModels { - public class Basket + public record Basket { // Use property initializer syntax. // While this is often more useful for read only // auto implemented properties, it can simplify logic // for read/write properties. - public List Items { get; set; } = new List(); - public string BuyerId { get; set; } + public List Items { get; init; } = new List(); + public string BuyerId { get; init; } public decimal Total() { diff --git a/src/Web/WebMVC/ViewModels/BasketItem.cs b/src/Web/WebMVC/ViewModels/BasketItem.cs index ab767f8f5..115871f96 100644 --- a/src/Web/WebMVC/ViewModels/BasketItem.cs +++ b/src/Web/WebMVC/ViewModels/BasketItem.cs @@ -1,18 +1,13 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.WebMVC.ViewModels +namespace Microsoft.eShopOnContainers.WebMVC.ViewModels { - public class BasketItem + public record BasketItem { - public string Id { get; set; } - public string ProductId { get; set; } - public string ProductName { get; set; } - public decimal UnitPrice { get; set; } - public decimal OldUnitPrice { get; set; } - public int Quantity { get; set; } - public string PictureUrl { get; set; } + public string Id { get; init; } + public string ProductId { get; init; } + public string ProductName { get; init; } + public decimal UnitPrice { get; init; } + public decimal OldUnitPrice { get; init; } + public int Quantity { get; init; } + public string PictureUrl { get; init; } } } diff --git a/src/Web/WebMVC/ViewModels/Campaign.cs b/src/Web/WebMVC/ViewModels/Campaign.cs index 11841fc3f..eae64c39c 100644 --- a/src/Web/WebMVC/ViewModels/Campaign.cs +++ b/src/Web/WebMVC/ViewModels/Campaign.cs @@ -1,12 +1,12 @@ -namespace Microsoft.eShopOnContainers.WebMVC.ViewModels -{ - using System.Collections.Generic; +using System.Collections.Generic; - public class Campaign +namespace Microsoft.eShopOnContainers.WebMVC.ViewModels +{ + public record Campaign { - public int PageIndex { get; set; } - public int PageSize { get; set; } - public int Count { get; set; } - public List Data { get; set; } + public int PageIndex { get; init; } + public int PageSize { get; init; } + public int Count { get; init; } + public List Data { get; init; } } } \ No newline at end of file diff --git a/src/Web/WebMVC/ViewModels/CampaignItem.cs b/src/Web/WebMVC/ViewModels/CampaignItem.cs index 04e220229..df5639fc2 100644 --- a/src/Web/WebMVC/ViewModels/CampaignItem.cs +++ b/src/Web/WebMVC/ViewModels/CampaignItem.cs @@ -1,20 +1,20 @@ -namespace Microsoft.eShopOnContainers.WebMVC.ViewModels -{ - using System; +using System; - public class CampaignItem +namespace Microsoft.eShopOnContainers.WebMVC.ViewModels +{ + public record CampaignItem { - public int Id { get; set; } + public int Id { get; init; } - public string Name { get; set; } + public string Name { get; init; } - public string Description { get; set; } + public string Description { get; init; } - public DateTime From { get; set; } + public DateTime From { get; init; } - public DateTime To { get; set; } + public DateTime To { get; init; } - public string PictureUri { get; set; } - public string DetailsUri { get; set; } + public string PictureUri { get; init; } + public string DetailsUri { get; init; } } } \ No newline at end of file diff --git a/src/Web/WebMVC/ViewModels/CartViewModels/IndexViewModel.cs b/src/Web/WebMVC/ViewModels/CartViewModels/IndexViewModel.cs index 9a8802542..be7d6dd1f 100644 --- a/src/Web/WebMVC/ViewModels/CartViewModels/IndexViewModel.cs +++ b/src/Web/WebMVC/ViewModels/CartViewModels/IndexViewModel.cs @@ -1,10 +1,4 @@ -using Microsoft.AspNetCore.Mvc.Rendering; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.WebMVC.ViewModels.CartViewModels +namespace Microsoft.eShopOnContainers.WebMVC.ViewModels.CartViewModels { public class CartComponentViewModel { diff --git a/src/Web/WebMVC/ViewModels/Catalog.cs b/src/Web/WebMVC/ViewModels/Catalog.cs index d36968565..60a9cc506 100644 --- a/src/Web/WebMVC/ViewModels/Catalog.cs +++ b/src/Web/WebMVC/ViewModels/Catalog.cs @@ -1,15 +1,12 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; +using System.Collections.Generic; namespace Microsoft.eShopOnContainers.WebMVC.ViewModels { - public class Catalog + public record Catalog { - public int PageIndex { get; set; } - public int PageSize { get; set; } - public int Count { get; set; } - public List Data { get; set; } + public int PageIndex { get; init; } + public int PageSize { get; init; } + public int Count { get; init; } + public List Data { get; init; } } } diff --git a/src/Web/WebMVC/ViewModels/CatalogItem.cs b/src/Web/WebMVC/ViewModels/CatalogItem.cs index c869b7382..7663fdf5c 100644 --- a/src/Web/WebMVC/ViewModels/CatalogItem.cs +++ b/src/Web/WebMVC/ViewModels/CatalogItem.cs @@ -1,18 +1,15 @@ -using System; - -namespace Microsoft.eShopOnContainers.WebMVC.ViewModels +namespace Microsoft.eShopOnContainers.WebMVC.ViewModels { - public class CatalogItem + public record CatalogItem { - public int Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - public decimal Price { get; set; } - public string PictureUri { get; set; } - public int CatalogBrandId { get; set; } - public string CatalogBrand { get; set; } - public int CatalogTypeId { get; set; } - public string CatalogType { get; set; } - + public int Id { get; init; } + public string Name { get; init; } + public string Description { get; init; } + public decimal Price { get; init; } + public string PictureUri { get; init; } + public int CatalogBrandId { get; init; } + public string CatalogBrand { get; init; } + public int CatalogTypeId { get; init; } + public string CatalogType { get; init; } } } \ No newline at end of file diff --git a/src/Web/WebMVC/ViewModels/CatalogViewModels/IndexViewModel.cs b/src/Web/WebMVC/ViewModels/CatalogViewModels/IndexViewModel.cs index ab14b4ee4..8f70b32d9 100644 --- a/src/Web/WebMVC/ViewModels/CatalogViewModels/IndexViewModel.cs +++ b/src/Web/WebMVC/ViewModels/CatalogViewModels/IndexViewModel.cs @@ -1,9 +1,6 @@ using Microsoft.AspNetCore.Mvc.Rendering; using Microsoft.eShopOnContainers.WebMVC.ViewModels.Pagination; -using System; using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; namespace Microsoft.eShopOnContainers.WebMVC.ViewModels.CatalogViewModels { diff --git a/src/Web/WebMVC/ViewModels/Header.cs b/src/Web/WebMVC/ViewModels/Header.cs index 212638fbc..ba1126fad 100644 --- a/src/Web/WebMVC/ViewModels/Header.cs +++ b/src/Web/WebMVC/ViewModels/Header.cs @@ -1,10 +1,8 @@ -using System; - -namespace Microsoft.eShopOnContainers.WebMVC.ViewModels +namespace Microsoft.eShopOnContainers.WebMVC.ViewModels { - public class Header + public record Header { - public string Controller { get; set; } - public string Text { get; set; } + public string Controller { get; init; } + public string Text { get; init; } } } \ No newline at end of file diff --git a/src/Web/WebMVC/ViewModels/OrderItem.cs b/src/Web/WebMVC/ViewModels/OrderItem.cs index 3ba03b96a..c63dcc988 100644 --- a/src/Web/WebMVC/ViewModels/OrderItem.cs +++ b/src/Web/WebMVC/ViewModels/OrderItem.cs @@ -1,22 +1,17 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.WebMVC.ViewModels +namespace Microsoft.eShopOnContainers.WebMVC.ViewModels { - public class OrderItem + public record OrderItem { - public int ProductId { get; set; } + public int ProductId { get; init; } - public string ProductName { get; set; } + public string ProductName { get; init; } - public decimal UnitPrice { get; set; } + public decimal UnitPrice { get; init; } - public decimal Discount { get; set; } + public decimal Discount { get; init; } - public int Units { get; set; } + public int Units { get; init; } - public string PictureUrl { get; set; } + public string PictureUrl { get; init; } } } diff --git a/src/Web/WebMVC/ViewModels/Pagination/PaginationInfo.cs b/src/Web/WebMVC/ViewModels/Pagination/PaginationInfo.cs index 0baf8e961..a10280659 100644 --- a/src/Web/WebMVC/ViewModels/Pagination/PaginationInfo.cs +++ b/src/Web/WebMVC/ViewModels/Pagination/PaginationInfo.cs @@ -1,9 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; - -namespace Microsoft.eShopOnContainers.WebMVC.ViewModels.Pagination +namespace Microsoft.eShopOnContainers.WebMVC.ViewModels.Pagination { public class PaginationInfo { diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj index 16a094ab9..1510eb0c9 100644 --- a/src/Web/WebMVC/WebMVC.csproj +++ b/src/Web/WebMVC/WebMVC.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + net5.0 aspnet-Microsoft.eShopOnContainers-946ae052-8305-4a99-965b-ec8636ddbae3 ..\..\..\docker-compose.dcproj 3.0 diff --git a/src/Web/WebSPA/Dockerfile b/src/Web/WebSPA/Dockerfile index 258675204..6ab6adb97 100644 --- a/src/Web/WebSPA/Dockerfile +++ b/src/Web/WebSPA/Dockerfile @@ -1,5 +1,5 @@ ARG NODE_IMAGE=node:12.0 -FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:5.0 AS base WORKDIR /app EXPOSE 80 @@ -10,7 +10,7 @@ COPY Web/WebSPA/package-lock.json . COPY Web/WebSPA . RUN npm i npm@latest -g && npm update && npm install && npm run build:prod -FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build +FROM mcr.microsoft.com/dotnet/core/5.0 AS build WORKDIR /src # It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles diff --git a/src/Web/WebSPA/Program.cs b/src/Web/WebSPA/Program.cs index d8b138e47..5e329981e 100644 --- a/src/Web/WebSPA/Program.cs +++ b/src/Web/WebSPA/Program.cs @@ -4,38 +4,30 @@ using System.IO; using Microsoft.Extensions.Logging; using Microsoft.Extensions.Configuration; using Serilog; +using eShopConContainers.WebSPA; -namespace eShopConContainers.WebSPA -{ - public class Program - { - public static void Main(string[] args) - { - BuildWebHost(args).Run(); - } +BuildWebHost(args).Run(); - public static IWebHost BuildWebHost(string[] args) => - WebHost.CreateDefaultBuilder(args) - .UseStartup() - .UseContentRoot(Directory.GetCurrentDirectory()) - .ConfigureAppConfiguration((builderContext, config) => - { - config.AddEnvironmentVariables(); - }) - .ConfigureLogging((hostingContext, builder) => - { - builder.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); - builder.AddConsole(); - builder.AddDebug(); - builder.AddAzureWebAppDiagnostics(); - }) - .UseSerilog((builderContext, config) => - { - config - .MinimumLevel.Information() - .Enrich.FromLogContext() - .WriteTo.Console(); - }) - .Build(); - } -} +IWebHost BuildWebHost(string[] args) => + WebHost.CreateDefaultBuilder(args) + .UseStartup() + .UseContentRoot(Directory.GetCurrentDirectory()) + .ConfigureAppConfiguration((builderContext, config) => + { + config.AddEnvironmentVariables(); + }) + .ConfigureLogging((hostingContext, builder) => + { + builder.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); + builder.AddConsole(); + builder.AddDebug(); + builder.AddAzureWebAppDiagnostics(); + }) + .UseSerilog((builderContext, config) => + { + config + .MinimumLevel.Information() + .Enrich.FromLogContext() + .WriteTo.Console(); + }) + .Build(); diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj index ff161ddc3..2e09b7c4f 100644 --- a/src/Web/WebSPA/WebSPA.csproj +++ b/src/Web/WebSPA/WebSPA.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + net5.0 aspnetcorespa-c23d27a4-eb88-4b18-9b77-2a93f3b15119 ..\..\..\docker-compose.dcproj false diff --git a/src/Web/WebhookClient/Dockerfile b/src/Web/WebhookClient/Dockerfile index acfaeb1d4..8f3715ca3 100644 --- a/src/Web/WebhookClient/Dockerfile +++ b/src/Web/WebhookClient/Dockerfile @@ -1,9 +1,9 @@ -FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS base +FROM mcr.microsoft.com/dotnet/core/aspnet:5.0 AS base WORKDIR /app EXPOSE 80 EXPOSE 443 -FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build +FROM mcr.microsoft.com/dotnet/core/sdk:5.0 AS build WORKDIR /src # It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles diff --git a/src/Web/WebhookClient/Program.cs b/src/Web/WebhookClient/Program.cs index ff293ce5a..ffb12b7b2 100644 --- a/src/Web/WebhookClient/Program.cs +++ b/src/Web/WebhookClient/Program.cs @@ -1,24 +1,10 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore; +using Microsoft.AspNetCore; using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.Logging; +using WebhookClient; -namespace WebhookClient -{ - public class Program - { - public static void Main(string[] args) - { - CreateWebHostBuilder(args).Build().Run(); - } +CreateWebHostBuilder(args).Build().Run(); - public static IWebHostBuilder CreateWebHostBuilder(string[] args) => - WebHost.CreateDefaultBuilder(args) - .UseStartup(); - } -} + +IWebHostBuilder CreateWebHostBuilder(string[] args) => + WebHost.CreateDefaultBuilder(args) + .UseStartup(); diff --git a/src/Web/WebhookClient/Services/IWebhooksClient.cs b/src/Web/WebhookClient/Services/IWebhooksClient.cs index 5d14077cc..20238c0a3 100644 --- a/src/Web/WebhookClient/Services/IWebhooksClient.cs +++ b/src/Web/WebhookClient/Services/IWebhooksClient.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; +using System.Collections.Generic; using System.Threading.Tasks; using WebhookClient.Models; diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj index fbb9f7af9..85b3d617e 100644 --- a/src/Web/WebhookClient/WebhookClient.csproj +++ b/src/Web/WebhookClient/WebhookClient.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + net5.0 InProcess Linux 36215d41-f31a-4aa6-9929-bd67d650e7b5