diff --git a/global.json b/global.json
new file mode 100644
index 000000000..9e26dfeeb
--- /dev/null
+++ b/global.json
@@ -0,0 +1 @@
+{}
\ No newline at end of file
diff --git a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj
index 8f311ab77..c7855f18e 100644
--- a/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj
+++ b/src/ApiGateways/ApiGw-Base/OcelotApiGw.csproj
@@ -2,6 +2,7 @@
$(NetCoreTargetVersion)
+ $(LangVersion)
diff --git a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj
index 87e6c31b3..d8d54643f 100644
--- a/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj
+++ b/src/ApiGateways/Mobile.Bff.Shopping/aggregator/Mobile.Shopping.HttpAggregator.csproj
@@ -6,7 +6,7 @@
Microsoft.eShopOnContainers.Mobile.Shopping.HttpAggregator
..\..\..\docker-compose.dcproj
false
- 8.0
+ $(LangVersion)
diff --git a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj
index b7eb1a019..10d890062 100644
--- a/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj
+++ b/src/ApiGateways/Web.Bff.Shopping/aggregator/Web.Shopping.HttpAggregator.csproj
@@ -6,7 +6,7 @@
Microsoft.eShopOnContainers.Web.Shopping.HttpAggregator
..\..\..\docker-compose.dcproj
false
- 8.0
+ $(LangVersion)
diff --git a/src/Services/Basket/Basket.API/Basket.API.csproj b/src/Services/Basket/Basket.API/Basket.API.csproj
index a28c52524..9c09a08bc 100644
--- a/src/Services/Basket/Basket.API/Basket.API.csproj
+++ b/src/Services/Basket/Basket.API/Basket.API.csproj
@@ -5,7 +5,7 @@
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
..\..\..\..\docker-compose.dcproj
false
- 8.0
+ $(LangVersion)
diff --git a/src/Services/Catalog/Catalog.API/Catalog.API.csproj b/src/Services/Catalog/Catalog.API/Catalog.API.csproj
index 2640185d1..f20ba1c7d 100644
--- a/src/Services/Catalog/Catalog.API/Catalog.API.csproj
+++ b/src/Services/Catalog/Catalog.API/Catalog.API.csproj
@@ -8,7 +8,8 @@
Catalog.API
aspnet-Catalog.API-20161122013618
..\..\..\..\docker-compose.dcproj
- 8.0
+ false
+ $(LangVersion)
diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs
index 85fd3ba42..24d3395b0 100644
--- a/src/Services/Catalog/Catalog.API/Startup.cs
+++ b/src/Services/Catalog/Catalog.API/Startup.cs
@@ -202,14 +202,15 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API
public static IServiceCollection AddCustomDbContext(this IServiceCollection services, IConfiguration configuration)
{
- services.AddDbContext(options =>
+ services.AddEntityFrameworkSqlServer()
+ .AddDbContext(options =>
{
options.UseSqlServer(configuration["ConnectionString"],
sqlServerOptionsAction: sqlOptions =>
{
sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name);
//Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency
- sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
+ sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
});
// Changing default behavior when client evaluation occurs to throw.
@@ -225,7 +226,7 @@ namespace Microsoft.eShopOnContainers.Services.Catalog.API
{
sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name);
//Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency
- sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
+ sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
});
});
diff --git a/src/Services/Identity/Identity.API/Identity.API.csproj b/src/Services/Identity/Identity.API/Identity.API.csproj
index 6301e21e3..1fe8e7ac4 100644
--- a/src/Services/Identity/Identity.API/Identity.API.csproj
+++ b/src/Services/Identity/Identity.API/Identity.API.csproj
@@ -4,6 +4,8 @@
$(NetCoreTargetVersion)
aspnet-eShopOnContainers.Identity-90487118-103c-4ff0-b9da-e5e26f7ab0c5
..\..\..\..\docker-compose.dcproj
+ false
+ $(LangVersion)
diff --git a/src/Services/Identity/Identity.API/Startup.cs b/src/Services/Identity/Identity.API/Startup.cs
index 644124da4..fd8e94c59 100644
--- a/src/Services/Identity/Identity.API/Startup.cs
+++ b/src/Services/Identity/Identity.API/Startup.cs
@@ -7,7 +7,6 @@ using Microsoft.AspNetCore.DataProtection;
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Identity;
-using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.eShopOnContainers.Services.Identity.API.Certificates;
using Microsoft.eShopOnContainers.Services.Identity.API.Data;
@@ -54,9 +53,6 @@ namespace Microsoft.eShopOnContainers.Services.Identity.API
services.Configure(Configuration);
- services.AddMvc()
- .SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
-
if (Configuration.GetValue("IsClusterEnv") == bool.TrueString)
{
services.AddDataProtection(opts =>
diff --git a/src/Services/Location/Locations.API/Locations.API.csproj b/src/Services/Location/Locations.API/Locations.API.csproj
index 653b7b7b5..10b2a6f9b 100644
--- a/src/Services/Location/Locations.API/Locations.API.csproj
+++ b/src/Services/Location/Locations.API/Locations.API.csproj
@@ -4,6 +4,7 @@
$(NetCoreTargetVersion)
..\..\..\..\docker-compose.dcproj
aspnet-Locations.API-20161122013619
+ false
$(LangVersion)
diff --git a/src/Services/Marketing/Marketing.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs b/src/Services/Marketing/Marketing.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs
index 3f19140bf..d013597d9 100644
--- a/src/Services/Marketing/Marketing.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs
+++ b/src/Services/Marketing/Marketing.API/Infrastructure/Filters/AuthorizeCheckOperationFilter.cs
@@ -1,5 +1,5 @@
using Microsoft.AspNetCore.Authorization;
-using Swashbuckle.AspNetCore.Swagger;
+using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
using System.Collections.Generic;
using System.Linq;
@@ -8,7 +8,7 @@ namespace Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure.Filt
{
public class AuthorizeCheckOperationFilter : IOperationFilter
{
- public void Apply(Operation operation, OperationFilterContext context)
+ public void Apply(OpenApiOperation operation, OperationFilterContext context)
{
// Check for authorize attribute
var hasAuthorize = context.MethodInfo.DeclaringType.GetCustomAttributes(true).OfType().Any() ||
@@ -16,16 +16,21 @@ namespace Microsoft.eShopOnContainers.Services.Marketing.API.Infrastructure.Filt
if (!hasAuthorize) return;
- operation.Responses.TryAdd("401", new Response { Description = "Unauthorized" });
- operation.Responses.TryAdd("403", new Response { Description = "Forbidden" });
+ operation.Responses.TryAdd("401", new OpenApiResponse { Description = "Unauthorized" });
+ operation.Responses.TryAdd("403", new OpenApiResponse { Description = "Forbidden" });
- operation.Security = new List>>
+ var oAuthScheme = new OpenApiSecurityScheme
{
- new Dictionary>
- {
- { "oauth2", new [] { "marketingapi" } }
- }
+ Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "oauth2" }
};
+
+ operation.Security = new List
+ {
+ new OpenApiSecurityRequirement
+ {
+ [ oAuthScheme ] = new [] { "marketingapi" }
+ }
+ };
}
}
}
\ No newline at end of file
diff --git a/src/Services/Marketing/Marketing.API/Marketing.API.csproj b/src/Services/Marketing/Marketing.API/Marketing.API.csproj
index 8eb50e2a3..e07d4e444 100644
--- a/src/Services/Marketing/Marketing.API/Marketing.API.csproj
+++ b/src/Services/Marketing/Marketing.API/Marketing.API.csproj
@@ -5,11 +5,12 @@
..\..\..\..\docker-compose.dcproj
Microsoft.eShopOnContainers.Services.Marketing.API
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
aspnet-Marketing.API-20161122013619
/subscriptions/6c22bb55-0221-4ce4-9bf1-3c4a10a7294c/resourcegroups/eshop-log/providers/microsoft.insights/components/eshopappinsights
/subscriptions/6c22bb55-0221-4ce4-9bf1-3c4a10a7294c/resourcegroups/eshop-log/providers/microsoft.insights/components/eshopappinsights
- 8.0
+ $(LangVersion)
diff --git a/src/Services/Marketing/Marketing.API/Startup.cs b/src/Services/Marketing/Marketing.API/Startup.cs
index 289a9c351..533827ae2 100644
--- a/src/Services/Marketing/Marketing.API/Startup.cs
+++ b/src/Services/Marketing/Marketing.API/Startup.cs
@@ -62,14 +62,15 @@
ConfigureAuthService(services);
- services.AddDbContext(options =>
+ services.AddEntityFrameworkSqlServer()
+ .AddDbContext(options =>
{
options.UseSqlServer(Configuration["ConnectionString"],
sqlServerOptionsAction: sqlOptions =>
{
sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name);
//Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency
- sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
+ sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
});
// Changing default behavior when client evaluation occurs to throw.
diff --git a/src/Services/Ordering/Ordering.API/Ordering.API.csproj b/src/Services/Ordering/Ordering.API/Ordering.API.csproj
index ea2ac2d77..bb038d2e5 100644
--- a/src/Services/Ordering/Ordering.API/Ordering.API.csproj
+++ b/src/Services/Ordering/Ordering.API/Ordering.API.csproj
@@ -5,7 +5,8 @@
aspnet-Ordering.API-20161122013547
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
..\..\..\..\docker-compose.dcproj
- 8.0
+ false
+ $(LangVersion)
diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs
index de9a88af1..ddd53489a 100644
--- a/src/Services/Ordering/Ordering.API/Startup.cs
+++ b/src/Services/Ordering/Ordering.API/Startup.cs
@@ -13,7 +13,6 @@
using Infrastructure.Services;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Diagnostics.HealthChecks;
- using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.ServiceBus;
using Microsoft.EntityFrameworkCore;
@@ -82,17 +81,6 @@
app.UseCors("CorsPolicy");
- app.UseHealthChecks("/liveness", new HealthCheckOptions
- {
- Predicate = r => r.Name.Contains("self")
- });
-
- app.UseHealthChecks("/hc", new HealthCheckOptions()
- {
- Predicate = _ => true,
- ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
- });
-
ConfigureAuth(app);
app.UseRouting();
@@ -221,7 +209,7 @@
sqlServerOptionsAction: sqlOptions =>
{
sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name);
- sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
+ sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
});
},
ServiceLifetime.Scoped //Showing explicitly that the DbContext is shared across the HTTP request scope (graph of objects started in the HTTP request)
@@ -234,7 +222,7 @@
{
sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name);
//Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency
- sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
+ sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
});
});
diff --git a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj
index 5681288a8..ab193ddb9 100644
--- a/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj
+++ b/src/Services/Ordering/Ordering.BackgroundTasks/Ordering.BackgroundTasks.csproj
@@ -4,6 +4,8 @@
$(NetCoreTargetVersion)
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
..\..\..\..\docker-compose.dcproj
+ false
+ $(LangVersion)
diff --git a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj
index e4084087f..93bed4711 100644
--- a/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj
+++ b/src/Services/Ordering/Ordering.SignalrHub/Ordering.SignalrHub.csproj
@@ -4,7 +4,7 @@
$(NetCoreTargetVersion)
..\..\..\..\docker-compose.dcproj
false
- 8.0
+ $(LangVersion)
diff --git a/src/Services/Payment/Payment.API/Payment.API.csproj b/src/Services/Payment/Payment.API/Payment.API.csproj
index df0f93690..341dfd383 100644
--- a/src/Services/Payment/Payment.API/Payment.API.csproj
+++ b/src/Services/Payment/Payment.API/Payment.API.csproj
@@ -4,6 +4,7 @@
$(NetCoreTargetVersion)
..\..\..\..\docker-compose.dcproj
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
+ false
$(LangVersion)
diff --git a/src/Services/Webhooks/Webhooks.API/Startup.cs b/src/Services/Webhooks/Webhooks.API/Startup.cs
index dfeb36a79..c7f896b0b 100644
--- a/src/Services/Webhooks/Webhooks.API/Startup.cs
+++ b/src/Services/Webhooks/Webhooks.API/Startup.cs
@@ -164,14 +164,15 @@ namespace Webhooks.API
public static IServiceCollection AddCustomDbContext(this IServiceCollection services, IConfiguration configuration)
{
- services.AddDbContext(options =>
+ services.AddEntityFrameworkSqlServer()
+ .AddDbContext(options =>
{
options.UseSqlServer(configuration["ConnectionString"],
sqlServerOptionsAction: sqlOptions =>
{
sqlOptions.MigrationsAssembly(typeof(Startup).GetTypeInfo().Assembly.GetName().Name);
//Configuring Connection Resiliency: https://docs.microsoft.com/en-us/ef/core/miscellaneous/connection-resiliency
- sqlOptions.EnableRetryOnFailure(maxRetryCount: 10, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
+ sqlOptions.EnableRetryOnFailure(maxRetryCount: 15, maxRetryDelay: TimeSpan.FromSeconds(30), errorNumbersToAdd: null);
});
// Changing default behavior when client evaluation occurs to throw.
diff --git a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj
index 9ff40e01b..ed474e741 100644
--- a/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj
+++ b/src/Services/Webhooks/Webhooks.API/Webhooks.API.csproj
@@ -6,7 +6,7 @@
Linux
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
false
- 8.0
+ $(LangVersion)
diff --git a/src/Web/WebMVC/WebMVC.csproj b/src/Web/WebMVC/WebMVC.csproj
index adfc5587e..25fc670fd 100644
--- a/src/Web/WebMVC/WebMVC.csproj
+++ b/src/Web/WebMVC/WebMVC.csproj
@@ -6,7 +6,7 @@
..\..\..\docker-compose.dcproj
3.0
false
- 8.0
+ $(LangVersion)
diff --git a/src/Web/WebSPA/WebSPA.csproj b/src/Web/WebSPA/WebSPA.csproj
index c2682716f..f219dc5aa 100644
--- a/src/Web/WebSPA/WebSPA.csproj
+++ b/src/Web/WebSPA/WebSPA.csproj
@@ -9,7 +9,7 @@
wwwroot/dist/**
$(DefaultItemExcludes);$(GeneratedItemPatterns)
2.9
- 8.0
+ $(LangVersion)
diff --git a/src/Web/WebStatus/Startup.cs b/src/Web/WebStatus/Startup.cs
index 17f42de5c..eeabd0912 100644
--- a/src/Web/WebStatus/Startup.cs
+++ b/src/Web/WebStatus/Startup.cs
@@ -28,7 +28,6 @@ namespace WebStatus
.AddCheck("self", () => HealthCheckResult.Healthy());
services.AddHealthChecksUI();
-
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
}
@@ -65,7 +64,7 @@ namespace WebStatus
app.UseStaticFiles();
app.UseHttpsRedirection();
-
+ app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
diff --git a/src/Web/WebStatus/WebStatus.csproj b/src/Web/WebStatus/WebStatus.csproj
index 43462a55e..28f4bce18 100644
--- a/src/Web/WebStatus/WebStatus.csproj
+++ b/src/Web/WebStatus/WebStatus.csproj
@@ -3,7 +3,7 @@
$(NetCoreTargetVersion)
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
..\..\..\docker-compose.dcproj
- 8.0
+ $(LangVersion)
diff --git a/src/Web/WebhookClient/WebhookClient.csproj b/src/Web/WebhookClient/WebhookClient.csproj
index f9d46a63a..22cb5afe2 100644
--- a/src/Web/WebhookClient/WebhookClient.csproj
+++ b/src/Web/WebhookClient/WebhookClient.csproj
@@ -7,7 +7,7 @@
36215d41-f31a-4aa6-9929-bd67d650e7b5
$(AssetTargetFallback);portable-net45+win8+wp8+wpa81;
false
- 8.0
+ $(LangVersion)