From 5f4851262f02fa5f6b5f60545a45ab818c11ae3a Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 14 Feb 2019 12:06:48 +0300 Subject: [PATCH 001/112] Use redis cache for data protection --- .../AuthServer.Host/AuthServer.Host.csproj | 9 +++++++++ .../AuthServer.Host/AuthServerHostModule.cs | 6 ++++++ .../BackendAdminApp.Host/BackendAdminApp.Host.csproj | 9 +++++++++ .../BackendAdminAppHostModule.cs | 6 ++++++ .../PublicWebSite.Host/PublicWebSite.Host.csproj | 9 +++++++++ .../PublicWebSite.Host/PublicWebSiteHostModule.cs | 6 ++++++ .../BackendAdminAppGateway.Host.csproj | 9 +++++++++ .../BackendAdminAppGatewayHostModule.cs | 6 ++++++ .../InternalGateway.Host/InternalGateway.Host.csproj | 9 +++++++++ .../InternalGatewayHostModule.cs | 6 ++++++ .../PublicWebSiteGateway.Host.csproj | 9 +++++++++ .../PublicWebSiteGatewayHostModule.cs | 6 ++++++ .../BloggingService.Host/BloggingService.Host.csproj | 9 +++++++++ .../BloggingServiceHostModule.cs | 6 ++++++ .../IdentityService.Host/IdentityService.Host.csproj | 9 +++++++++ .../IdentityServiceHostModule.cs | 6 ++++++ .../ProductService.Host/ProductService.Host.csproj | 12 ++++++++---- .../ProductService.Host/ProductServiceHostModule.cs | 6 ++++++ 18 files changed, 134 insertions(+), 4 deletions(-) diff --git a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServer.Host.csproj b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServer.Host.csproj index 4f10fd61b9..89752802a7 100644 --- a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServer.Host.csproj +++ b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServer.Host.csproj @@ -17,6 +17,7 @@ + @@ -40,4 +41,12 @@ + + + + signed + + + + diff --git a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs index bc0d0b825d..d147a49254 100644 --- a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs +++ b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs @@ -1,6 +1,8 @@ using AuthServer.Host.EntityFrameworkCore; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; +using StackExchange.Redis; using Volo.Abp; using Volo.Abp.Account.Web; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; @@ -67,6 +69,10 @@ namespace AuthServer.Host options.IsEnabledForGetRequests = true; options.ApplicationName = "AuthServer"; }); + + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); + context.Services.AddDataProtection() + .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj index 01bc6634d5..8da540107a 100644 --- a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj +++ b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminApp.Host.csproj @@ -19,6 +19,7 @@ + @@ -42,4 +43,12 @@ + + + + signed + + + + diff --git a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminAppHostModule.cs b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminAppHostModule.cs index 5969d69370..0bb625414a 100644 --- a/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminAppHostModule.cs +++ b/samples/MicroserviceDemo/applications/BackendAdminApp.Host/BackendAdminAppHostModule.cs @@ -1,9 +1,11 @@ using System; using Microsoft.AspNetCore.Authentication.OAuth.Claims; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; using Microsoft.IdentityModel.Protocols.OpenIdConnect; using ProductManagement; +using StackExchange.Redis; using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.AspNetCore.Authentication.OAuth; @@ -83,6 +85,10 @@ namespace BackendAdminApp.Host { options.Configuration = configuration["Redis:Configuration"]; }); + + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); + context.Services.AddDataProtection() + .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSite.Host.csproj b/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSite.Host.csproj index 1585146a68..169b3d9e8d 100644 --- a/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSite.Host.csproj +++ b/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSite.Host.csproj @@ -18,6 +18,7 @@ + @@ -38,4 +39,12 @@ + + + + signed + + + + diff --git a/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSiteHostModule.cs b/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSiteHostModule.cs index 3591fc018d..c4f565dd5d 100644 --- a/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSiteHostModule.cs +++ b/samples/MicroserviceDemo/applications/PublicWebSite.Host/PublicWebSiteHostModule.cs @@ -1,9 +1,11 @@ using System; using Microsoft.AspNetCore.Authentication.OAuth.Claims; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; using Microsoft.IdentityModel.Protocols.OpenIdConnect; using ProductManagement; +using StackExchange.Redis; using Volo.Abp; using Volo.Abp.AspNetCore.Authentication.OAuth; using Volo.Abp.AspNetCore.Mvc.Client; @@ -75,6 +77,10 @@ namespace PublicWebSite.Host { options.Configuration = configuration["Redis:Configuration"]; }); + + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); + context.Services.AddDataProtection() + .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj index 1ec9405f2a..abaca0567b 100644 --- a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj +++ b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGateway.Host.csproj @@ -20,6 +20,7 @@ + @@ -51,4 +52,12 @@ + + + + signed + + + + diff --git a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGatewayHostModule.cs b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGatewayHostModule.cs index ddc484b2da..660419662c 100644 --- a/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGatewayHostModule.cs +++ b/samples/MicroserviceDemo/gateways/BackendAdminAppGateway.Host/BackendAdminAppGatewayHostModule.cs @@ -1,8 +1,10 @@ using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; using Ocelot.DependencyInjection; using Ocelot.Middleware; using ProductManagement; +using StackExchange.Redis; using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.Autofac; @@ -77,6 +79,10 @@ namespace BackendAdminAppGateway.Host { options.Configuration = configuration["Redis:Configuration"]; }); + + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); + context.Services.AddDataProtection() + .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj index 8b56b69df7..0428736a75 100644 --- a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj +++ b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj @@ -20,6 +20,7 @@ + @@ -44,5 +45,13 @@ + + + + signed + + + + diff --git a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGatewayHostModule.cs b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGatewayHostModule.cs index 68c98a26a2..a418aabf79 100644 --- a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGatewayHostModule.cs +++ b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGatewayHostModule.cs @@ -1,8 +1,10 @@ using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; using Ocelot.DependencyInjection; using Ocelot.Middleware; using ProductManagement; +using StackExchange.Redis; using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.Autofac; @@ -64,6 +66,10 @@ namespace InternalGateway.Host { options.Configuration = configuration["Redis:Configuration"]; }); + + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); + context.Services.AddDataProtection() + .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGateway.Host.csproj b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGateway.Host.csproj index 6cddd67e53..cd41412f26 100644 --- a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGateway.Host.csproj +++ b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGateway.Host.csproj @@ -20,6 +20,7 @@ + @@ -44,4 +45,12 @@ + + + + signed + + + + \ No newline at end of file diff --git a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGatewayHostModule.cs b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGatewayHostModule.cs index 36b52cc1e3..88e74045d0 100644 --- a/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGatewayHostModule.cs +++ b/samples/MicroserviceDemo/gateways/PublicWebSiteGateway.Host/PublicWebSiteGatewayHostModule.cs @@ -1,8 +1,10 @@ using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; using Ocelot.DependencyInjection; using Ocelot.Middleware; using ProductManagement; +using StackExchange.Redis; using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.Autofac; @@ -64,6 +66,10 @@ namespace PublicWebSiteGateway.Host { options.Configuration = configuration["Redis:Configuration"]; }); + + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); + context.Services.AddDataProtection() + .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingService.Host.csproj b/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingService.Host.csproj index 10b797c0f4..5d3dc6cddb 100644 --- a/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingService.Host.csproj +++ b/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingService.Host.csproj @@ -19,6 +19,7 @@ + @@ -43,4 +44,12 @@ + + + + signed + + + + diff --git a/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingServiceHostModule.cs b/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingServiceHostModule.cs index 1ae68cfd55..cd4fec848f 100644 --- a/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingServiceHostModule.cs +++ b/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingServiceHostModule.cs @@ -1,7 +1,9 @@ using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; +using StackExchange.Redis; using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.Auditing; @@ -87,6 +89,10 @@ namespace BloggingService.Host options.IsEnabledForGetRequests = true; options.ApplicationName = "BloggingService"; }); + + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); + context.Services.AddDataProtection() + .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityService.Host.csproj b/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityService.Host.csproj index 600dbb96df..4be0500443 100644 --- a/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityService.Host.csproj +++ b/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityService.Host.csproj @@ -19,6 +19,7 @@ + @@ -40,4 +41,12 @@ + + + + signed + + + + diff --git a/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityServiceHostModule.cs b/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityServiceHostModule.cs index 9dd68c9f39..2affd03367 100644 --- a/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityServiceHostModule.cs +++ b/samples/MicroserviceDemo/microservices/IdentityService.Host/IdentityServiceHostModule.cs @@ -1,5 +1,7 @@ using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; +using StackExchange.Redis; using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.Auditing; @@ -78,6 +80,10 @@ namespace IdentityService.Host options.IsEnabledForGetRequests = true; options.ApplicationName = "IdentityService"; }); + + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); + context.Services.AddDataProtection() + .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/samples/MicroserviceDemo/microservices/ProductService.Host/ProductService.Host.csproj b/samples/MicroserviceDemo/microservices/ProductService.Host/ProductService.Host.csproj index cd3d255d3c..2b19692585 100644 --- a/samples/MicroserviceDemo/microservices/ProductService.Host/ProductService.Host.csproj +++ b/samples/MicroserviceDemo/microservices/ProductService.Host/ProductService.Host.csproj @@ -19,6 +19,7 @@ + @@ -40,9 +41,12 @@ - - - - + + + + signed + + + diff --git a/samples/MicroserviceDemo/microservices/ProductService.Host/ProductServiceHostModule.cs b/samples/MicroserviceDemo/microservices/ProductService.Host/ProductServiceHostModule.cs index c09fb4fcc1..6e08ad8e93 100644 --- a/samples/MicroserviceDemo/microservices/ProductService.Host/ProductServiceHostModule.cs +++ b/samples/MicroserviceDemo/microservices/ProductService.Host/ProductServiceHostModule.cs @@ -1,7 +1,9 @@ using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.DataProtection; using Microsoft.Extensions.DependencyInjection; using ProductManagement; using ProductManagement.EntityFrameworkCore; +using StackExchange.Redis; using Swashbuckle.AspNetCore.Swagger; using Volo.Abp; using Volo.Abp.Auditing; @@ -78,6 +80,10 @@ namespace ProductService.Host options.IsEnabledForGetRequests = true; options.ApplicationName = "ProductService"; }); + + var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); + context.Services.AddDataProtection() + .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); } public override void OnApplicationInitialization(ApplicationInitializationContext context) From 0fa18fc37d72ee173b1b20490392279457b75f06 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 14 Feb 2019 12:33:00 +0300 Subject: [PATCH 002/112] Fix EF Core migration --- ...Initial.Designer.cs => 20190214093219_Initial.Designer.cs} | 4 ++-- .../{20190211105121_Initial.cs => 20190214093219_Initial.cs} | 0 .../Migrations/DemoAppDbContextModelSnapshot.cs | 2 +- .../MyCompanyName.MyProjectName.Host.csproj | 4 ---- 4 files changed, 3 insertions(+), 7 deletions(-) rename templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/{20190211105121_Initial.Designer.cs => 20190214093219_Initial.Designer.cs} (98%) rename templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/{20190211105121_Initial.cs => 20190214093219_Initial.cs} (100%) diff --git a/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190211105121_Initial.Designer.cs b/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190214093219_Initial.Designer.cs similarity index 98% rename from templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190211105121_Initial.Designer.cs rename to templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190214093219_Initial.Designer.cs index 61c15431db..ee67505ed5 100644 --- a/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190211105121_Initial.Designer.cs +++ b/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190214093219_Initial.Designer.cs @@ -10,14 +10,14 @@ using MyCompanyName.MyProjectName.Host; namespace MyCompanyName.MyProjectName.Host.Migrations { [DbContext(typeof(DemoAppDbContext))] - [Migration("20190211105121_Initial")] + [Migration("20190214093219_Initial")] partial class Initial { protected override void BuildTargetModel(ModelBuilder modelBuilder) { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.2.1-servicing-10028") + .HasAnnotation("ProductVersion", "2.2.0-rtm-35687") .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); diff --git a/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190211105121_Initial.cs b/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190214093219_Initial.cs similarity index 100% rename from templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190211105121_Initial.cs rename to templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/20190214093219_Initial.cs diff --git a/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/DemoAppDbContextModelSnapshot.cs b/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/DemoAppDbContextModelSnapshot.cs index 5261599df5..ffe92c9c59 100644 --- a/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/DemoAppDbContextModelSnapshot.cs +++ b/templates/service/host/MyCompanyName.MyProjectName.Host/Migrations/DemoAppDbContextModelSnapshot.cs @@ -15,7 +15,7 @@ namespace MyCompanyName.MyProjectName.Host.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.2.1-servicing-10028") + .HasAnnotation("ProductVersion", "2.2.0-rtm-35687") .HasAnnotation("Relational:MaxIdentifierLength", 128) .HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); diff --git a/templates/service/host/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj b/templates/service/host/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj index ca352a43b3..f8b368d460 100644 --- a/templates/service/host/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj +++ b/templates/service/host/MyCompanyName.MyProjectName.Host/MyCompanyName.MyProjectName.Host.csproj @@ -30,8 +30,4 @@ - - - - From 58ff2fd8e8edab7bb7bf9fe6bf28a4a8076aa2b2 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 14 Feb 2019 12:38:47 +0300 Subject: [PATCH 003/112] Remove "Compile Remove" from csproj --- .../MyCompanyName.MyProjectName.DemoApp.csproj | 4 ---- .../MyCompanyName.MyProjectName.EntityFrameworkCore.csproj | 4 ---- 2 files changed, 8 deletions(-) diff --git a/templates/module/app/MyCompanyName.MyProjectName.DemoApp/MyCompanyName.MyProjectName.DemoApp.csproj b/templates/module/app/MyCompanyName.MyProjectName.DemoApp/MyCompanyName.MyProjectName.DemoApp.csproj index 022b7607d2..4e019c6d9b 100644 --- a/templates/module/app/MyCompanyName.MyProjectName.DemoApp/MyCompanyName.MyProjectName.DemoApp.csproj +++ b/templates/module/app/MyCompanyName.MyProjectName.DemoApp/MyCompanyName.MyProjectName.DemoApp.csproj @@ -35,8 +35,4 @@ - - - - diff --git a/templates/mvc/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj b/templates/mvc/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj index f84de6cd67..debec3acbe 100644 --- a/templates/mvc/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj +++ b/templates/mvc/src/MyCompanyName.MyProjectName.EntityFrameworkCore/MyCompanyName.MyProjectName.EntityFrameworkCore.csproj @@ -5,10 +5,6 @@ MyCompanyName.MyProjectName - - - - From acec5170c567eed0b414e9ac7e9c104a92198242 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 14 Feb 2019 14:19:02 +0300 Subject: [PATCH 004/112] Fixed tag helper inputs surpress bug --- .../TagHelpers/Form/AbpInputTagHelperService.cs | 2 +- .../TagHelpers/Form/AbpRadioInputTagHelperService.cs | 2 +- .../TagHelpers/Form/AbpSelectTagHelperService.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs index fa16acbd93..cdf1f30788 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs @@ -392,7 +392,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form protected virtual void AddGroupToFormGroupContents(TagHelperContext context, string propertyName, string html, int order, out bool surpress) { var list = context.GetValue>(FormGroupContents) ?? new List(); - surpress = list != null; + surpress = list == null; if (list != null && !list.Any(igc => igc.HtmlContent.Contains("id=\"" + propertyName.Replace('.', '_') + "\""))) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs index b63155a515..6ec2911714 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpRadioInputTagHelperService.cs @@ -160,7 +160,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form protected virtual void AddGroupToFormGroupContents(TagHelperContext context, string propertyName, string html, int order, out bool surpress) { var list = context.GetValue>(FormGroupContents) ?? new List(); - surpress = list != null; + surpress = list == null; if (list != null && !list.Any(igc => igc.HtmlContent.Contains("id=\"" + propertyName.Replace('.', '_') + "\""))) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs index 58a20f5224..5a095d561c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpSelectTagHelperService.cs @@ -308,7 +308,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form protected virtual void AddGroupToFormGroupContents(TagHelperContext context, string propertyName, string html, int order, out bool surpress) { var list = context.GetValue>(FormGroupContents) ?? new List(); - surpress = list != null; + surpress = list == null; if (list != null && !list.Any(igc => igc.HtmlContent.Contains("id=\"" + propertyName.Replace('.', '_') + "\""))) { From d6ca7dc07432ed99f26a6bb575b2248b64ed5c19 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 15 Feb 2019 10:27:05 +0300 Subject: [PATCH 005/112] Tag helpers: added form-row --- .../TagHelpers/Grid/AbpRowTagHelper.cs | 6 +++++- .../TagHelpers/Grid/AbpRowTagHelperService.cs | 10 +++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelper.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelper.cs index ead3367ac7..8c6a1a1d24 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelper.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelper.cs @@ -1,5 +1,9 @@ -namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid +using Microsoft.AspNetCore.Razor.TagHelpers; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid { + [HtmlTargetElement("abp-row")] + [HtmlTargetElement("abp-form-row")] public class AbpRowTagHelper : AbpTagHelper { public VerticalAlign VAlign { get; set; } = VerticalAlign.Default; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelperService.cs index ecbe5db97e..0dc92f300d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Grid/AbpRowTagHelperService.cs @@ -7,8 +7,16 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Grid { public override void Process(TagHelperContext context, TagHelperOutput output) { + if (output.TagName == "abp-row") + { + output.Attributes.AddClass("row"); + } + if (output.TagName == "abp-form-row") + { + output.Attributes.AddClass("form-row"); + } + output.TagName = "div"; - output.Attributes.AddClass("row"); ProcessVerticalAlign(output); ProcessHorizontalAlign(output); From c4cb7ae36dbcc18332ab7ec805e496a0e4d4daae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 09:54:29 +0100 Subject: [PATCH 006/112] Convert CRLF to LF in bash scripts --- samples/MicroserviceDemo/databases/Dockerfile | 1 + samples/MicroserviceDemo/databases/restore/Dockerfile | 1 + 2 files changed, 2 insertions(+) diff --git a/samples/MicroserviceDemo/databases/Dockerfile b/samples/MicroserviceDemo/databases/Dockerfile index 91879f9e7c..42942cb844 100644 --- a/samples/MicroserviceDemo/databases/Dockerfile +++ b/samples/MicroserviceDemo/databases/Dockerfile @@ -16,6 +16,7 @@ WORKDIR /src COPY --from=build /src/samples/MicroserviceDemo/microservices/ProductService.Host ./ProductService.Host COPY --from=build /src/samples/MicroserviceDemo/applications/AuthServer.Host ./AuthServer.Host COPY --from=build /src/samples/MicroserviceDemo/databases/entrypoint.sh . +RUN sed -i $'s/\r$//' entrypoint.sh RUN chmod +x ./entrypoint.sh ENTRYPOINT ["./entrypoint.sh"] diff --git a/samples/MicroserviceDemo/databases/restore/Dockerfile b/samples/MicroserviceDemo/databases/restore/Dockerfile index 917fc27e1a..0e0b96ac51 100644 --- a/samples/MicroserviceDemo/databases/restore/Dockerfile +++ b/samples/MicroserviceDemo/databases/restore/Dockerfile @@ -10,5 +10,6 @@ WORKDIR /src COPY --from=unzip /src/MsDemo_Identity.bak . COPY --from=unzip /src/MsDemo_ProductManagement.bak . COPY /samples/MicroserviceDemo/databases/restore/entrypoint.sh . +RUN sed -i $'s/\r$//' entrypoint.sh RUN chmod +x ./entrypoint.sh ENTRYPOINT [ "./entrypoint.sh" ] \ No newline at end of file From ca8d1a4223b45c68a4ce2253dc7d314a589dc7bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 10:11:42 +0100 Subject: [PATCH 007/112] Remove some of the external ports --- .../MicroserviceDemo/docker-compose.override.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/samples/MicroserviceDemo/docker-compose.override.yml b/samples/MicroserviceDemo/docker-compose.override.yml index 04efc436ec..14b760568f 100644 --- a/samples/MicroserviceDemo/docker-compose.override.yml +++ b/samples/MicroserviceDemo/docker-compose.override.yml @@ -5,20 +5,20 @@ services: - SA_PASSWORD=yourStrong(!)Password - ACCEPT_EULA=Y ports: - - 1433:1433 + - "1433" mongodb: ports: - - 27017:27017 + - "27017" rabbitmq: ports: - - 15672:15672 - - 5672:5672 + - "15672" + - "5672" redis: ports: - - 6379:6379 + - "6379" elasticsearch: volumes: @@ -26,7 +26,7 @@ services: environment: - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ports: - - 9200:9200 + - "9200" logstash: volumes: @@ -35,8 +35,8 @@ services: environment: - "LS_JAVA_OPTS=-Xmx256m -Xms256m" ports: - - 9600:9600 - - 5000:5000 + - "9600" + - "5000" kibana: volumes: From a0ce0b02f75f4be81ba6bcce135a6656584d24d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 11:02:45 +0100 Subject: [PATCH 008/112] Remove unnecessary queries, override databases if already exists --- .../databases/restore/entrypoint.sh | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/samples/MicroserviceDemo/databases/restore/entrypoint.sh b/samples/MicroserviceDemo/databases/restore/entrypoint.sh index cb34a14ff7..ae5e17bc7c 100644 --- a/samples/MicroserviceDemo/databases/restore/entrypoint.sh +++ b/samples/MicroserviceDemo/databases/restore/entrypoint.sh @@ -10,20 +10,14 @@ until /opt/mssql-tools/bin/sqlcmd -S sqlserver -U SA -P $SA_PASSWORD -Q 'SELECT sleep 1 done -/opt/mssql-tools/bin/sqlcmd -S sqlserver \ - -U SA -P $SA_PASSWORD \ - -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/MsDemo_Identity.bak"' \ - | tr -s ' ' | cut -d ' ' -f 1-2 - -/opt/mssql-tools/bin/sqlcmd -S sqlserver \ - -U SA -P $SA_PASSWORD \ - -Q 'RESTORE FILELISTONLY FROM DISK = "/var/opt/mssql/backup/MsDemo_ProductManagement.bak"' \ - | tr -s ' ' | cut -d ' ' -f 1-2 - /opt/mssql-tools/bin/sqlcmd \ -S sqlserver -U SA -P $SA_PASSWORD \ - -Q 'RESTORE DATABASE MsDemo_Identity FROM DISK = "/var/opt/mssql/backup/MsDemo_Identity.bak" WITH MOVE "MsDemo_Identity" TO "/var/opt/mssql/data/MsDemo_Identity.mdf", MOVE "MsDemo_Identity_log" TO "/var/opt/mssql/data/MsDemo_Identity_log.ldf"' + -Q 'RESTORE DATABASE MsDemo_Identity FROM DISK = "/var/opt/mssql/backup/MsDemo_Identity.bak" WITH REPLACE, + MOVE "MsDemo_Identity" TO "/var/opt/mssql/data/MsDemo_Identity.mdf", + MOVE "MsDemo_Identity_log" TO "/var/opt/mssql/data/MsDemo_Identity_log.ldf"' /opt/mssql-tools/bin/sqlcmd \ -S sqlserver -U SA -P $SA_PASSWORD \ - -Q 'RESTORE DATABASE MsDemo_ProductManagement FROM DISK = "/var/opt/mssql/backup/MsDemo_ProductManagement.bak" WITH MOVE "MsDemo_ProductManagement" TO "/var/opt/mssql/data/MsDemo_ProductManagement.mdf", MOVE "MsDemo_ProductManagement_log" TO "/var/opt/mssql/data/MsDemo_ProductManagement_log.ldf"' + -Q 'RESTORE DATABASE MsDemo_ProductManagement FROM DISK = "/var/opt/mssql/backup/MsDemo_ProductManagement.bak" WITH REPLACE, + MOVE "MsDemo_ProductManagement" TO "/var/opt/mssql/data/MsDemo_ProductManagement.mdf", + MOVE "MsDemo_ProductManagement_log" TO "/var/opt/mssql/data/MsDemo_ProductManagement_log.ldf"' From 39aacfdb3e62d97baf0013924030c5411ea61315 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 15 Feb 2019 13:07:21 +0300 Subject: [PATCH 009/112] Fix product service connection string --- samples/MicroserviceDemo/docker-compose.override.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samples/MicroserviceDemo/docker-compose.override.yml b/samples/MicroserviceDemo/docker-compose.override.yml index 14b760568f..4e0902b061 100644 --- a/samples/MicroserviceDemo/docker-compose.override.yml +++ b/samples/MicroserviceDemo/docker-compose.override.yml @@ -127,7 +127,7 @@ services: - ASPNETCORE_URLS=http://0.0.0.0:80 - AuthServer__Authority=http://auth-server:64999 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - - ConnectionStrings__ProductManagement=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false + - ConnectionStrings__ProductManagement=Server=sqlserver;Database=MsDemo_ProductManagement;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq ports: From 72ba810a7d3a8aeb97173a83d8b6fd853721b8d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 11:40:13 +0100 Subject: [PATCH 010/112] DownstreamHostAndPorts environment variables fixed --- .../docker-compose.override.yml | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/samples/MicroserviceDemo/docker-compose.override.yml b/samples/MicroserviceDemo/docker-compose.override.yml index 4e0902b061..99229661e8 100644 --- a/samples/MicroserviceDemo/docker-compose.override.yml +++ b/samples/MicroserviceDemo/docker-compose.override.yml @@ -52,12 +52,12 @@ services: - AuthServer__Authority=http://auth-server:64999 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - - ReRoutes__0__DownstreamHostAndPorts__Host=identity-service - - ReRoutes__0__DownstreamHostAndPorts__Port=80 - - ReRoutes__1__DownstreamHostAndPorts__Host=product-service - - ReRoutes__1__DownstreamHostAndPorts__Port=80 - - ReRoutes__2__DownstreamHostAndPorts__Host=blogging-service - - ReRoutes__2__DownstreamHostAndPorts__Port=80 + - ReRoutes__0__DownstreamHostAndPorts__0__Host=identity-service + - ReRoutes__0__DownstreamHostAndPorts__0__Port=80 + - ReRoutes__1__DownstreamHostAndPorts__0__Host=product-service + - ReRoutes__1__DownstreamHostAndPorts__0__Port=80 + - ReRoutes__2__DownstreamHostAndPorts__0__Host=blogging-service + - ReRoutes__2__DownstreamHostAndPorts__0__Port=80 - GlobalConfiguration__BaseUrl=http://internal-gateway ports: - 65129:80 @@ -71,10 +71,10 @@ services: - AuthServer__Authority=http://auth-server:64999 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - - ReRoutes__0__DownstreamHostAndPorts__Host=identity-service - - ReRoutes__0__DownstreamHostAndPorts__Port=80 - - ReRoutes__1__DownstreamHostAndPorts__Host=product-service - - ReRoutes__1__DownstreamHostAndPorts__Port=80 + - ReRoutes__0__DownstreamHostAndPorts__0__Host=identity-service + - ReRoutes__0__DownstreamHostAndPorts__0__Port=80 + - ReRoutes__1__DownstreamHostAndPorts__0__Host=product-service + - ReRoutes__1__DownstreamHostAndPorts__0__Port=80 - GlobalConfiguration__BaseUrl=http://backend-admin-app-gateway ports: - 65115:80 @@ -87,10 +87,10 @@ services: - AuthServer__Authority=http://auth-server:64999 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - - ReRoutes__0__DownstreamHostAndPorts__Host=product-service - - ReRoutes__0__DownstreamHostAndPorts__Port=80 - - ReRoutes__1__DownstreamHostAndPorts__Host=blogging-service - - ReRoutes__1__DownstreamHostAndPorts__Port=80 + - ReRoutes__0__DownstreamHostAndPorts__0__Host=product-service + - ReRoutes__0__DownstreamHostAndPorts__0__Port=80 + - ReRoutes__1__DownstreamHostAndPorts__0__Host=blogging-service + - ReRoutes__1__DownstreamHostAndPorts__0__Port=80 - GlobalConfiguration__BaseUrl=http://public-website-gateway ports: - 64897:80 From 9f4ff5cefad2689ea41281c3356657769c83d281 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 15 Feb 2019 14:21:24 +0300 Subject: [PATCH 011/112] Add remote service base url --- samples/MicroserviceDemo/docker-compose.override.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/MicroserviceDemo/docker-compose.override.yml b/samples/MicroserviceDemo/docker-compose.override.yml index 99229661e8..800e3ebd20 100644 --- a/samples/MicroserviceDemo/docker-compose.override.yml +++ b/samples/MicroserviceDemo/docker-compose.override.yml @@ -105,6 +105,7 @@ services: - ConnectionStrings__Blogging=mongodb://mongodb|MsDemo_Blogging - Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq + - RemoteServices__Default__BaseUrl=http://internal-gateway/ ports: - 62157:80 From f6ea4c0eb232656c141c6b3b7b96eaf98a2ef75f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 12:36:46 +0100 Subject: [PATCH 012/112] Removed ConsoleClientDemo Docker --- .../applications/ConsoleClientDemo/Dockerfile | 18 ------------------ .../docker-compose.override.yml | 10 ---------- samples/MicroserviceDemo/docker-compose.yml | 9 --------- 3 files changed, 37 deletions(-) delete mode 100644 samples/MicroserviceDemo/applications/ConsoleClientDemo/Dockerfile diff --git a/samples/MicroserviceDemo/applications/ConsoleClientDemo/Dockerfile b/samples/MicroserviceDemo/applications/ConsoleClientDemo/Dockerfile deleted file mode 100644 index 5822384ef6..0000000000 --- a/samples/MicroserviceDemo/applications/ConsoleClientDemo/Dockerfile +++ /dev/null @@ -1,18 +0,0 @@ -FROM microsoft/dotnet:2.2-aspnetcore-runtime-alpine AS base -WORKDIR /app -EXPOSE 80 - -FROM microsoft/dotnet:2.2-sdk-alpine AS build -WORKDIR /src -COPY . . -WORKDIR "/src/samples/MicroserviceDemo/applications/ConsoleClientDemo" -RUN dotnet restore -nowarn:msb3202,nu1503 -RUN dotnet build --no-restore -c Release -o /app - -FROM build AS publish -RUN dotnet publish --no-restore -c Release -o /app - -FROM base AS final -WORKDIR /app -COPY --from=publish /app . -ENTRYPOINT ["dotnet", "ConsoleClientDemo.dll"] diff --git a/samples/MicroserviceDemo/docker-compose.override.yml b/samples/MicroserviceDemo/docker-compose.override.yml index 800e3ebd20..cc692f5d55 100644 --- a/samples/MicroserviceDemo/docker-compose.override.yml +++ b/samples/MicroserviceDemo/docker-compose.override.yml @@ -156,16 +156,6 @@ services: ports: - 51954:80 - console-client-demo: - environment: - - ElasticSearch__Url=http://elasticsearch:9200 - - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:80 - - RemoteServices__Default__BaseUrl=http://internal-gateway/ - - IdentityClients__Default__Authority=http://auth-server:64999 - ports: - - 63898:80 - public-website: environment: - ElasticSearch__Url=http://elasticsearch:9200 diff --git a/samples/MicroserviceDemo/docker-compose.yml b/samples/MicroserviceDemo/docker-compose.yml index 08c6874366..9a3e4e8191 100644 --- a/samples/MicroserviceDemo/docker-compose.yml +++ b/samples/MicroserviceDemo/docker-compose.yml @@ -117,15 +117,6 @@ services: - elasticsearch - backend-admin-app-gateway - console-client-demo: - image: 'microservice-demo/console-client-demo:${TAG:-latest}' - build: - context: ../../ - dockerfile: samples/MicroserviceDemo/applications/ConsoleClientDemo/Dockerfile - depends_on: - - elasticsearch - - internal-gateway - public-website: image: 'microservice-demo/public-website:${TAG:-latest}' build: From ee71f02a624b978f31de51f074717bba405a3483 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 13:06:40 +0100 Subject: [PATCH 013/112] Ports changed --- .../docker-compose.migrations.yml | 2 +- .../docker-compose.override.yml | 38 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/samples/MicroserviceDemo/docker-compose.migrations.yml b/samples/MicroserviceDemo/docker-compose.migrations.yml index 513c1245aa..16d112e2b7 100644 --- a/samples/MicroserviceDemo/docker-compose.migrations.yml +++ b/samples/MicroserviceDemo/docker-compose.migrations.yml @@ -6,7 +6,7 @@ services: - SA_PASSWORD=yourStrong(!)Password - ACCEPT_EULA=Y ports: - - "1433:1433" + - "1433" migrations: image: 'microservice-demo/migrations:${TAG:-latest}' diff --git a/samples/MicroserviceDemo/docker-compose.override.yml b/samples/MicroserviceDemo/docker-compose.override.yml index cc692f5d55..c0fdaf0bf6 100644 --- a/samples/MicroserviceDemo/docker-compose.override.yml +++ b/samples/MicroserviceDemo/docker-compose.override.yml @@ -42,14 +42,14 @@ services: volumes: - ./elk/kibana/config/:/usr/share/kibana/config:ro ports: - - 5601:5601 + - 51510:5601 internal-gateway: environment: - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - AuthServer__Authority=http://auth-server:64999 + - AuthServer__Authority=http://auth-server:51511 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - ReRoutes__0__DownstreamHostAndPorts__0__Host=identity-service @@ -60,7 +60,7 @@ services: - ReRoutes__2__DownstreamHostAndPorts__0__Port=80 - GlobalConfiguration__BaseUrl=http://internal-gateway ports: - - 65129:80 + - "80" backend-admin-app-gateway: environment: @@ -68,7 +68,7 @@ services: - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - RemoteServices__Default__BaseUrl=http://backend-admin-app-gateway/ - - AuthServer__Authority=http://auth-server:64999 + - AuthServer__Authority=http://auth-server:51511 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - ReRoutes__0__DownstreamHostAndPorts__0__Host=identity-service @@ -77,14 +77,14 @@ services: - ReRoutes__1__DownstreamHostAndPorts__0__Port=80 - GlobalConfiguration__BaseUrl=http://backend-admin-app-gateway ports: - - 65115:80 + - 51531:80 public-website-gateway: environment: - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - AuthServer__Authority=http://auth-server:64999 + - AuthServer__Authority=http://auth-server:51511 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - ReRoutes__0__DownstreamHostAndPorts__0__Host=product-service @@ -93,76 +93,76 @@ services: - ReRoutes__1__DownstreamHostAndPorts__0__Port=80 - GlobalConfiguration__BaseUrl=http://public-website-gateway ports: - - 64897:80 + - 51532:80 blogging-service: environment: - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - AuthServer__Authority=http://auth-server:64999 + - AuthServer__Authority=http://auth-server:51511 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - ConnectionStrings__Blogging=mongodb://mongodb|MsDemo_Blogging - Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq - RemoteServices__Default__BaseUrl=http://internal-gateway/ ports: - - 62157:80 + - 51521:80 identity-service: environment: - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - AuthServer__Authority=http://auth-server:64999 + - AuthServer__Authority=http://auth-server:51511 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq ports: - - 63568:80 + - 51522:80 product-service: environment: - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - AuthServer__Authority=http://auth-server:64999 + - AuthServer__Authority=http://auth-server:51511 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - ConnectionStrings__ProductManagement=Server=sqlserver;Database=MsDemo_ProductManagement;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq ports: - - 60244:80 + - 51523:80 auth-server: environment: - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - - ASPNETCORE_URLS=http://0.0.0.0:64999 + - ASPNETCORE_URLS=http://0.0.0.0:51511 - ConnectionStrings__Default=Server=sqlserver;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true;User=sa;Password=yourStrong(!)Password;Integrated Security=false - Redis__Configuration=redis - RabbitMQ__Connections__Default__HostName=rabbitmq ports: - - 64999:64999 + - 51511:51511 backend-admin-app: environment: - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - AuthServer__Authority=http://auth-server:64999 + - AuthServer__Authority=http://auth-server:51511 - RemoteServices__Default__BaseUrl=http://backend-admin-app-gateway/ - Redis__Configuration=redis ports: - - 51954:80 + - 51512:80 public-website: environment: - ElasticSearch__Url=http://elasticsearch:9200 - ASPNETCORE_ENVIRONMENT=Development - ASPNETCORE_URLS=http://0.0.0.0:80 - - AuthServer__Authority=http://auth-server:64999 + - AuthServer__Authority=http://auth-server:51511 - RemoteServices__Default__BaseUrl=http://public-website-gateway/ - Redis__Configuration=redis ports: - - 53435:80 \ No newline at end of file + - 51513:80 \ No newline at end of file From 0950da15d4deb0d9cfce8ee5ef2c184cd40f82be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 13:13:21 +0100 Subject: [PATCH 014/112] Updated README --- samples/MicroserviceDemo/README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/samples/MicroserviceDemo/README.md b/samples/MicroserviceDemo/README.md index e855adba0f..e543d3141a 100644 --- a/samples/MicroserviceDemo/README.md +++ b/samples/MicroserviceDemo/README.md @@ -21,6 +21,7 @@ Add this line to your `hosts` file ### Accessing the Web User Interfaces -- AuthServer: `http://localhost:64999` -- PublicWebsite: `http://localhost:53435` -- BackendAdminApp: `http://localhost:51954` \ No newline at end of file +- Kibana: `http://localhost:51510` +- AuthServer: `http://localhost:51511` +- BackendAdminApp: `http://localhost:51512` +- PublicWebsite: `http://localhost:51513` \ No newline at end of file From 35f0810dec116eaed0699d1d0303a5351e37f7ae Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 15 Feb 2019 15:56:34 +0300 Subject: [PATCH 015/112] Updated Microservice-Demo, Added how to run section. --- docs/en/Samples/Microservice-Demo.md | 136 +++++++++++++++++- .../images/microservice-sample-solution.png | Bin 0 -> 10730 bytes samples/MicroserviceDemo/README.md | 28 +--- 3 files changed, 136 insertions(+), 28 deletions(-) create mode 100644 docs/en/images/microservice-sample-solution.png diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 747c733683..8313e2b58e 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -19,7 +19,7 @@ This sample aims to demonstrate a simple yet complete microservice solution; * Has a **console application** to show the simplest way of using a service by authenticating. * Uses [Redis](https://redis.io/) for **distributed caching**. * Uses [RabbitMQ](https://www.rabbitmq.com/) for service-to-service **messaging**. -* Uses [Kubernates](https://kubernetes.io/) to **deploy** & run all services and applications. +* Uses docker & [Kubernates](https://kubernetes.io/) to **deploy** & run all services and applications. The diagram below shows the system: @@ -33,7 +33,139 @@ You can get the source code from [the GitHub repository](https://github.com/abpf This sample is still in development, not completed yet. -## Microservices +## How To Run? + +You can either run from the **source code** or from the pre-configured **docker-compose** file. + +### Using the Docker Containers + +#### Pre Requirements + +Running as docker containers is easier since all dependencies are pre-configured. You only need to install the latest docker. For Windows, follow [this URL](https://docs.docker.com/docker-for-windows/install/). + +#### Running Containers + +- Clone or download the [ABP repository](https://github.com/abpframework/abp). + +- Open a command line in the `samples/MicroserviceDemo` folder of the repository. + +- Restore SQL Server databases: + + ``` + docker-compose -f docker-compose.yml -f docker-compose.migrations.yml run restore-database + ``` + +- Start the containers: + + ``` + docker-compose up -d + ``` + + At the first run, it will take a **long time** because it will build all docker images. + +- Add this line to the end of your `hosts` file: + + ``` + 127.0.0.1 auth-server + ``` + + hosts file is located inside the `C:\Windows\System32\Drivers\etc\hosts` folder on Windows and `/etc/hosts` for Linux/MacOS. + +#### Run the Applications + +There are a few applications running in the containers you may want to explore: + +* Backend Admin Application (BackendAdminApp.Host): `http://localhost:51512` + *(Used to manage users & products in the system)* +* Public Web Site (PublicWebsite.Host): `http://localhost:51513` + *(Used to list products and run/manage the blog module)* +* Authentication Server (AuthServer.Host): `http://localhost:51511` + *(Used as a single sign on and authentication server built with IdentityServer4)* +* Kibana UI: `http://localhost:51510` + *(Use to show/trace logs written by all services/applications/gateways)* + +### Running From the Source Code + +#### Pre Requirements + +To be able to run the solution from source code, following tools should be installed and running on your computer: + +* [SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-downloads) 2015+ (can be [express edition](https://www.microsoft.com/en-us/sql-server/sql-server-editions-express)) +* [Redis](https://redis.io/download) 5.0+ +* [RabbitMQ](https://www.rabbitmq.com/install-windows.html) 3.7.11+ +* [MongoDB](https://www.mongodb.com/download-center) 4.0+ +* [ElasticSearch](https://www.elastic.co/downloads/elasticsearch) 6.6+ +* [Kibana](https://www.elastic.co/downloads/kibana) 6.6+ (optional, recommended to show logs) + +#### Open & Build the Visual Studio Solution + +* Open the `samples\MicroserviceDemo\MicroserviceDemo.sln` in Visual Studio 2017 (15.9.0+). +* Run `dotnet restore` from the command line inside the `samples\MicroserviceDemo` folder. +* Build the solution in Visual Studio. + +#### Restore Databases + +Open `MsDemo_Identity.zip` and `MsDemo_ProductManagement.zip` inside the `samples\MicroserviceDemo\databases` folder and restore to the SQL Server. + +> Notice that: These databases have EF Core migrations in the solution, however they don't have seed data, especially required for IdentityServer4 configuration. So, restoring the databases is much more easier. + +#### Run Projects + +Run the projects with the following order (right click to each project, set as startup project an press Ctrl+F5 to run without debug): + +* AuthServer.Host +* IdentityService.Host +* BloggingService.Host +* ProductService.Host +* InternalGateway.Host +* BackendAdminAppGateway.Host +* PublicWebSiteGateway.Host +* BackendAdminApp.Host +* PublicWebSite.Host + +### Running the Docker Containers + +* Clone or download the [ABP repository](https://github.com/abpframework/abp). + +* Open a command line in the `samples/MicroserviceDemo` folder of the repository. + +* Restore databases: + + ```` + docker-compose -f docker-compose.yml -f docker-compose.migrations.yml run restore-database + ```` + +* Start the containers: + + ```` + docker-compose up -d + ```` + + At the first run, it will take a **long time** because it will build all docker images. + +* Add this line to the end of your `hosts` file: + + ```` + 127.0.0.1 auth-server + ```` + + hosts file is located inside the `C:\Windows\System32\Drivers\etc\hosts` folder on Windows and `/etc/hosts` for Linux/MacOS. + +## Exploring the Solution + +The Visual Studio solution consists of multiple projects each have different roles in the system: + +![microservice-sample-solution](../images/microservice-sample-solution.png) + +It has 3 **microservices** with have no UI but exposes REST services: + +* **IdentityService.Host**: Host the ABP Identity module which is used to manage users & roles. It has no additional service, but only hosts the Identity module's API. +* **BloggingService.Host**: Host the ABP Blogging module which is used to manage blog & posts (a typical blog application). It has no additional service, but only hosts the Blogging module's API. +* **ProductService.Host**: Hosts the Product module (that is inside the solution) which is used to manage products. It also contains the EF Core migrations to create/update the Product Management database schema. + +It has 3 **databases**: + +* ... ### Identity Service diff --git a/docs/en/images/microservice-sample-solution.png b/docs/en/images/microservice-sample-solution.png new file mode 100644 index 0000000000000000000000000000000000000000..4c8344ed6877953cbf2021e8906fd5ed3c538493 GIT binary patch literal 10730 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 Date: Fri, 15 Feb 2019 16:02:02 +0300 Subject: [PATCH 016/112] Update README.md --- samples/MicroserviceDemo/README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/MicroserviceDemo/README.md b/samples/MicroserviceDemo/README.md index a1c2de87b7..666776d011 100644 --- a/samples/MicroserviceDemo/README.md +++ b/samples/MicroserviceDemo/README.md @@ -1,3 +1,4 @@ # Microservice Demo Solution -See the [documentation](../../docs/en/Samples/Microservice-Demo.md). \ No newline at end of file +See the [documentation](https://abp.io/documents/abp/latest/Samples/Microservice-Demo). + From 7a27d8ec63407a21e7474ac97dfd08e20a90ca4d Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 15 Feb 2019 16:37:37 +0300 Subject: [PATCH 017/112] Update Microservice-Demo.md --- docs/en/Samples/Microservice-Demo.md | 59 ++++++++++++++-------------- 1 file changed, 30 insertions(+), 29 deletions(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 8313e2b58e..b4dea234e8 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -19,7 +19,8 @@ This sample aims to demonstrate a simple yet complete microservice solution; * Has a **console application** to show the simplest way of using a service by authenticating. * Uses [Redis](https://redis.io/) for **distributed caching**. * Uses [RabbitMQ](https://www.rabbitmq.com/) for service-to-service **messaging**. -* Uses docker & [Kubernates](https://kubernetes.io/) to **deploy** & run all services and applications. +* Uses [docker](https://www.docker.com/) & [Kubernates](https://kubernetes.io/) to **deploy** & run all services and applications. +* Used [Elasticsearch](https://www.elastic.co/products/elasticsearch) & [Kibana](https://www.elastic.co/products/kibana) to store and visualize the logs (written using [Serilog](https://serilog.net/)). The diagram below shows the system: @@ -123,50 +124,50 @@ Run the projects with the following order (right click to each project, set as s * BackendAdminApp.Host * PublicWebSite.Host -### Running the Docker Containers - -* Clone or download the [ABP repository](https://github.com/abpframework/abp). +## Exploring the Solution -* Open a command line in the `samples/MicroserviceDemo` folder of the repository. +The Visual Studio solution consists of multiple projects each have different roles in the system: -* Restore databases: +![microservice-sample-solution](../images/microservice-sample-solution.png) - ```` - docker-compose -f docker-compose.yml -f docker-compose.migrations.yml run restore-database - ```` +#### Microservices -* Start the containers: +Microservices have no UI, but exposes some REST APIs. - ```` - docker-compose up -d - ```` +* **IdentityService.Host**: Host the ABP Identity module which is used to manage users & roles. It has no additional service, but only hosts the Identity module's API. +* **BloggingService.Host**: Host the ABP Blogging module which is used to manage blog & posts (a typical blog application). It has no additional service, but only hosts the Blogging module's API. +* **ProductService.Host**: Hosts the Product module (that is inside the solution) which is used to manage products. It also contains the EF Core migrations to create/update the Product Management database schema. - At the first run, it will take a **long time** because it will build all docker images. +#### Gateways / BFFs (Backend for Frontend) -* Add this line to the end of your `hosts` file: +Gateways are used to provide a single entry point to the applications. It can also used for rate limiting, load balancing... etc. Used the [Ocelot](https://github.com/ThreeMammals/Ocelot) library. - ```` - 127.0.0.1 auth-server - ```` +* **BackendAdminAppGateway.Host**: Used by the BackendAdminApp.Host application as backend. +* **PublicWebSiteGateway.Host**: Used by the PublicWebSite.Host application as backend. +* **InternalGateway.Host**: Used for inter-service communication (the communication between microservices). - hosts file is located inside the `C:\Windows\System32\Drivers\etc\hosts` folder on Windows and `/etc/hosts` for Linux/MacOS. +#### Applications -## Exploring the Solution +These are the actual applications those have user interfaces to interact to the users. -The Visual Studio solution consists of multiple projects each have different roles in the system: +* **AuthServer.Host**: Host the IdentityServer4 to provide an authentication service to other services and applications. It is a single-sign on server and contains the login page. +* **BackendAdminApp.Host**: This is a backend admin application that host UI for Identity and Product management modules. +* **PubicWebSite.Host**: As public web site that contains a simple product list page and blog module UI. +* **ConsoleClientDemo**: A simple console application to demonstrate the usage of services from a C# application. -![microservice-sample-solution](../images/microservice-sample-solution.png) +#### Modules -It has 3 **microservices** with have no UI but exposes REST services: +* **Product**: A layered module that is developed with the [module development best practices](../Best-Practices/Index.md). It can be embedded into a monolithic application or can be hosted as a microservice by separately deploying API and UI (as done in this demo solution). -* **IdentityService.Host**: Host the ABP Identity module which is used to manage users & roles. It has no additional service, but only hosts the Identity module's API. -* **BloggingService.Host**: Host the ABP Blogging module which is used to manage blog & posts (a typical blog application). It has no additional service, but only hosts the Blogging module's API. -* **ProductService.Host**: Hosts the Product module (that is inside the solution) which is used to manage products. It also contains the EF Core migrations to create/update the Product Management database schema. +#### Databases -It has 3 **databases**: +This solution is using multiple databases: -* ... +* **MsDemo_Identity**: An SQL database. Used **SQL Server** by default, but can be any DBMS supported by the EF Core. Shared by AuthServer and IdentityService. Also audit logs, permissions and settings are stored in this database (while they could easily have their own databases, shared the same database to keep it simple). +* **MsDemo_Productmanagement**: An SQL database. Again, used **SQL Server** by default, but can be any DBMS supported by the EF Core. Used by the ProductService as a dedicated database. +* **MsDemo_Blogging**: A **MongoDB** database. Used by the BloggingService. +* **Elasticsearch**: Used to write logs over Serilog. ### Identity Service -... \ No newline at end of file +TODO... \ No newline at end of file From 4e424d45013005a5329decf15babbcd1b7c0fe65 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 15 Feb 2019 16:40:42 +0300 Subject: [PATCH 018/112] Update Microservice-Demo.md --- docs/en/Samples/Microservice-Demo.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index b4dea234e8..5444e22e85 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -19,8 +19,8 @@ This sample aims to demonstrate a simple yet complete microservice solution; * Has a **console application** to show the simplest way of using a service by authenticating. * Uses [Redis](https://redis.io/) for **distributed caching**. * Uses [RabbitMQ](https://www.rabbitmq.com/) for service-to-service **messaging**. -* Uses [docker](https://www.docker.com/) & [Kubernates](https://kubernetes.io/) to **deploy** & run all services and applications. -* Used [Elasticsearch](https://www.elastic.co/products/elasticsearch) & [Kibana](https://www.elastic.co/products/kibana) to store and visualize the logs (written using [Serilog](https://serilog.net/)). +* Uses [Docker](https://www.docker.com/) & [Kubernates](https://kubernetes.io/) to **deploy** & run all services and applications. +* Uses [Elasticsearch](https://www.elastic.co/products/elasticsearch) & [Kibana](https://www.elastic.co/products/kibana) to store and visualize the logs (written using [Serilog](https://serilog.net/)). The diagram below shows the system: From 0775b93e337bb0a98a197d26dad1cfcd88196af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 15:14:23 +0100 Subject: [PATCH 019/112] Fixes RedirectUris when running in Docker --- samples/MicroserviceDemo/databases/restore/entrypoint.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/samples/MicroserviceDemo/databases/restore/entrypoint.sh b/samples/MicroserviceDemo/databases/restore/entrypoint.sh index ae5e17bc7c..91de230f78 100644 --- a/samples/MicroserviceDemo/databases/restore/entrypoint.sh +++ b/samples/MicroserviceDemo/databases/restore/entrypoint.sh @@ -21,3 +21,11 @@ done -Q 'RESTORE DATABASE MsDemo_ProductManagement FROM DISK = "/var/opt/mssql/backup/MsDemo_ProductManagement.bak" WITH REPLACE, MOVE "MsDemo_ProductManagement" TO "/var/opt/mssql/data/MsDemo_ProductManagement.mdf", MOVE "MsDemo_ProductManagement_log" TO "/var/opt/mssql/data/MsDemo_ProductManagement_log.ldf"' + +/opt/mssql-tools/bin/sqlcmd \ + -S sqlserver -U SA -P $SA_PASSWORD \ + -d MsDemo_Identity \ + -Q 'UPDATE IdentityServerClientRedirectUris SET RedirectUri = "http://localhost:51512/signin-oidc" WHERE ClientId = "00265494-2D70-9615-4BD0-39EB2AF3CD33" + UPDATE IdentityServerClientRedirectUris SET RedirectUri = "http://localhost:51513/signin-oidc" WHERE ClientId = "10265494-2D70-9615-4BD0-39EB2AF3CD33" + UPDATE IdentityServerClientPostLogoutRedirectUris SET PostLogoutRedirectUri = "http://localhost:51512/signout-callback-oidc" WHERE ClientId = "00265494-2D70-9615-4BD0-39EB2AF3CD33" + UPDATE IdentityServerClientPostLogoutRedirectUris SET PostLogoutRedirectUri = "http://localhost:51513/signout-callback-oidc" WHERE ClientId = "10265494-2D70-9615-4BD0-39EB2AF3CD33"' \ No newline at end of file From dfaff329cc781b93e93949a07dd4b6262d79ca79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 15:24:27 +0100 Subject: [PATCH 020/112] Updated .dockerignore --- samples/MicroserviceDemo/.dockerignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/samples/MicroserviceDemo/.dockerignore b/samples/MicroserviceDemo/.dockerignore index 3a78c9d4c3..0380893c80 100644 --- a/samples/MicroserviceDemo/.dockerignore +++ b/samples/MicroserviceDemo/.dockerignore @@ -10,4 +10,5 @@ docker-compose* */obj README.md LICENSE -.vscode \ No newline at end of file +.vscode +.vs \ No newline at end of file From a339e47eacdf15b16f6cd1d94fab14fc8cac7c2c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Fri, 15 Feb 2019 15:41:20 +0100 Subject: [PATCH 021/112] Fix CRLF issue --- samples/MicroserviceDemo/databases/Dockerfile | 2 +- samples/MicroserviceDemo/databases/restore/Dockerfile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/samples/MicroserviceDemo/databases/Dockerfile b/samples/MicroserviceDemo/databases/Dockerfile index 42942cb844..dad3238039 100644 --- a/samples/MicroserviceDemo/databases/Dockerfile +++ b/samples/MicroserviceDemo/databases/Dockerfile @@ -16,7 +16,7 @@ WORKDIR /src COPY --from=build /src/samples/MicroserviceDemo/microservices/ProductService.Host ./ProductService.Host COPY --from=build /src/samples/MicroserviceDemo/applications/AuthServer.Host ./AuthServer.Host COPY --from=build /src/samples/MicroserviceDemo/databases/entrypoint.sh . -RUN sed -i $'s/\r$//' entrypoint.sh +RUN /bin/bash -c "sed -i $'s/\r$//' entrypoint.sh" RUN chmod +x ./entrypoint.sh ENTRYPOINT ["./entrypoint.sh"] diff --git a/samples/MicroserviceDemo/databases/restore/Dockerfile b/samples/MicroserviceDemo/databases/restore/Dockerfile index 0e0b96ac51..d0598eed28 100644 --- a/samples/MicroserviceDemo/databases/restore/Dockerfile +++ b/samples/MicroserviceDemo/databases/restore/Dockerfile @@ -10,6 +10,6 @@ WORKDIR /src COPY --from=unzip /src/MsDemo_Identity.bak . COPY --from=unzip /src/MsDemo_ProductManagement.bak . COPY /samples/MicroserviceDemo/databases/restore/entrypoint.sh . -RUN sed -i $'s/\r$//' entrypoint.sh +RUN /bin/bash -c "sed -i $'s/\r$//' entrypoint.sh" RUN chmod +x ./entrypoint.sh ENTRYPOINT [ "./entrypoint.sh" ] \ No newline at end of file From afb5acf15cdc53bbd3ec098c36cb34290a48e9f8 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 15 Feb 2019 20:31:43 +0300 Subject: [PATCH 022/112] Update docker url --- docs/en/Samples/Microservice-Demo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 5444e22e85..675019b1e7 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -42,7 +42,7 @@ You can either run from the **source code** or from the pre-configured **docker- #### Pre Requirements -Running as docker containers is easier since all dependencies are pre-configured. You only need to install the latest docker. For Windows, follow [this URL](https://docs.docker.com/docker-for-windows/install/). +Running as docker containers is easier since all dependencies are pre-configured. You only need to install the [latest docker](https://docs.docker.com/compose/install/). #### Running Containers From 042517d26be0fba5de8f3f0a6fa32f9d9fc02280 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Fri, 15 Feb 2019 20:45:09 +0300 Subject: [PATCH 023/112] Update Microservice-Demo.md --- docs/en/Samples/Microservice-Demo.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 675019b1e7..7bbe9d4609 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -80,7 +80,7 @@ There are a few applications running in the containers you may want to explore: *(Used to manage users & products in the system)* * Public Web Site (PublicWebsite.Host): `http://localhost:51513` *(Used to list products and run/manage the blog module)* -* Authentication Server (AuthServer.Host): `http://localhost:51511` +* Authentication Server (AuthServer.Host): `http://auth-server:51511/` *(Used as a single sign on and authentication server built with IdentityServer4)* * Kibana UI: `http://localhost:51510` *(Use to show/trace logs written by all services/applications/gateways)* From 83de20bb6ca0669599e93eb74f79b7510831a2fb Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Sun, 17 Feb 2019 15:31:17 +0300 Subject: [PATCH 024/112] Added Authentication Server to the Microservice-Demo document --- docs/en/Samples/Microservice-Demo.md | 107 +++++++++++++++--- .../microservice-sample-authserver-home.png | Bin 0 -> 15896 bytes .../microservice-sample-authserver-login.png | Bin 0 -> 12713 bytes 3 files changed, 89 insertions(+), 18 deletions(-) create mode 100644 docs/en/images/microservice-sample-authserver-home.png create mode 100644 docs/en/images/microservice-sample-authserver-login.png diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 7bbe9d4609..514e4c35d6 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -34,7 +34,7 @@ You can get the source code from [the GitHub repository](https://github.com/abpf This sample is still in development, not completed yet. -## How To Run? +## Running the Solution You can either run from the **source code** or from the pre-configured **docker-compose** file. @@ -124,21 +124,22 @@ Run the projects with the following order (right click to each project, set as s * BackendAdminApp.Host * PublicWebSite.Host -## Exploring the Solution +## A Brief Overview of the Solution The Visual Studio solution consists of multiple projects each have different roles in the system: ![microservice-sample-solution](../images/microservice-sample-solution.png) -#### Microservices +### Applications -Microservices have no UI, but exposes some REST APIs. +These are the actual applications those have user interfaces to interact to the users and use the system. -* **IdentityService.Host**: Host the ABP Identity module which is used to manage users & roles. It has no additional service, but only hosts the Identity module's API. -* **BloggingService.Host**: Host the ABP Blogging module which is used to manage blog & posts (a typical blog application). It has no additional service, but only hosts the Blogging module's API. -* **ProductService.Host**: Hosts the Product module (that is inside the solution) which is used to manage products. It also contains the EF Core migrations to create/update the Product Management database schema. +- **AuthServer.Host**: Host the IdentityServer4 to provide an authentication service to other services and applications. It is a single-sign server and contains the login page. +- **BackendAdminApp.Host**: This is a backend admin application that host UI for Identity and Product management modules. +- **PubicWebSite.Host**: As public web site that contains a simple product list page and blog module UI. +- **ConsoleClientDemo**: A simple console application to demonstrate the usage of services from a C# application. -#### Gateways / BFFs (Backend for Frontend) +### Gateways / BFFs (Backend for Frontend) Gateways are used to provide a single entry point to the applications. It can also used for rate limiting, load balancing... etc. Used the [Ocelot](https://github.com/ThreeMammals/Ocelot) library. @@ -146,28 +147,98 @@ Gateways are used to provide a single entry point to the applications. It can al * **PublicWebSiteGateway.Host**: Used by the PublicWebSite.Host application as backend. * **InternalGateway.Host**: Used for inter-service communication (the communication between microservices). -#### Applications +### Microservices -These are the actual applications those have user interfaces to interact to the users. +Microservices have no UI, but exposes some REST APIs. -* **AuthServer.Host**: Host the IdentityServer4 to provide an authentication service to other services and applications. It is a single-sign on server and contains the login page. -* **BackendAdminApp.Host**: This is a backend admin application that host UI for Identity and Product management modules. -* **PubicWebSite.Host**: As public web site that contains a simple product list page and blog module UI. -* **ConsoleClientDemo**: A simple console application to demonstrate the usage of services from a C# application. +- **IdentityService.Host**: Host the ABP Identity module which is used to manage users & roles. It has no additional service, but only hosts the Identity module's API. +- **BloggingService.Host**: Host the ABP Blogging module which is used to manage blog & posts (a typical blog application). It has no additional service, but only hosts the Blogging module's API. +- **ProductService.Host**: Hosts the Product module (that is inside the solution) which is used to manage products. It also contains the EF Core migrations to create/update the Product Management database schema. -#### Modules +### Modules * **Product**: A layered module that is developed with the [module development best practices](../Best-Practices/Index.md). It can be embedded into a monolithic application or can be hosted as a microservice by separately deploying API and UI (as done in this demo solution). -#### Databases +### Databases This solution is using multiple databases: * **MsDemo_Identity**: An SQL database. Used **SQL Server** by default, but can be any DBMS supported by the EF Core. Shared by AuthServer and IdentityService. Also audit logs, permissions and settings are stored in this database (while they could easily have their own databases, shared the same database to keep it simple). -* **MsDemo_Productmanagement**: An SQL database. Again, used **SQL Server** by default, but can be any DBMS supported by the EF Core. Used by the ProductService as a dedicated database. +* **MsDemo_ProductManagement**: An SQL database. Again, used **SQL Server** by default, but can be any DBMS supported by the EF Core. Used by the ProductService as a dedicated database. * **MsDemo_Blogging**: A **MongoDB** database. Used by the BloggingService. * **Elasticsearch**: Used to write logs over Serilog. +## Applications + +### Authentication Server (AuthServer.Host) + +This project is used by all other services and applications for authentication & single sign on. Mainly, uses **IdentityServer4** to provide these services. It uses some of the [pre-build ABP modules](../Modules/Index) like *Identity*, *Audit Logging* and *Permission Management*. + +#### Database & EF Core Configuration + +This application uses a SQL database (named it as **MsDemo_Identity**) and maintains its schema via **Entity Framework Core migrations.** + +It has a DbContext named **AuthServerDbContext** and defined as shown below: + +````csharp +public class AuthServerDbContext : AbpDbContext +{ + public AuthServerDbContext(DbContextOptions options) + : base(options) + { + + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + modelBuilder.ConfigureIdentity(); + modelBuilder.ConfigureIdentityServer(); + modelBuilder.ConfigureAuditLogging(); + modelBuilder.ConfigurePermissionManagement(); + modelBuilder.ConfigureSettingManagement(); + } +} +```` + +In the **OnModelCreating**, you see **ConfigureX()** method calls. A module with a database schema generally declares such an extension method to configure EF Core mappings for its own entities. This is a flexible approach where you can arrange your databases and modules inside them; You can use a different database for each module, or combine some of them in a shared database. In the AuthServer project, we decided to combine multiple module schemas in a single EF Core DbContext, in a single physical database. These modules are Identity, IdentityServer, AuditLogging, PermissionManagement and SettingManagement modules. + +#### User Interface + +AuthServer has a simple home page that shows the current user info if the current user has logged in: + +![microservice-sample-authserver-home](../images/microservice-sample-authserver-home.png) + +It also provides Login & Register pages: + +![microservice-sample-authserver-login](../images/microservice-sample-authserver-login.png) + +These pages are not included in the project itself. Instead, AuthServer project uses the prebuilt ABP [account module](https://github.com/abpframework/abp/tree/master/modules/account) with IdentityServer extension. That means it can also act as an OpenId Connect server with necessary UI and logic. + +#### Other Dependencies + +* **RabbitMQ** for messaging to other services. +* **Redis** for distributed/shared caching. + +### Backend Admin Application (BackendAdminApp.Host) + +TODO + +## Microservices + ### Identity Service -TODO... \ No newline at end of file +TODO + +## Infrastructure + +TODO + +### Messaging + +### Caching + +### Logging + +### Correlation Id \ No newline at end of file diff --git a/docs/en/images/microservice-sample-authserver-home.png b/docs/en/images/microservice-sample-authserver-home.png new file mode 100644 index 0000000000000000000000000000000000000000..7ae62ad6d5e0946480a1eeaa3f3e77eea05fa85f GIT binary patch literal 15896 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�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 L%Lr8q=mq=_z{tee literal 0 HcmV?d00001 diff --git a/docs/en/images/microservice-sample-authserver-login.png b/docs/en/images/microservice-sample-authserver-login.png new file mode 100644 index 0000000000000000000000000000000000000000..f6e8dfaa9f3ce2c3c25a8cca66d669225a49bac6 GIT binary patch literal 12713 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 Date: Sun, 17 Feb 2019 16:51:53 +0300 Subject: [PATCH 025/112] Added Backend Admin Application section --- docs/en/Samples/Microservice-Demo.md | 95 ++++++++++++++++++ ...oservice-sample-backend-ui-permissions.png | Bin 0 -> 40957 bytes .../images/microservice-sample-backend-ui.png | Bin 0 -> 45686 bytes 3 files changed, 95 insertions(+) create mode 100644 docs/en/images/microservice-sample-backend-ui-permissions.png create mode 100644 docs/en/images/microservice-sample-backend-ui.png diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 514e4c35d6..d365a477f5 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -223,6 +223,101 @@ These pages are not included in the project itself. Instead, AuthServer project ### Backend Admin Application (BackendAdminApp.Host) +This is a web application that is used to manage users, roles, permissions and products in the system. + +#### Authentication + +BackendAdminApp redirects to the AuthServer for authentication. Once the user enters a correct username & password, the page is redirected to the backend application again. Authentication configuration is setup in the `BackendAdminAppHostModule` class: + +````charp +context.Services.AddAuthentication(options => +{ + options.DefaultScheme = "Cookies"; + options.DefaultChallengeScheme = "oidc"; +}) +.AddCookie("Cookies", options => +{ + options.Cookie.Expiration = TimeSpan.FromDays(365); + options.ExpireTimeSpan = TimeSpan.FromDays(365); +}) +.AddOpenIdConnect("oidc", options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ClientId = configuration["AuthServer:ClientId"]; + options.ClientSecret = configuration["AuthServer:ClientSecret"]; + options.RequireHttpsMetadata = false; + options.ResponseType = OpenIdConnectResponseType.CodeIdToken; + options.SaveTokens = true; + options.GetClaimsFromUserInfoEndpoint = true; + options.Scope.Add("role"); + options.Scope.Add("email"); + options.Scope.Add("phone"); + options.Scope.Add("BackendAdminAppGateway"); + options.Scope.Add("IdentityService"); + options.Scope.Add("ProductService"); + options.ClaimActions.MapAbpClaimTypes(); +}); +```` + +* It adds "Cookies" authentication as the primary authentication type. +* "oidc" authentication is configured to use the AuthServer application as the authentication server. +* It requires the additional identity scopes *role*, *email* and *phone*. +* It requires the API resource scopes *BackendAdminAppGateway*, *IdentityService* and *ProductService* because it will use these services as APIs. + +IdentityServer client settings are stored inside the `appsettings.json` file: + +````json +"AuthServer": { + "Authority": "http://localhost:64999", + "ClientId": "backend-admin-app-client", + "ClientSecret": "1q2w3e*" +} +```` + +#### User Interface + +The BackendAdminApp.Host project itself has not a single UI element/page. It is only used to serve UI pages of the Identity and Product Management modules. `BackendAdminAppHostModule` adds dependencies to `AbpIdentityWebModule` (*[Volo.Abp.Identity.Web](https://www.nuget.org/packages/Volo.Abp.Identity.Web)* package) and `ProductManagementWebModule` (*ProductManagement.Web* project) for that purpose. + +A screenshot from the user management page: + +![microservice-sample-backend-ui](../images/microservice-sample-backend-ui.png) + +A screenshot from the permission management modal for a role: + +![microservice-sample-backend-ui-permissions](../images/microservice-sample-backend-ui-permissions.png) + +#### Using Microservices + +Backend admin application uses the Identity and Product microservices for all operations, over the Backend Admin Gateway (BackendAdminAppGateway.Host). + +##### Remote End Point + +`appsettings.json` file contains the `RemoteServices` section to declare the remote service endpoint(s). Each microservice will normally have different endpoints. However, this solution uses the API Gateway pattern to provide a single endpoint for the applications: + +````json +"RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:65115/" + } +} +```` + +`http://localhost:65115/` is the URL of the *BackendAdminAppGateway.Host* project. It knows where are Identity and Product services are located. + +##### HTTP Clients + +ABP application modules generally provides C# client libraries to consume services (APIs) easily (they generally uses the [Dynamic C# API Clients](../AspNetCore/Dynamic-CSharp-API-Clients.md) feature of the ABP framework). That means if you need to consume Identity service API, you can reference to its client package and easily use the APIs by provided interfaces. + +For that purpose, `BackendAdminAppHostModule` class declares dependencies for `AbpIdentityHttpApiClientModule` and `ProductManagementHttpApiClientModule`. + +Once you refer these client packages, you can directly inject an application service interface (e.g. `IIdentityUserAppService`) and use its methods like a local method call. It actually invokes remote service calls over HTTP to the related service endpoint. + +##### Passing the Access Token + +Since microservices requires authentication & authorization, each remote service call should contain an Authentication header. This header is obtained from the `access_token` inside the current `HttpContext` for the current user. This is automatically done when you use the `Volo.Abp.Http.Client.IdentityModel` package. `BackendAdminAppHostModule` declares dependencies to this package and to the related `AbpHttpClientIdentityModelModule` class. It is integrated to the HTTP Clients explained above. + +### Public Web Site (PublicWebSite.Host) + TODO ## Microservices diff --git a/docs/en/images/microservice-sample-backend-ui-permissions.png b/docs/en/images/microservice-sample-backend-ui-permissions.png new file mode 100644 index 0000000000000000000000000000000000000000..02769be3e50ef5b46a7b7b604fca2b0c398e0e33 GIT binary patch literal 40957 zcmce-WmH^Ev<28mAV9ES!3l(r1P$&I90CM)2*KT58cT4O;O_2DTmjW#ZgO_T4v zHEU+A`8P9n@dLP3w@y`^sych0T|qx&#nDlTPyqk{x}=1N0sw$;2LQm^y@rSV2aD$K zB>+GHkQ5P8a!EN_an-`zAxA#NtZ0WHqJQlIAN(5CSA5sg{8yH5lDLkElG#CdC!Gxa zNY!vQ-Peec>F<)`yyqY`#UH%iqK5pWeO}?Kove{Jx7$%w(Uqj%6bsB7r@8L(REKyb zcp8ay<%yb46CyNQt*ji$OftM8iI6wJZww<^nNXnR+1*TQ>pHYDN0+H~N=-g6{J4Az z37TZjG+ijmt`+h!+dej_oMiu|M0IuQLqkcKML<xWs zYR>u zmEOZRKK`zxjf9Q;S$!pKE}uI$n`RnsTjg#qp$=45MiD`CPwZQ?7J@&LtgfM zb4onoaML`yWmr5yKSbwsG8ebnesV2S2)bOEUu9f=Z~C^cFFbu_W!OeG_|k63At{m2 zWM_BRj0K`9S3om8FHrK$F$tF4xR^;&y0qscH6O5G8RmskEs)KNx?}dw{A&CPvXRGn*OZ65{I` zkwp|VR$@&$6yjGug(yt)#RUc)q|qIs9U+CEtSt(n^^c9j2UceoXXG23thBt^R&T5B z3k;X>epo(Qek1wu68*|wOyxKrbXMT(e%}ND^M%pTKY!xu!Ud}-7-=}#umE<&{Tsfs zeyz~?U{)XB<)hHpQ20ypz zXdGMP9)U4$_D-)5PUbPMR6~sj#j%F(?0>W}(t)9F zD$_%Gt4)XpbzruF%q8YYd+E@OFMu9)9QYc15#%aO3FkYHh8a(4e2DykU7xBzkl* z7E~=;#@wEdls>GJxA6ANuYVi9Ygd&1Rb%29*(xwa=WPk182wRF@`0(jxoJiP1*7I$ z0>VVK8vPLx9(B`v(TAJiagZpEr{zL;F25I6qSk}y_;kI+!s6r)RZVFp1Lhd12;GiK zHY;m&s9O*b$)?)5CCw$DdYJC?Uuom){>~acGzDCJ~+!Sf=<@rwcyUU3>(eDIMGxA&wv=+p+WOb=QTP0e^@IxlQ49N}3 z$o~F>$jVj=z$Hxt7g$IyeRNw)axIKWLs=O14@?Tv(;7kdcLg&u_g#yzMvw zOBR|#^`}^IGP;Pkjk%j%U zTmdflt=&5M;Y--kBKrNRQGJsp$k(VeETds7=@0#44b#*d{=Zq?G05xYbx~0AefZ10 z9rQ<-*4~p;Calu~Hb1aF!*?0|n;%K}4LMvd$qdu^5=&`C&jpnWJC+#o-vrNZ@g8;h zw(II@qdnKr?3mwDk#!s63!XJ$=r_xz`k*pe{}}nVK#~C7l4EnoHSFWVV=f-Y)0In- zRU#jmoXIv7JZ9Sjqu<%yKlC)qRimMy!3l29w^yKb$t-wYLGS?g=W~98Cyl zGg+Swf`)8^H6`5Wi6g^F@U@&ORo@ zegj12gg7EDKu1PcCvkqgy`UIpVa7E}R7?CI`f-Y<`YRLj_}3bfXngEs1_7l_C86;CMG;zh9gsd{X8Zgk?`Liu6>mKj zX?Z;rvrU#DR?PD=%TR^vw4IsbO3NZf8Ml;J1Z@N=K5af0X+?z0PaJFvA6euS#SK19 zvR7C{zr{|b28z>bF1-7eltfW1HTEON*u<17EE3`-t>2DIulK}%osmh) zJUKVPQa_C&5RH8Gab)C`>%OFI^l-|zJDR>hO8SSO9FzPcj){Q*2}$W#i3;5Xkx z&p-UK6*>zy57wAZ+TYEi=@|qXzPWOwOHP!e+GK(2_bNm~wH&Vb=TeAne<=BUGUEt; z=EU7y%Kwt}5ghCPQD8YSO(FV(67Wa9nq8*mVlrmy10mP%ByOZXNZdvv$p(W0W1?+y z=elsN3*V&C^lr0RDW2q&{)CtHf7g{xN=r&a-Zl=BZnd?OdTMx!JrOeD{pU~KcjZsw@7A!&riR9#~D1j1mSx34}&)I&G0%`%WBWRQ2nb;pl4FMGeV%C2cb7muDvWBVb!JeYF_^PMwbp^*|@pjtU9_spzRp zW=9^@EB|jXg)_Xy1alyW?@k*C8dJg|5qPT^h8Oq-di`=tK?Uj z`Tb&i>xbC%E8#gzN1H0zt919h%$T(sfyW<3mtg_{<0IKxsU+^BO9a}+R95G9^@roe zPAg#&xzyz6hg;xveuHCyqB8%NUdoGgM;$kpQE#iZunKGpjtQiDBxF8t9~`!T!uux& z2Nz#{L@*~~3)UaajW7vsg??!9S^gWL0v!W?($h81E4|yyQUTr1rVHdKpM9l2*suVY&!Ui;p`TXJnj^gHQO~7*GDsgp5LlZ=?wK0&|rWIJc?EzfD zY1v^Z4eqI|tdyEB7$0^#TGX{yL@MVbAaVILZ48pWI{Y`$Y)DAq*=wZbJ8g^~_{i^U z^Xsg}5}8eZN+TGEkSu`i%@p_nCh9lQY_nk#X;c;#7K8Q0CyQE#U(0Xcu+AtH45|Np z=ChB_mV~Y~hcG>$Kce|`=$gv;AqU92wP~ z6+fvW6kcbcRcjRuesi=8Sp2s*CbbI;fxrunyURLZ$lAmEG*l<=x;Z;JR@sBMnNLd{ z^YyFX1fi#wy9@emoIJR->9n4u-bX~6%+5hky(!n}996~~;;;sgY4)thw)mH`=QEW$ zNShqVS-))%1s&6a60sb9CC7!dbAy2dmi0dPrbtvU)0xnk>HxV4f&RP{|>*xV!7Qayy|Af z8bZ2|5xwLtkh&~a#|7);MXOW? zoS&cL#^)f7oO$du1FMcwQ%Yo5sUsLHPE$`OGPfJrBgF2@crNCr8|~%qzn6>B6nzIy zt~+k=dd`xxrBho>G#V3V(&{-)*JcdKiw1Z5_PI679FX^i+rxv!wn}7=xc5Qba^_3^csjIHU>HaJ$W{^b4`Xkq6y6tt*rV5ew&b9DbD5x!vc`;p_+T&8UyQ}ZFB{1G&7K1$w#n*tl`gD9ADuA!_9*Gg#| zuz|Cm%0}pE7;LuW>H#rnD?A8-PW@2z5KNkb8;z#DrNU84fcN%j__K_5?zlguS?}fmoG0D%ljy6^Wr>~9$lmHRxMbz*}481 zDx~U)7ah0-6em;$O-)8#K^S;%-{3#~wR$Qt;fNx&haNVf)vYXYUc}7y&AB9eE{m$z ztF}%KU$rx^B{v5|_9EWO+@6{Y??Rkp!Jo@plDH2eonmyV=NPXDwLHdQ(;RWilyqgkqQc8_sNBY;^KE%hI4o#=Xub~H z7g*t|H|h$qohg%s9S}+ZcDd?TPSjSeUpUJdB^#VhhX}I?$fbP-P9yf-yoHy*SZ;W< z3LgorB@V`6qOePAdT3SkK7B-Hh$q{8n1OFgSB*o10_-$o9ycGe!07UGt}FqEfKB6| z<5g|VNvq>Kfpi9duk}hn%VH^e`0dRPTDhhwgK^&NDM6EA{pC_Qc(F9GT(( zI;w>!O!0UmKv1j|0dwI33`76pXFWNSyl){ECtf0a%j&v$penD1=YlL_)5gm*X6vOm z5!U_M(|fk;5;%%|aFjil$vw0`t#h(iz1gu6`K@qQmNeVpCGoLgSnxb1So?q&pr%?*iP9hZe1?ahdyU{1O zBwv2>=|Z;Ct-GBe?#*QGbA^JgQA3SsK0>?Qc0p#Yn60xN92S}U!ondxPil=%0B)TlU27(?IVM3f02QDE(ka8Ta$zt=$ zGxT6EC|4Nig!q1T*;J=h$}?izZBoo^==nSm1U)0!k0#ms**J9S@uKYrZw(V3$9tc60WVlQYG3bE=3%}!mv!AGp!K*vpS8fz zDU?o%0dDBDo|$-lx=z2TZ%dOYSC}cNbh65-n*eH>Nh&9}+MudTp3u00d3U41XD|Rck&B6w3uS^Li0s zwpSGz){4>=4Dj>kH$A+22_g8>QT_M6`T0&0Iu_c1RiQs6C)Dx$is1@1WaY7sm%}w0mn-7&eEiUh zBjUNq^>49ki8gOh)qvVPeHyo5&->vxT>^K zljrkjK1Cyle{)r;k?`gIG6xmXSlB*Whwh#1?5nIT@mu7&HP7pM>36mOXaS!~@97Xh zO0JL~sS(6)z13mwlYYtSdwa^U#GuS9i%eq-;P_UqY?JRQ(FGBQtFW5XQg;L;By zCVjj#_rfGSNPCd6R3Dw{kjHU<=8Xi;<k>0{mGljC1`M;Q@+qOZ;drxW=cBkiqb znrWr@ek#AU^>~aO!zj$k0psvIHzg_^L@DRX^25K;CM5-|r)Q87P~uv5;1IY#nZ3hh z4a+bXCY%P3DnIt4+!-w%kvdDMjD&Nwb~;}*l91-t?}akDQ=g#Csf&k-iUB$!9<}Y3 zG8?LCJ=z)-nly{$ark7sPmeG7xwPzbDF%*7?RPDLCjQ6b0u6M15dTlU{pxbxK1N;_ z>tu*|vrNem4>ub5T2Nqw+<@=sp>AP5R@=HRZpHy7ykjq5w8`0#?niZl?o$}!s) z?MEux9YN)eCRuTW!25>*bGZ+TDkm}g3r-ff0bdSGSDiPf`AI_~iO6jqw;S)@THdEs zt325{`Q<-!E@5=7T{zUw#r5{A@j3Hyvd?w)*gwq*H}9!>@zDWZuNXf$9jz0s&2hhb z&vvkQ76J?Mrd*dNb$!FjNEFVfTN%}iwZGon+CjwHGG+6y#I@SqL6znWXM3r5*1iBg zS6+?BiQkkaOfSshZZ<3tl#8Gp@%<&|tsR|eutIz3MV6Tfon~FhKYa7_gtvB)_Tp)Q zMDV)0y2QlE=f~)KE&mWG_6+s^-yjvfQcbJpSCEK;_5WaLdWjFwsEVzEAKofgYPh*I zO-j9VfijCbBR^kNuV{~i?BC!2U!&-^N=sBtq=F78JXU3|_*J_Sq9|IFv{o$3g}X;Oz5{B^p2IB@rE$wwcF zlW1rYsB@WG{DuA{iV6%glVrJTJMF6?SL_}DSZENu@&v$ZvuNVsiT&4>2u`A0dLBH$ z!NCE*8~(t^CRfV_+v~AmA$*{@Q9QM ze3o}%93xu1En&WlX{~pkHcoO8oS!GY*4v+qi`8EJ`;`2#37t+$gN3H-V0MM(^Xi+3 znC%^cgZz)8#Tg9$JfVm%Y!rmG5NllyR@dOpqt}9ly4pV+j^_2tDZ2gFS`MNzFNf;% zWM!@Vqw=?Z2GmY~vc$v*Ow!ybfKfz_G`#PnH}H8~&nCV`yL}4#*L|IKU|bDaRfyN1 zm)qX_6`BUOn;Wz@{*P;rT+drm9UrS#7hZvZ!KKaqJNc2R5hcq-O(?8-dfv5NUqSkw z%CJGYoW!|gY?=tylirgJ(!0S?_^{~`q$VxCR+C#C<7tl*7cVY?z6jRlJS9g(Erukj zdN(+-f)Ar`i z<*0(WBRJUo|F+Cxv)O{V?j9r74$QTOj^DyaAqyBaRS_=o9bql8&E|1p3<$*1_KlO^8~B&QTiqP zA#wfw#_`VaF`MD)Ik|H>Z)H(i)a_|RGh|lXQ%P5Ws!Yc{HcHh~9Jbp^!+5V8x~b(# zCr+_iU}Zyj`=Yr7} zeh}fGPV`%yz$lc_$JNEla>P%jwhrWvdV*?on;QT43Eqa}=8_yQmbrB0f=^&R8lH%& zOxTOZ7M^DA1uh3W!cWB2Ih_Id9AjiteYt)yseUo`9FVFlX?@xIu^7vhQOETLTO^!oqZ?O_nbAD%A(%svgioUGcuigfep3Zu*zJ|C zFkpmGi$+plL7M+>I}mKpqGV?|kNt>k!ELoln``Zg$=BnSs#FYI>s|#`KNe83cPx z_Q(hz(j~oT;;%J}{4py4-m*m-TWn?5_pxSq97Yy8tiQX5qCRmlE#7-UX?i;Ap!^l1YR;!%WX(kYI{`0N31e`$swXY8E zZdM6MN1`srW@U1nPm~dM?`y5^V7ROb)cBZea9_&YKq>M^|rv7>5+x=w;DhLeVhV)W+pJZA^9BJt;0E z!G$>DWg;l|^eZhH$rkG1h!BoH2N>$aHKU4TN3AXSp;{bPy?^kCpUCRW3M!UOGM~sT zTjmCD>JcE#Lki_L>+IHTpxgU&xnV7?f~vO+YgM<${WN_3fEFY*DdbyHO;FK_d)rAG zaZ@b>)wP-r-3SED;@^!^N4<m>#yk^@WK+tXw1y| z%oIiK^En!v&%~Ce1_Izal=0ECCZ@%9_o^5Zq9d@N7zBUQkt*c5$7;%rR;xm<- z5cFQ@z$`|xwQU^`Dh6?CjXxjy5w{w!xwt!+bI%R|@5`%^Ml9$dxV8*i7h6jo)e*d% zX;v~UQ~=SwDrKDU0wz6CZG#+&IV0?$5j&nI#tTgX?(4*N_N8$kgDnXF|O@I40e8xp!n~sJaS4Mnpua zor_mQi9-z19mWYTvDA2b3H0h%;0dBp1-5iUwy1~LPg>)5DtEUlWklbMN{_46C>*lLd_r|?a&zkU^c9^F5$?^`C(U9dhkGg01wbpxj8T4}=M-%Wb112hrW z6iBMpl-4%0;Sb4LxdER|2Ph~hl{Z~IDT|1IeTG{1n36kGm1SpOW|Ug5XSy;(ijb(W zU2O4rLF%1uEsH!f2Bz}QDo9o{kG6@md6rZ-@yQ$sY`#>3O}|k_Hf$^BQyX&N;Js>y zwTv}4hUlDkE(;>Ix3`z%NK#+{_M@jakxb7=(C#tFJ#84zHEvl7IYHa8?h~?HHOdd8 znT|Np>l(vUf}r=3-M_Peq-_oYo3o|!4w80Rh>?(;$AUnT2B#wpC@q>c{c$vbTv{*O z8IRGz@uz0>k%aNhR*R)FnE_oiCK$Pa6(ptM4-Xd^|K8oVbIbTlaIa#DRIi`+MRMS)8rpzwo&2Xo#~ERiS)<*> z6nL&p<9=Y4tS6@5ysHHAfQhsaYgyWSw`D7Y*76rA_n_wJHn_Puzuerux*q{zc~{?i zC@l<1XLjwfOyG1p*5~+n4z4pY{p$tQIIGeGqoNlP=XTxZDryZqT`*Kx>ufO(+9zEu z_}d8+&2zZ>yoX78?uZ;_F&BO1C#V_G9lp+^tc3~MuSluBr<{rI@ia6!thSLIkF^GB z5iogV|7H8Br}w-2u)b@eTIq5uJT%y6!=w*Y7Vz#J5hd4HOWWW2NwOY1XkUCrKK<%S z^^ITFKHUObewx1L{+cGo%B)HPAts{uvr>y1#W?)8=Vpw{A8Mbugf~!n#VGaHD=Ql7 z>pQ#C2=wWg;nTo%r$x;$3k%X%eea-Nj}`Ug>`vW+2qY*z_p&(!O&=)XDGH9;$cbvT z#tdgWD@UeefoCI`1^_(lmJwwbyD zVY$;`p8e@10nT5(5~cpDPEcKw6}NQSLUL;6IA znnyI&@Ad+OLR!RDQ`mcYNCxViAe@FPjkIaFayVu@o|ObMzhTK?bI(|SKXW1V&hW0Li%DGgo`}}M74pziQ*UDDh){7&a0S+QC zh>t9rDu3@bIK$!92z;2#<$-U5-eQuBYUa_;i-v-ZMMn?4rZ1$pBW9)rHrZ{>4mi zy04dp;|Jt%mdZK^x6^LBQ|%gk=2D9;f(1w&w11k1*Jlsl!=b%bpQWiqcjmwlVCs z$Vgc`0i+!jQC^dYN@nvlrp-_KtL)T%bRELrR@Pb>zc&~ZsG~xZ>iPbQGbE_jK}P`L zuiP&M&Q%gM+{+>9_F?+@B)?V5$~n}2p>b^wccQ)ShIQ(QdzAbQueXUGZ)=c`9Iyz( zDwi^Kt=)xkbY$;;j?uS}B39NUr4e~oVp+HOD*GMgR{agU9G)@vu4YLWg{3EUSba+b zif%)YEpIP7p-*wwZ@2?Xxo*wq9=Q88TLQY=(ZqiL3?VjJf*ZI!<((Y1ab(vDmc7D6 z6RgLgo|Vg4?RDd-ud|t_PAiaU})GThorKB`-ArhLsISeQRFxwuXJT-)_ zb=mwvZAy+i{2OXH!DJcYN-D+Xe(i0}>IDi~aOwvI3D_}ZYf6qIuQS7Ef2$B5a2FC$ zLjK0lR(YhGT&C?_!-mXE{(Lb95x1f~aK5|TB5(x*V4P&BSmad*q-zV^!JPUzx-ssW~mMSlxsto)igU?7O-E*chB)EI2UmF z-6FNmqh{1t>qe!B0S4KKa$sM@+jnXg!J!N7Bh8q#SG+3n-2H$p-(|oLZY}j&RdmD? z5t$ypZP?M&+>5ieMjV?g`b=8`KT4Bvq-b|Si3`?)!{vkKA00!Yqcj*_y&xa#nS8PM zE0(ff)$j0C@KUEay8L$~g1VuT^8DbpR%UuFEP$Ho-+ZTAjvqcbG}s^_$EvfuREv^g z_2uIID@#FeZf@_)CzM8ZtzY z)vC>6$G7kB%&Ks8$BX>5 zc$e|JPNu?=F0VP>fsh|z&+k<4lTo@)8N1u!)}@-qQ)Bdv4-AP07Ob*?OCVf0zm;#m z5uMESOV+{rQ%tRcac-`gRr#HV7TbWPFbnp7vI%*%1e>Tw#&A6CmY1ZMNDjLWv?M+3 zN;OKs;f9Z**&?OkFw?jbf>{+aYYQ6v;9>EG;CGi}dgg*gAGu;`KgdzG4`XZ-Gg zG7?S@U~F$e93Es<#1Qh&oU&F2bzu8DEfq)f|N6O}n_m8(MkDY4S)=ifx!SzEymX`e zPeEh$o{vvkPOjXeIYTn$qjE`nOiXr7^h*n{j8sBGf>OePZj-y!TY10Qleh8d-<PO(-fhrzi%Q0=}JF>5&CHbwYXR3{U(|Za$%B| zEU^%nv_#2zg_`6R^VRRMdX;tUlIENgUsyZS@G$sLxO#9gMtT{d3ZpQy25n&YuW)rL zRHN+OvsOK7j0nlv{_|8i!HGyvwE?}`$62bsIu9Nu^c=7bPgl%{&kErD-pQwk-xSm0 zvj_uIPc9;+mQ*?bxYdiBVhLhYe+=Q7KN)&&uZ>ub=s1hgu^x}Rf^RWWwXV{%Tu)i4 z&n@a|;+M*N659BmZAu*u2I9yDmtgW{`JLFbD?^T1EZQ?*o(N;P$=9r&*AJNH0s3B; z%BtB0Q_C9*WZBNMMk_~=SJvNefIpXk`%mS0+#%bgtBz{gJ^z>j0|CkXrS~wZAi-|$ zkRW}6hB8;f=AChtlD0pyjD6qY#=9A^dvlx=VW8F#P!-s(de0vJqB6?*>up#41eJaR z6}d8Kbz6xNvsHP3u;Qx5HakxT4 zn)0U%Gp?NMdM_G9Sc@AbihyB$PFG17L(r)KgW!L^pMsALV64M7nBSlmT7BLaoOu|) z%^9}%4vs`~9VWL~H@MM>^dL1=YtN6lZ*-0>Wj>h_=(>e`fXTiC?DkG=eEH>DWnhliHnE*!C}_a^TNNJGVtfj zv!%e=E;JGI3A(>0YQ2mDdF;xk2T*{sC#2<;Fw?G{LSNp(1D9KDSLsT1pOUtGjamsj zCU~Kj&czX$vUk5ckO4BOaDqfFR?DI2Q8LJ5Za~==Bp%>(Yk5|1{}~zhH$vhiCmox7 zmE9vnnieQkFy(AgWwSPhFAwPwkt4e#ASsg>M?PhJj~(x4IbuG}b|7>J8I^U!$8W`W zw5@zzQK^Q9$8Q)|Y(cK|be;|nc=G5p-k|_samqfP#mGSipF`hGFq@C_w2|==GWYe2 z{NE6ni^y{>ai>O0voQqu9J>{%KJ{@iYh+3GwuDG2xfLc9D}sl>RxSD{IQ886m1c50 z;$wO`@LCo{Uw&kF-`O>{ykdK%#}DYAJ=R@lMQu4th2$ip0k*tDB#+?g5hC}lC~xM$ z!n>%LJYyuAC-zyzG5Qn^{#wB^=?C$jwNZsFFSGEQIhrgaaXQiGQW&2iJL`yb`D&5- zbsIUu?~sb7vO3En+Bu4$L!Fx~O;`EP^B^G0JubIkr@p*c|5*AeB{08NoDd zFDw#gWn%qim$m?~E=LuI?IuN~jb9gfPv`U_Qt%5>pj zVOKXd<&WSH^VToeeD$4n9L}a9P;1YVKA%Q)DwjIDBG`^;rsU!2Y55{avxl7sY_Ib@ zPw!n4rhm$YBmJc87WX8)g!y1m2aNET{t*fZJR?=shV?y)Xak1yU!MOn;X>p&tIJ0G zo3=tKF?swjEOrcwMJI6y#tOh3#2noX^i;HP+fSs+&`TK?ua}uUIr8rySKe2bD*7W> z@8Rw@3jH!+NO9fbo2t7$l@%XAqvuwols;y(P6|iIKId+$gt7LLx61mM*E<`(yR$_6 zNRq}qH%#ON9WSejD1McswBmPw_FtJnrvH&w=8Lfhh>sC1_5Spy7SZS*=u8}H&@Pi} zKDlk>ND0kEkWe_AbN$|+P-F2L^?tow_I626(YR(@NQa^GS-4yv@=XTcFPaV_!0804 z2Oo3t2g@M{25tUxyFHc6UO2bSe6ecv3aVGW5-;7NlMNqHK*>Mwc1 zJ|6u-z9bVWTGC=*M-}IABAxZXK<7lvX^TQtbRxoagm?2-m{~)jE{I~!f80f-{Z!k( zydf>yte{yA%~bR@mQ<@CY%|2W8t?U;P+JF>zen``fR~JL>SYkuSI76H3cE~^M6$HE z_!;o1+l9|jGaZlt80)^JuE;4;u0D%;oz4EUU1_-Dj|7@};%n|u6b^vWgH8iEt#i#w z2&AJD_T`YHqetClsx!$Hzu=dr7Jrv@WrCKk@bonkhaQsY zvj`PqSVD7Hn3r~<1OzE#{ujD}B<$M0)ug@Z8<*6}h^HkMDDU5^{SAFOv5EV&q77&O zV%Ezrb-zk$J*(|hQQ;Ph3?d&w_WaGvKh>N53?F}5)iwE<$-|e6{&cS`aIPmX{2dob zTkqD0iR&|t;yPW&1aaW-A4Q%ww%r3kCZJ*iL3$j2+4imHQ$IwN()E=$OU4_^NW6#u zm+-!Nj6l~wh&~+lN5}T(k5u{y{CIO`m7Zm(L_CDeBvH}cq#TiDA#*8bZKf5=DwA+Y zYTN|urt{|!Ek_)^>*}n#!L(kCuyF}2P}3iT7Wa0^cq0JYtHA~!9pdFQczIh)oFgwh zjWe5j5ZM35_Tfsv#XnV%74 zfXE;jfvwam#oc5(>{-IJ^35r#IFcod*W@=3eb<_h2wM9rvq z?UT&Tp#3>h? zh2+U9VOTks}a z#*>Yl>ol(aYR%MgzZIenIJJ`Arf!$hn)#AD*e{6ht@S%zYa780wf=gJrPIBOsrSw7 zE|zIW&9e6MR(CGOXe}$CqEhIL4V|y)S0=3nVP-Cwf73X^rUBYwyObhIUtLpb)fBRK zy+HetVStD;g~YWY_vq*FQ^Z2=RQX1{e+H-Y#$3SxxEg0}xNb0gFNWB4LKVfhsH;Xd zJ>=flhz#kw%)eT>v_1Z{0Dho^tO#8tO24Y)=y4B08?(f#aFs}_4);Y&B$&gmOmrbPw7p*HBXAINp$Q}3yJmhGQE9FVAS}g^(iR+$^lqAbb>#F^NLh7f);A0;(x)w0u9c(1W@t~X)fwltw|In< zhLNM_007g5rur$|vJwKJLOb;!W#oPYEyJ)q>@oSicjePK$CM%Pbi>f(|6UEAmiSHe zH>J13A^BAzTYgMOb|PSLPB+Y`1#gCB&8!~9`Qsup1JS;>QG0>!yDG2Yni4XcMQK;# ze&(>v%63+MulepbCwVuE`C;=oy#H0*?3MOvIj=AQ?Q(LEx0;|o%5hW_Qo^*umHzYl z0Tf|f@gJHZMqLANE3BC|JM>16emsK$b%qA1Jy49>0@7as?Gw#`$Q0k6cOzHDZivX+ zgZ~{@lxAA$&l{2s1MQI3iIrELsHfjUEt?}Rh;Z{$A&=;UWVfSuT|B~o?QM$pD4OL; z+(xeIeHAs-`1Rc$(mA{Z4P#k+;0-^r< zA{en!VEb#f93frCUk2ZeE8CE}_gK}Dt#*@(Y)yTmjdM8;&;-`QbjFd0Ic@VSDht&i z%68sp2Y&ig0y5Tt+nhY>C42BfyQlfm_CFZ9jp1EaABy_^t%3Q#BZT;Gq?&|ARshQ% z6F6@XU+KB8&y4;BO-yc*CCy4x8Ref&8DO?OkPQ~XmQ=x+{);J3^WbtFPZu)TJy@*N z+O3ifJju{)$+D~R8Yc-54G1U=US3C`xbLn4U0|w>JaUcCi4qdSfQrIfn94?>HJ`9n z>nnfj$JTFit}T`CTPzMwXPn!}m9t9?45ZVmVd{n~B%c?k&sd%jPs`u;7cL&*arZ{i zg`Ks8d)h&nC4#Zs#iMZkeC%4CR?b1Y@`65Xj|O%nClpqRD8TgO)FNVn$GjP2n@qN< zr3^v>pB%2}uJ2tJj_>HG*l9VHo z7rd-221}rcFoxT^1QvAc8-z{qH(&=mX-dC(+=qMpP=3NeKyW)@(x$I)-%*W!V_KGe zcYBnE*@uKed$`i!enrq~4NC?|`#!(}qC78}%3nsE;Se+X`Q+&bY9l6SAq)TgLr++B%aRCU&mye-n8~%T-^}1 z=0*2O*X-}CAT932!|s+0p#fk{A1l`lAGR7a#SbAR}vRvxyAF7=9MOQp3m3x_g3vZoAf|;o#+o%rI!OZp8kQLb( zQOxe^3(f_%DU;nCegtPv-k&bJKVaF|9xFi2u`}^$IN!oz>>nq!jgJ zHe|6{RYz<`Dg2u;ks0~%@;~9@f(yy8Ls|hYH@!)N8<2Kfxz02y^4VQcgpm~IJ-51k z+TtruLiJ@;cKs-9o4vL}LAl?vId6g{>tF7!J6xTy)gHwYiHO8uo6Me1G!ikk?5k)u z*ZzJ6r2?UsB#I6Le%nVkOQXuoM#I_SfbtRQ7e7)|2$Hy>dxP~?CmAoyg{@TYf3*PS zUN@Q3$bYY2Evs6X9vrMRqid~tK(6@gF&W6de!MIVf+fQp?8mJ8N>_A6k9G!;t844~ zCU688?%0Odc7(**BJ!9oaIoctU+zK`?adLRVayrz)aw@7&UMEW3-GHK8P0!!tXcwC zBG}+40~qHl_)cf~fZ)KS=Fo)ai$0At^3nr#UIx&R0O)FCk+1mSIs{5jqMkenn}Ark z{|he4Lco?!jnodh*IF*Y=GEkyfhoG!zJOq%4mUCCf#D;mZng8DZioC}DgB@&EV+smvh)p|7iT}MJs{dcq z!W9tkvX%b7b^(l_F+?_G;d4Er&aHF;IEB`d1j=-hmU^)r#uV$QUrbVyykAh1~)R{pM-o=vIb9s5Ad>vD~$^ICBWfU@@p=L+6u!Ap}*5}pUrSVGnAG=FrGJbJI`(Ye# z9*H8zo~av}oOXLgQAg7?fzHtapt%29N77S7;}VT#l9`Btf7N|tmD`KL6TZ;VkPvP` z?_lLKqAhK`%gQPnpGwWRw0w-Yt~IS-By5@db51J-iiFk!u(|l)#fJj$p<&CF>SzC2ZV{HAt&AKFtDE~QONPaWl3 zH%$AnO$qL*SKw77_r9z~D^WJI@m4mkMDMyL!@jk2|2OS*pV`BEPh@Uu*-(w+FHr=7 z>dOZrbe2APIEig%v955%#-ASfswQb||`(y0oz03uxf zl1J>c-ytxvAktKrIk2u6N1W7CdnNz{3Y+oM4Oi;Z>6q(WfKzllKYO3&Dp%zDfh?5cXLLI65fb34|8@t0zdUS4pxOxI4( zKp{TO27GzA6_FN6=M6-euGw@D1@FB5+Iv6LlgvLqv@`%Ou|^~GJC9=F&qQ0i1$c+k zR@$Hdk#^QvZn$*H_to1q*zRl85f>E8Xk4Ra& z9ib%j1{I@Yo)207{w>A4UBCIrt`a-+`%|6v_v%wsFXRS;BT^%Tx@16IvNr9 z(to)K6O4QA8GL=3(65{nk}QI7LjYQ5Sim~9EZutq>X>f>s0k8(wz56>QpOza@{H2g z1d&B3TDj$ksH5yJXihH=dZF-3IqgkkAMw;cEglGE#Dk-v*iHdXWt2p--xVk@5@K2j zxQAU|wJubR1QOYzfyBf>p8KZL_lSp^2!Ihi3StjL^H{+zhSR#Bl5ZcuaZ2`1&>5WP z!eIucJjhkxXDMg>HfUaK(7o=Sbp$yQ4W*v#$fvn=Mz0K$V1=d(Lu#RN1W(KvEdpO^ zj$w~}%!lL&Pzkn3#sS~%_|w=mSRQ~=<@fU5(!}6x?zQ3*lhF9Lxxp(a+xyCfj|U@D zC^dGtf2lMW6(@XBSvImM6!wpPfpGnJxtB5@_Jknd$N`v7vV_To2b~naCS| z>Xy~2pGx)$N$pQWDuL)BhC%NYmAR35>Fl4O90qT|rG{VgMWX6?RkGEU92&x@d`{3Z z6FzAYBf!-}&I%m%nm*Uj$h9~PZG(c3p)G+I$PEY&ZwIzdR$_o%CMBCQ?80?A2Kt4@ z(YFa&7ubI%GC#*8lT9jL zRrmSo;n5vG0AYZGCz{$WZd}uvqyq}&(^WIj_3i_W{U=-Fklsc_RiwPa`7uohl3(}4 z^%wsde%;Jg5{{UQz59(z8l|a`mi7DmXLQhzy00zvMo?FbRg0&>)Cjg%SbKdl1xsI7 zsM6~z4rrWmY2%iZoj9$8_4=c9z0xU^A?JJDOPs{$XgE(Aw&i!w!>kpbX&P(}e*aAa zE2>ii_s0qx+|C#TbMsqYcV3*ID^PIpzTfl8aASa?w<~o95E-TBj|%3fJ**rO!*jk> zIvoRUW0e-soYq4-=TD87Te`^L8VlA(>EW~(-BO^D3YK**66pYQE761lusWTg(RxH zQ&ZeuCTK?eD#vovdW4p$G(ytQp$MrN_kCY_$k?&e$cL`mGToodX{5fsaBBo#<>{yF zxTf13P}HL)Q1wxYquHrg82eh6pNSwPYpF;Xl9Y1wS+oItH_j2g=;Y<}pofL9EH*T> z&i{J?KoiYBlQUlfJn3l3-A%wmfVVQjAe_RUwLP0Bct;Z7(4NuA67yjVtfZZYs73U) zMc|sYBOk|uwdRFE^3Mm0^nM(-jDP{$YbYmYCBHX)iGZzHsbF^`{R8GA(WnMyPa81k zAtVs^5g!@%I|q2a+*D)6_+XI-8~NgK0x6|u5cDN`sw^K~!l<%sPW3(QTqDaqr)@UD zvLcs{`lHCTA=(5smTnTvXqt+C6oSTOt^%74nTSpryPn$|Pa6**Q zZl9fTroQxiw=V(oKq;gd&K9C5+w&W}I=&z#tP3;-a)1=ruN@i8E#mrXkeTE=EyaJl z^hz!{Dd(B5Yia)V($M$k!3vi83^aK5(#o3k5on76^y*VX^)1ctk>lX;XA?Us4{4wL ze7X6x?K8G9G`{%|ApUa^TWI8cW$Di+qOFZW*c6hM!*Gtg$lARkbBuWlu4QT}n*tq0 zGC-NTG!W0NN<~M9d6-0X>L?E>bheEL#M&alt>_35WcN$K{%M>z(2;#2OWmZ5j;M9u0IGg0QPerEPf?y8}Bg8$v)qK|_UWM|W{ zSS{xI?Iefc5TEnH7hE8S25DGR$K5t)yJZ$h>Q=B94iTwn`-(~&JgzYUp=gxW-8TMI z8}cT2<%VIVp2NFK*WR?F3-}`{k6+f+7o8vr?3cPOeC*V%e8?FVsk}=1VoBBp$}=P( z2bi4Y`M&a>nTRW>oD>b~L=!v~ajsS_fhl4y&BMpn!YIY(a{iW{zBD^9O_hqEy+!B; z`nSV~;%}KsO*#$qaYoA~i`fO~sU`WIcCWkqUhSs{(mtr&{an$#Bl0crR+>)R=}dlw zOPr+3!BKh8sQdH9>^gA(+6^?J3X|cAX{m<_yjb?|%cpq=v5w^YJ6}QqQG?}4`o+o= ziC%NKoP|02b^py-652Z4x51GU4oVLSo}(nu4^z^-6+m1k0MuWAgAwx|(S+umHN9iu zb$S6@dDhwKsR@upI$4vg_4UhFyrdw6cVUjUBRZ#I80F7IDyD3ASwr%MiprH9EfS@5 z7i%KSf}V*W)z%e>|0;dSXIY-Dqu2&*J*d!FP4+{S9-&FIb+Ge1+itzanT&L6WX7&o z#XvNVQpEu;~yqYnYHI6*NI^umCrULOf z97t6aVXmp`F{HSzXyf7*s$x*5gX1^5~o*UGJ14YTphs9)A9PFoSh79$6L<_%E z9GuO%(;{8?T!(qgFEHMjWte43NlHr1S3LEGv^TP7za%}-tw|U&j_t~gMF(1@gs8dX zy74}F$9y#B^^oP9O_usn=3IZdrBLERGmEOSK}F^*!cy--SGu$)H~Io`gt`b4?3Zi@ zlAIBZ*&oG*azAy8Y&_J@;hxC23LSz}Fm#I-#cNNuf?eZ`CUv_k3*Kx3wJw%?<}xiz zOz;b|bnGFH2f664XrX%R4Ej@%eC#*`pVN*8Zrr6IkLzaC@i-lRl;L~+s_m)pi}Hn* zkvcxOn`>wga+F#8v@8iu>24`MC4!M`Q$I(&DsIu(Hx5k}K4SK`SRL%2a8dRcx2O5`Jx5(cNv5MLq> z%{uFcQ|AUaj*aXhRI{%7SQ~7#?js?Br!f!Z`b(iG-oPuAMROM?goepWtv#lrje8YJ zhpL+|^37NbpMjjmceos@)SKDgavRO8u<^qype?)?dNW;Fu$=_kJKf2Qq@PjvCjf8<8{JHyP&e_3O1ItG=y zYZL{)iQJ5M@9WQNTuihwD>L>1_`En~TqWVM#$;1MfHb)VGRy+NRCxW8MJ2U)b&IHy zqu@7}MJ}l)D!mz~1QWQVR2_!4fbHY&pDEYWwJQmiS~Pf0hbru6Ge$D+52c}m?$~M% zH6$kD?ifeB3xmDUzfXQPIpIT#1kIb9k|yog=-GQhwDf?{)I!}~;68PN{{Ego{Z zu71R`CB&T{v;UNuLD+q!_LjakM8knTKR>S?u^>n3VT}@2`2ErIGC^f%&pdP0dnj@CYFO zt_voaE3GXM2OWhBHtZCb?uBi)$345sXxmZGU2b+79Hr@wmaJYL+1NZ{`T#pOS86)&zhB9Jp_e0l@!myDp}|(`UxP3$i~lcnB%XRY3ljR#%+ z%`CJRP4{$}G|a5~dPgQkI`hjbKG!+JN6Ff4h4>^$fA%ECL3 z7sqyaU2DgPv%Q^wH}mP7FX5eoloOrJ*Q;kJWI|pc&8c7O`uD@8_wOPZ;4UHFRN8H> z;c$nnn~0D{L~F!fn*(ZLldjl@XVLC>^nW{dV-9i0VOBo5qw2+d-Kd22i~qFfm9}1?i(}DhUmDE z<}V-dJddd$k8VAGtXI@s>3rF&d__t{(8HImYqmygC33ewb!uhnu-}Yefu0nEP=~7l zW;ptE8rQn>)g_)_8^!K?kQ40&vfScBO?80AMqh!)Y%i21;X61oO0rE7>1-Q%^vafL z)Mp-^PCt-EoL6l-Wq|ES2e@-jfb?RzYPT?aIB{(}>RzyqH}v}1w|lvj(f1GcTM~9< zdrBdhDYk~~{>xm5FE-y>3C*UMDt;)0oF-&3L2KaL2tMl8#R>zcNSik+7mcXdXu6nsKGUSgA*U9 zf-$ro&%>;q_8FmV8^l(_5`fRTwk0_!Kk#vyq}IJ!V*YGo`Ke2mQqr^Kn*-~jvPj(E z&jT(_CblDoGrD8??f15Pb5BaHF>JN$YwD7=3aN^)fS{@9-o1G(X$#501q=1Y>Z%ar zwKbV5sfw`C*wSQdv)ylTXbU0J1}|SOzm&sos^+;j|CW4}*lD72qP@pj7{{yOJZupf zLH&J>eRd-!p$JJ*ZMit45Xtb;Jka%B{$|J2(2I6`*Wmd2+9J}i;-f_m8mN9i4MmV9 zkHN2ef|07T^Rf|nVUvNw!P~oTt;Q@ZN~0FB&Yo{&pW zp8)BlT)VW!`tj~DtkUple8|*9nX%_dTmKF$=`^r0ZZEvD_>mx>B6ao^+xBo!?k9j1 zJQqifpD`|o%`jfQ0XMM`{ji|K01fd(Ybw)mk`SL9iG{L)Kni<4T!tacVMw6bb9u3{ zJKnpIog*UOo-MTFErdeUrKkj9r0sRLl{(`i=!<3zbGS@jIu*D5Xs@Y|g>lIb0kitK z`ko1M@#o%;bRM}+%}<^}+#lXm%oj{oB{5q;cWK{HzAK|G+STPcytCR)wY9jjcQ|P5 zuy8wWn|OmrSBCKHMXi;B*&dza!436Q{*Z&qqSnAd>CU(A^1Ih1EmiF2RaJ^<+AoFx z;Om-lbc+!8g|lmHYn83sZOIdrom@B&e0>WfW?&bETP` zK8MHiT8??nj@HCmSj*g;R%s7q z9{snQOHo(y_o*8%t zcR@CRlJ61vopdDfg%;XLtttCYKcgxHhb?&Ij~VZMo`K4TKO{TlG4{;$SAN-5|M|{;C0ySLIX}pQq6T61z0&_s3`$%kWhqulSsC7+XTI1DVU}#Gh1@w`1m}} zdxN>J?%|PSJR1U(*Oi{i58Te9~uQM8*F*bc#NBeD0N z(5)R;`zork9n^?U-sTo(qIOV_Z<6$Uy4JO9ZF_JIEw9)fA2b`t*Wsv1DvrDEHyDhE zyE$UHIXAN>v@J!4=j0S4@?Q}kNhP*3Fif&a$@t2WE(TR zV%Q-Dal0lyN>l^d6`6g?xame-!nLb<-03@EI#s<)h9nD=u%&k)QP zCY>U~oC;Fy;CW7Jc_$4si|KU^aSaqRaH6akNJ)1(S%9)ff`C6^KD73wd+X;B zI3#GZlgPH&LmG#MN*p9BxnGU9n0i|$ZQL*_GI_Q?Hd z#voVJqENMm_|?Q`ss~w5)$D$dt#KRk2^BhX z3|6a_%qs?#nhBBeKx7;JM8&X&!mf|6NuR$7yd{zDw=SLd*m7_BXyILs67S~IPz!bN z8q-{--xPYU#Gn!sEx#31exdJ`@Su+95=bQJPQg1>n3?WfNoa3s7<&o&hR_)@9dJC;AWHoxU6IXF zvYvN8J|bYAFpuQpNp^=GLm6=C;iUXpWe%^Ml1`lvoxQwfmu{O~{m^*IF)r$3S z_cVQLOG}w_uA&JWH?FYih8%EIK_mTrA_!X!W`V_{B}hX<0|PAx&a|f8yt7Vc=R3Nf zI34M3YDcTvbb@1YimdA=Jo^ySRgn?8l~q?W15qTzB$x5&#d^n^zPC1IUYl9!LH=Sc z)@T@*;+k?4djYXZ zsLrjZ6 z8QZH;f}onB?;`nV1hG|oDY-xvu>qY)7O5QYJCa2DW$s<0>A&4nf{yqWCI_nSSEF*& zpvehSV6Qk@Cnr zwz-2tH;&ySWUPYCV>$nF=oO#&e2d$n1&6+51{_oMKtT(nhv9@1sbqSzw0)R{?NE!? zlI>N_d}XxPpz;-?rQGm+O($LR<=KOU&?W)wQ!C$FlGr*@znI4VRjMIPTDX@5n^Y;Zc z4NLq|b;fG9GincP)e_izas0ya4HF4mjutO-NccP&jmNX`3jjH(GD%=vPb#4U`eCvh z=y)M7r~B=e^5q~O&#~Wh3L*744`u5j#b?XTqKT|w$P3KToYsYfrVrnr8pbUQGvL7quxGW71!TO{^yVKyIL1%uA_h!^KxzHDyFmJ;h>NEN30 z0AB@oBlDbtDPh?gw+ZO^6bL_e7nu+j%Ix99Mk|gBWNKt#1wXk4xieB|epLimz= zE`~1AApk-z`@v!6hVhD||1PNE_zxHGVg4`hfb*};v*Lg2Jp22qV2bO%h&`ZC0CtT1 zt$pqP;v|t~hYu4zDL7$pEfUXZe?t%c`C^BS%|-Z(<#5>3AFB!f2vO3yGe|wP6V_K> zk&%hcfXBT+mc~Bdza;D2PxXLWWC1dQ(c!Q#I5ZY#>H_tR@*OxflL+FCqUG8GKo505d;=g(SHK7Ul#3RA%}CWAQ<$OjEmNnM8pH0eGj3 zHlvYu%&F7)6Hu6^UaG#t(<$K8ZGpDf=#U#C7;J>tgID?OBWrrfMzd6pXCN}_sZ;_A zxjZiBgp0J6LiyTS&}k)d%5M#&*%tQ$!DXHqn9_C??!ilzBqVmq28MfN0>p06*kELCbl>HqbTCZ+DS5_g(|J zbP9JGxBlxolh-&>T*3~Z8-rX??{68*Wd9E|<<<$Gr=aE;~e<<9>J zIPDFYvgEWCRmE~)$S}hz?db3PqAit<2|%I453@sb?$zWK8P?f6xToy#u)lxUvh5cC&OH%+@ybT}_@MD|JRz&D=P&~vdO~$&2B$2Y zg?fulTUKUOPRtDT`h^Ec)g8?SU2~|acCLCCOS0%tJl4{ej=~RQuy>N2j$>*0>?l`o zn)j@KAj6V-m@j2CgZ2#Li_n%uBY`>|OPxG%(dN`^(;>6ZystBufX?XJV4**3r)tu# zTBnSHTL_OgxLrF7zquFGJRSz}G&XHh>UOO2Q^wkv#YtQ593}sV*2zy-g)IlmSY#ki zdd@GEbMe9oy4`V+T=`@dv&CB7&RcGX%yhZz9B%Pv17!4syv9D^oMZ3JmDl*7I%B>S z637-!-fTYq!Jbzb0XczP$B&Cn4&Dr^GC#@#TPQoXg3nPWa<%;O(%O%+mQ)tzH(n&_ zJhbGoN`ffN2S4810@RmJ&*o7p*?Ug-gZS2>r$7VM_KRmS8WhM^inC&g2os2P0$>B- z3q*H7C>?LJ%_jFNePTuc)drpPU=32_{8o2K2dnL-e*VzKWyVxn+btPWFj}(SURv}V z&q+wkLuZ-qDFvFw@@g;o$9;mgm{>JpS4pTz$Nh6!jC$>nWWu5b-maj^L!Q3?+ zlZwAItF9bfbAp+lb((A?pGv#F4`8=)Df?>cG17egCWdI9QCWVPf1$=qcd@t-3}t;q|Hs|o7X{^&7+l={Wk z0Fj(>0Up#Loa_%%X+L#PvY8P>N%GZ>84r%Vbm&cu75U3fVl(r zA{ZaIreB0jImD2y*eWttb5p||-ck3Uq_X%&Aa18iJh2&O&C)z0+_( zqi3B};|$mh>E+Ks6dT?M9JzEf@Qnj*ao|@>E1_gaAy9iRsKG#cP*9~|oTp|Q=EeD^ zPAyi`MMB^qHe4me`@c-L1Ve=91418YUMu`aPShM>W_S%ZD1whojDDf7hpfr%1i=$~ zN}Q#&?`1RtMzLrTWV`rB#zm-)92+%ns<`MH=?(2gHvf5xxTo=`Cg4jm!Cc2a|Gy;J zb!tiG*s~tzSTw98$Cd=VH#kWfl04N(cJ&Ugj5eynE-FGwEN8(tizH{1O$cNy_Dt^~ zu2SMP3eaK3@(aH5A)RkZilK?eXZA4LGf$VHtFFkUtFu)fsh^MEW?D(=jBIR!Ik-Ln zk1LeTV&dAOHuM_4`?IXs@lP34zxPDi^81r~Cee*)dukuiqR_EL;VS_Z+hgLs z8V83R6^e@}rOR;hf)X%gwIZ>9Gp@21oQ?y+hfE`9-){p0YUpIB912#dmrNYwi}lgS za%CJ&dU^&R>N+}n>H-kPIc{(-I6OH=OJ)58n2qXJP{Diunu|Ax#^vN%mEAd&c-= zG00vb9?>+a=~qcOg`Fcx&hD<$nc<3jApDry3c8An0MXJ4K;I;;yCV(ZBpzB=y!Shs zt5&C)&XD_2X+NIajUYLztV%$t|4<#4-*CZ-`{>;rMzpjHk%sfIiRgSH@bk#cIK`b7U#TmfEpx=F5)M1wS@ez zQa8;k$jT-SgG_A>2H4=}LQLUC2+o49v};(-%v;#kb_~+;p6Kz^I&9h%?xgd`E0I2yF*nBsuiBPpJDf=X8gZ|B`=PPTZBq zX`OQxK@{C&-*j@;gdT#PxM0~z<*2l$nC^J?SAHwjQH;o(hmec#I(Wx)ZR;d%vRSu| z1OrpXUU%|M`p46q;5f|a9riran^~$Kl26eON-wse=b%B;ZoH@fud<-+U((WDYN2`) z%#7x`Lo(Yiag_V)vr*xKbLB%Q)9v@oU)Y~=9&pA^yFcuaP15l~5siS9Su$6PsPv*K<#zcbt@b=0}`=+MJDxp;Kruw)aW!GG#ak#Ko)yB{TIVaP#4|M`OL ztfgd&jXu8IHK%K=vxRVe-|>}+8tM2Vlk)m76=CVOch9yj^ z+0}Enx(yWdCrB;T6>OY#3akk9qqo4}=bCIgyyX0ut#RW=e+uy!8q6!WgbdD=n4LuH zZkWC%O+U>?LTM=e?FSi;X)?$MzQdF9%8YRk~B+7`F6BJvB2s0C2=BY zm>q!elfxYz9@45-zV%4l1E%CDDNpG*cK(KPq#VX)1eErpK7(6f?^%bU5ER4-{e1mhm$sF~Y;nt%Pw$+>vKAqxC3#g3w0D*TA z8CQ*=!*9W+rVI4^l;OZbdsw+ziGZ=iyN`Jjez$q}|4E|gReZDTW2YV1yaGBS0>^|& z+kOo||INVYzwJwif=E>~Ozr@iCO?1zcE}F{&KKDb3JnmZ%=?G8?>K$-9i22b z4O+?>jq<-m->=M;Wy2m_lApj1)Js=+|7XQAp#lgla_4_1QN$5oDc?ryEo#E^GcMrr zWsLRirJ|jAUwE;|J;8KuOK#5B>+Z&em>dm!Tl?uHa0{)C`vFz8%k;|cO7+=lsVG_B z0F;ag8|VLhn z>{y|M+?}kx`q_O7C_11f`rVUmZGgU(C()Z`oQ;d~%k_2Zwa6rjP;BTyYNG3}EaU>3 zneX3Ppv@&*<+CL~mQ0=zNYSTreo1@@qzQFhzbR6(|3NRxj!v6Qk-dSO_UIc=7zaT1 zBG^0SgMgL-+;2^?l2#siIQ{&MA%pwSm*DbvAL$o>;1KRUOyC)r=hyl|@+@+W$6@JF zO|yvaBO><~WC=1Tf;ttQE`ZHe(K?tGS;jA__2tXt6wmUf@@?Tyo=wfI){>8`%(9z- z7htKYn$W-HwbI`MIW1hZ;C^5Q-j3{oxt@DJj9!hwD@AHIm3XjXhoT2rYV-7VOUNB-HbH;IbyMccuT~I*fh`Lkm_f`6b-TrVX zE!9bPb6%07azURa1|fAnI=Sb)*Jvd*5|Oq-@&1wfa1=J=;yI$*w3xPQ(~UFNKZLPh zsOs%P!c`&v9AI`T9bp+|syEw1k{VR0u^KtSUmOYFi3G9GvS%~2W;1Da&G%?5uhCQR zZNq;qWoCkZ9(fqe3B9>@eLgZbsNp7zlwi?QYr~YCSOfHGmG?*l29oLL#c$abue|yzj(N7aoL2Xf^1N1uCAws`IH}S+6W% z>xVUC4)ki(of@!YYQl!yIEK{0cR589|H>MZ$@lL~D3U^Eu(85Po8w8^!pd6$2tQJz zg~wz}c6Ziwz}iCO;{Y(le{g*bK8PIY&(ypgvRJ~`I8FZXw@75m?{_3(8DsaL_|spJ zm72XqSB{DdSVI(OhhS%8Q4q8d(dT5PUgB;VjjHmB8*iCkKbk$5y3{Cgu|LSqiNSY# z4P9(c09PeDId?8cG*F!zEaQ$$6qcif}I^;qpr zTjD0r%?tso(a9wxb0l>-yws$aV!{w}sI$U%kKhtsMK$iupB`O}&~V$Ski*-pFc}Mx zU6AaWR0?-K^Xd6j78Xz+BJb?1qJ`_B%8z*WUc8c!6heM;-USSFyTo5riD)eE+#R(D zYqw%k9DPJdP&gf*fl^0meSC}czn9l@c#zDBmEOhD-g>A%L+znrGhQeT-D0-|dB*QK z!u6uWn9Xh-Rme%zC2bV8@=q)cJmB<0PD5-T6_XDx)+}xn3ihAy!FhHqr(7~K-&sq3 zu5B5X0$fKG8ux}1-2ocgD`3!&e8#}>0GTzkDx*`MUaw(E`KJuKoiA53fo5pT|XiYe-Y5rGiUTLp(c*?w~M26L?X5xK7LDpZvwJn z&g-K2a{>9UB3s}?Yqx_MgD=NT8-M?iG#|OVjDjdQ*h>oy_fOMig^wa*2!F7eDj3EA z91&9g2ae_68JCD?J2+wCy8n-8OE2VtYVSNlltms1)4dNk*#k-ALy1mPo5fE)WF{AR zX&7u{PXg4A{R4C1Y0CjjtZbj}ntCb6dj>|EczAM>xUiUkQXPmHBCdYJ*+Xxo3-G{x zD+Q~8#0M>_lP29Z8XF4LrQX2M0eG9=vBPgu@evr+$Y71BJwIUD3&(fkAb<1t9>MRZ zGgN(kziwSPw)5wU;65#&>6uJ0EUK>8PJD@2<0ogOf6Hbv*WOu|pMLY3@a?}>0a|p4 z3Bru`1bm@9L7WlR-8*DRKC&3D&R+CxZTzw3I^xl59?su1hf5u8 zsF;h=wi|5c1?UjaD>GjJ6WPRk^?pPKa2e@JF_xJcfJrU^%L+|!QsVocw@&COTfW0O z?}kCK`7P=;KT0Bp8PWhJ%MAr^vXBfN28r>DKdYJw#bQgiE=`wxnTwo90!7)g6f^@k z;2#&g>iIdRt#?(o1hvs&KiPsB`TD)k0X$El2T(qj zSly&PyIN6!QvI~x6qu5v>ANsr9=5HK@_b46Vhx4^AX8eBI+vUtUha>x=`+{+DjD%j&g|xF>ykJM0An%$c8mY)SasGdCf>Xs7yPy^zq)#cTW__QI$-Ud z#gYM71RN|bs|tU6m?Bk}p85c1gZy#A{VDMIr^~;vF(+ixYqb{e0c~snwSBow<-mNQ zU{IwM2kg1C*1)erE?r&T61eMro>f)+p?ikORHr~6E*+S4lqR~N|IAjv;b+qwkeRPt zp4SL|VzKIMaDkz6`EreojjGjVDtFgNIK7+e>+;e(!oohnE?;tJLihDZX3*#9Dj^7j?#@6_GDENi{wq6kQL<$RP9V?KY@ zz~~5ZkEoF0stYU%jo*zJfS@DJwby8--X30j3RY+d1UM3#aPh{bc^~Uh|NJvLj7Psz zYZPPcfF^{%AwQuPrB-A1{`YMG##UeNZq<$Y7|SzEIM4r*nVGOSQF>^0k=tNmNzzQJ z>>%lg9@YB=jQUn%E(0Qw`eS$j68<4qa>Fmz@7c{u!ux>xu@`vCtZ|Fo7?oHt-gw49w0?;1@B@SF{$vGBq-%nS#M z^%bvo^6jr03=5F4b;!?M12@r!Y7gHie*%}c)^^Jpy%p9QnWigF+sc(4L8%&?QO%>C z7z}E4Mg=_?FFt_w0i8&hxTEli5|`xC@^`VW*dcepcI~@(u(_?*$LXuOBjYG%v1B|e zI1&Z3h5iX4RA9;Ujz9S!`LlwvpJ(>`thyGX23D#}5M_U1FR!o36W9{o2GcP#|8te5 zZVFly!$87T2YPia-3hf#KWowc!w3H1{*<*}!s~S(sx41W^?d#-6(k^Lb{Lpi`jQjk z9VhBp%P;B5OgbIBD|$Gmx$0Ws7ZZN)=?`o9H_tXs;T4_ z5;TYpRJ?7N-gVz$cU_2iK`dc5cWGn%eR$~oH01zT3dFB^U7m$`R0L)(?NT}SL;0sN z0=hUJBor#5^M7*z}i z@RSMHl}_PBB&OTVs>n6kyKd-Ig9j1wN+J?lUi_L-Jtw<$a07uzqQr#-`HHy~7#ysoD=zM_$Xh(-{ybu5y`!=d z4=m4trlwcL4|g&+xbQ2 z#s5itL0x(Bpn{^TS#G*K;L44@>Hi0P^4HFuPC}4dJ;GwIw$0(@#8%YSFl&mcS(c&g zm!f3x8!myt88q+-WrtbnAKFiDM?}0gTFhpy*1W#}uZZtCxN~>M0mkX6D)SL!Ke{32 z<{P!z;LFGSi*}G94cb^bbYu)whikMEeg&bL{*kAw2h=WGz~Z{`d3boZBxpR8m^ER-g&qGJuMfy<0HfOfA9VaG^v{Rw)kF*?&v0LMhBE!>2r*$! z-4_^4kcY)L^#8(3{Fn3pmpI^KJ%}`29V(-2hdgt13^7+3)YBi4e@b)PUZpDud+dxn z8!SLHLC87yVUM@dh5;Bv97o}aUMmgDl}#eQjmZk&3&l?Vr&P&zfjuiX;*YAJ8B$>1 z-f}FYUKxMPi4Mo0z`B@2Y0>|d>1%ScpDYcR=W&O3G9^(W+i{Age=f3h6ECLt;MOe}RF%&B69l?>#=1N*W* zn7vwbyXWJ1hzc9uag5H=hU*m8?=G>@AehxDLWz&S_uacW|IwJwv`bc-kUq&m8HLo4 z4kYm>K8Z!p0D-HU`tRLOGRTY)k|K%2^`;TG?x(B2Pk0(&GLHP5*LM&zbAa~#!9wU) zntDKv1h(+N25KD&Ji2C{rczjpSuhkG;Pc%pG%fncA}%FIakoFA;99;QSY`Xf?44E@ zouDOVwo?#fLl?MS;oKfG{Q-~Qbnq<=(+eVZFE5oP?WO$}TqJ8puKCC(<1HG*(z*wNIlZ-M{TVt@3K@YK9}|6j zYKvR@`e2x)fK<`_Msj>jfb4^Y?jxQi))sn)^UJ;5kY8teQ@#WC!!qo(V*<2b&#fFc zKMjwaZI+xC9Ywe4dNi&U{H$D$$(n*~v;UwLb02Bj!MJZ>w1ks0N>geBihYcE-Z_dx zXQSiCO=AU8Pmb>{YbU3Bzl*#z;Nh;~FuK}j*ePFu)}@$#Q@Zo3E2*EGAF`c{QUuat zev?q%rIVpEcrG4fU$v@s^7H(z{Agr8x3nj#iKjT2@g)k2PeN~(^@HsPJU&&W$om_QLtS#-3nMKZxWHz zm{-I!o^rHo!G0+3n0qb))Xtkspl#1OLzIoENm&f8Hr=6Xbc?ESU{laB@8#5J!s@K^ zts4*G?*fL0UfcNHJjr4cP`R`l&vL&|$_3s@bV@O)Y>Cf)ee&niPGAkghK+H~bSulO z;0~3~=3xZqh9dGnpJ^uu`NqS+f}@qf#A4Tp-+356{?l*Yh+lnsMo#*QB1%G-f5%@; zE>I>cmJ}E6BoI0M)!1XSaMD=HT(OohOa%GBZ=?#(In#W?9zE^23dKUtM3S9$<68?_ z(=;u)nEU>6i({{_B3$hYLadn`&xPr%F8V!yAr(=FcZm{T{Z>YIWAa3!4$e#dvHE z?m>%6&+w#eQ)%$ujW3|@aehBTIZ`dLuE zX3O<-2TK7LW%p8uhDj)joB7JEmYEq>ab4!f@>LEI)%e4letU%B0iLome}8zzrrACd zuYC{vQ#jK_bJfFUZD}as*{Cmvc#172kN!fs-0?uTlA7eThYgpbxJ%l4mG9SCa$41HDV~gs@%iLNta0>N zZa$BT%BU|(d20m+IS%`nchIPdVK79!FFs`!AE(mE`82}8W#U2 z&1OCRr#lm;?#xNlH}IhLRa6X5!JK=+duM@&KCT56$e9iBEHh%H+x?_*%VX6ru!)r; zxY?LzN5rmAs#L24lS)7+SsA^tIFo4g7w1a9 z4&iUfcc!BIrSfH_7AY(0YoJOz3-hL&dOn7G*$YV+Ml)3Q$}O|O^W-&?C6y9&dM`fL zgxIYft?k6D@0w)Us-{!H4T+;}0rK#s*&9tU%av`ev^e;hpxGE(4X)l~5 zBn{tm-}_-eaAFiWJ@%a(G>cSz7Ni?v*_BnqhNN&uyS#?1(=AE5gSR~oz2F9SZ>|z! zD7O@g)-53^78Vv`J51f=J4V;NPB#;U?%>Hv2DW>Li_@$pJ5yK57kSDQ7bFj0%czhP z&Med$XFm4_pVMNCvApB)2)hlPZWut zcyCvmU|^v5Rf&j|#cfw9q*MCwRsO+}N9(VN+mh^Jj|ELK&C~iO=#tk3fdkRmAl)0L zS;H1LDnSdDd*ZvtI&x{UFFRAX?XNX=7NaF&f1S@LTg+RSYsXA7zRP~)4v zvogE89a3A;e#l=o{*L2^s)Z|?elTqriT+SqgICck5Q>KKRS2i#F7;~cDGTB|W%g7> z;)Ci2zN^uCNQs3qv+Ym~Uy!T&%2u<`)*zUsgc9Df&A$*MHSA;HEk=oYL$xGjs0s&J zt?8OTU8r-7NBsSSK>w!h)Zl(tMEsSn&-xb-iY>~{h?Z+6BBfGE*N;P%Ic%D2Q%Ci9 zhyAD|E!<3YVq)r>IQ8p`R?Xf5osG=b-}h#TwhWRuISs8`lgq4&XPnpfhlJW|+~&cp zU{Ubw`VEzNw=BZG`!op6yi~^*80drU1ydcvqDV-E;!Ln{Y3KyP;{HAlEy)#g;H+z8z7Edk zd_G@uRLE!J9=LW?p?zXgB+qN_dUsi}r)XePN{N=jIqX8c+Tg?Yqmh}>We(TYgLP;8 zZK{g(Jtuf^an9IcxZ{KbJa2HSj*By-_DoxWi#|1xoW<<4L}#|yX{g!le$UHNR5XXz z+rBRQAYS3~-9|qy#fOAD&dFw%shEpQ2~135(Oi=0J~=JtS?#%=DpRW_vl2n<^ zqna3rf9!X1zWjs;>e9!2`7%!2mig!%DC|o8z;4CB!osd+k+*3{jp=I!(nZSu)!cP{ zHI;S!j12PVjG#CW6%j!l91s{lQ3yqBm_&l~4x`eAAT4whr3grez|aLk4MajS2}NZ@ zdJsrL3n(CvP(n$;Q1V`U)_VVeXT9Zq*&p^j=j?ON@9uKeJ$tKT;H|i7ir3H^B)we0BsO(*PLRkcB zMYZk0j)3jyf|ch-R`D7RV$ryLV^{5W?atflv;_bH zfm6y_sSZ>nNTgW)c(Lh|Z--*ryMkykptbY=I(%5cUaLP>`Wg<jLDjdrsj1d6(S<9BF}`sip$?hC!f5a!W!0*%t{Qui~&`06B3S z==1-3!*03WGsi5?ZN3%-LVP_3u?KdQc6>##g-u?BBANz9-ZVx9`fewjxrS|HbDK z(kp(s%Gqf4XupUn10Vzf&5Z)XN1xH!AnOT!^OqI&6ufV5+QTbu>YAe5zB$6ehO!jY z_0CW;q=VJe_V@nmCk@Xr#Gn!WK`*xta&HtdNFI;6WTBe%13a3N(#K5)FZ?EXwZz+H z>Z=+&^9Z=!>Z9EcEX`RxeE3j5>%Nr}P$5AYtsu3rm@D=_fWWhVtmPk)NeZQqihAFb zI2jKL0}HKfd`UW7h@|6KlV_@G+goZ+`zOkl##71W_tzb$UG{OZHI@lwmJ|jk4I>B4 z8{T4=T0QU8zQZQnCGsOf?kiP^Y^CUToX1>u$Qf5zr+>wVQh;KAoKILyX@4oKo~)4UB2| z!Hyk%ouHrZ@@XvUx$=T))+zP{0(!V?wW{U14}+7pi}fsK_c$qqZcul+w}7OLp!LwCs4y1ZEsGeiBji@Qcq_;e07{xhDo;! z`qUP`=bmcky{GdV^aY4lQvw{S9MU6fZ)7F`HaCxn4fCX5DSu&uPI-axw{%smpm};h zQ#=?j14b0AkAxE#m9Xtv4(JY}py-?txQ>q52a`Z?e|{c6qC_cr-cNXYUsnZ_Ka+=z zeHO%)yX1rqiZ0vZo}07lbRf;1)1jAoiZhIQBXwAzR}sg`%g%*vDR`2}6M?ImGL9oP zcX(HAAs7wP!8Y}((AkZqL#|@pV{LxD+zwZ9ugTLUIR_gfh*1NlM+wf`19~bsBt1$< zkRT>{GwZ;B(H{+@simSp1pW%4AYxGL^CwHS6BkV$B|&QsOPBeW53%s2>Qu zO}KIo-BfWK$hI0je)JEp5l4N+-Zmhfxt2Ot)c){g44M+14!kxU)l0xq#mq`#gEtJ~ zf9zb#f^nZkJkeLKIwBBPV5J^t(c`c!Q2zB4eY`qs#YPLSf-$H|Ly1Tl7D(iIbO=O0{R4Z$lu5ZOJCSZHu!kqb@tN{akBQq}@sIn(Tc7+% z2zUrzd0e!fIP!#aSctoCVm6>RCKItl&%F?I_v@UfX@q_Hazdu+iZA2Kc$1B& zsVw2pMQa>cjgYc`wEz6Z z{Jwgt$(@2EU;KSlsdSQD<3`$@jG?3O@Vv7VWmR64{q6G8i=OAkE{1vL5KjAYTY_VM zXct~mek=Nm>1TR*nrMFC+brAOq6djOSXQS4$#;cWsqR{PClgEkr~Fou3o%rl4mN_N z)e3ee3Kzs>-kt!XWDSnbC8s*Vyr;lC8HL62mkB1*4B|RE20eU9jB_o^SNX1%pCMS; z!#OIirz&fq)mB%#LO(L3u1$BU?9dec<;Z9_&!$A#9Wk!=IS-6B_+cTwf5~z*x`MUB zc$A|r=-Ou)i?fluhFC9loo1o(XjV&r_t;c*oDo+(&hT!EJyb?4x*+roqjM#wTX}s( zteQJl%s-H-u`1skFlcmTH6sRXvOY7Uxm#Y>^E-3%WC+Ch-GI(WZ>is;#)?~MXB(c5 zn@4K3z$*>bA00QFyq8X6`ma9jw$1yor(*3-dE1O2MRI3&%+EyEHD>ORDA%Mf^F^hr zzg;2DK~3Iod6XB3g>5yt&*qddmRHyAj-jh*x?ZNT8XNF%6e93m?cB9R%i*T1xnMzj zyRANKgz-z7*+)b?t#;%mB?+_nNZHE*>?N27)o%ka(o?u|xnVlD?qn5*i<+^Ip$vm#jDyc{A1$60*ESnZTo}7QguhP}qdn58zr|6NUuK1ziWiZYJ2%UsRJPl+m%a(HiEv1R5h{~n(MiKy zv0=*wQ9p2KB#x*(rH2X}9#AJiE$8uqZCO=&Ibpxm+c5u6n!~@h`%di@xD3&^MssP1 zz4Zyl;Pr~+kuH^hdR&Yqqn@CtN8HTfBZs%I%*|G5U`k0u|C?}X6)$OSnl|8AkrU1) zlK2^BVR=ofgEUOz$oD<{4-LSrJBY_FizoQ#U^#O3mY>#QwAv{<2iQoW)ruZAnDCTp zfbGgweWd2D`*bht$&)7$5`Z~g3p#OaM^D)PhOAonhuFUxBv0mhM{7^*LAP}aJ%8B` z5{UleOFtm@pE}Yhk6c`$Dx7Y|JAHot9Mcnn1w1dSP{0X1UEf@!73PdIldEl3PZj=mM^_KFe%@|Gs*H`#_m3rfsJVM=Y<&D@4KMbww|pBuzw8``oW+&B>8g$d#(6c+UWR*WIQ_hKW_=J7LmaudC|97p z{J#)o;Jf(q^Yg%uaNkW2@B7?&@o{mg>To@ZYbvLvrlzB#W3%WyzyKv*x3bE{V4R7D z)=uHTLiXogUC@W_bIwE>=4x15TVp0N0;qa{tCPTewn7o}{Xi+`;u5t6;xiMKpKnjB zk+hy-&CNAB$E0&!9}+*y7}zOKH$cd>eZTu}5;*1i_| fPay?5F)R=YPVHk4{?sbD-!Jqw;#TdAzn=dWydi@! literal 0 HcmV?d00001 diff --git a/docs/en/images/microservice-sample-backend-ui.png b/docs/en/images/microservice-sample-backend-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..0935a6047a5cdaa09c28db4bd12132a1f00308b3 GIT binary patch literal 45686 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%0DCU^YL)bm$?3 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 LVIoX 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 literal 0 HcmV?d00001 From aaa9568d99da3baaf74305ac512d984238d17b18 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Sun, 17 Feb 2019 19:01:33 +0300 Subject: [PATCH 026/112] Added Public Web Site section --- docs/en/Samples/Microservice-Demo.md | 98 ++++++++++++++++++ ...icroservice-sample-public-product-list.png | Bin 0 -> 28913 bytes 2 files changed, 98 insertions(+) create mode 100644 docs/en/images/microservice-sample-public-product-list.png diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index d365a477f5..ec890c9013 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -220,6 +220,7 @@ These pages are not included in the project itself. Instead, AuthServer project * **RabbitMQ** for messaging to other services. * **Redis** for distributed/shared caching. +* **Elasticsearch** for storing logs. ### Backend Admin Application (BackendAdminApp.Host) @@ -316,8 +317,105 @@ Once you refer these client packages, you can directly inject an application ser Since microservices requires authentication & authorization, each remote service call should contain an Authentication header. This header is obtained from the `access_token` inside the current `HttpContext` for the current user. This is automatically done when you use the `Volo.Abp.Http.Client.IdentityModel` package. `BackendAdminAppHostModule` declares dependencies to this package and to the related `AbpHttpClientIdentityModelModule` class. It is integrated to the HTTP Clients explained above. +#### Other Dependencies + +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + ### Public Web Site (PublicWebSite.Host) +This is a public web site project that has a web blog and product list page. + +#### Authentication + +PublicWebSite can show blog posts and product list without login. If you login, you can also manage blogs. It redirects to the AuthServer for authentication. Once the user enters a correct username & password, the page is redirected to the public web site application again. Authentication configuration is setup in the `PublicWebSiteHostModule` class: + +```charp +context.Services.AddAuthentication(options => +{ + options.DefaultScheme = "Cookies"; + options.DefaultChallengeScheme = "oidc"; +}) +.AddCookie("Cookies", options => +{ + options.Cookie.Expiration = TimeSpan.FromDays(365); + options.ExpireTimeSpan = TimeSpan.FromDays(365); +}) +.AddOpenIdConnect("oidc", options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ClientId = configuration["AuthServer:ClientId"]; + options.ClientSecret = configuration["AuthServer:ClientSecret"]; + options.RequireHttpsMetadata = false; + options.ResponseType = OpenIdConnectResponseType.CodeIdToken; + options.SaveTokens = true; + options.GetClaimsFromUserInfoEndpoint = true; + options.Scope.Add("role"); + options.Scope.Add("email"); + options.Scope.Add("phone"); + options.Scope.Add("PublicWebSiteGateway"); + options.Scope.Add("ProductService"); + options.Scope.Add("BloggingService"); + options.ClaimActions.MapAbpClaimTypes(); +}); +``` + +- It adds "Cookies" authentication as the primary authentication type. +- "oidc" authentication is configured to use the AuthServer application as the authentication server. +- It requires the additional identity scopes *role*, *email* and *phone*. +- It requires the API resource scopes *PublicWebSiteGateway*, *BloggingService* and *ProductService* because it will use these services as APIs. + +IdentityServer client settings are stored inside the `appsettings.json` file: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ClientId": "public-website-client", + "ClientSecret": "1q2w3e*" +} +``` + +#### User Interface + +The PublicWebSite.Host project has a page to list products (`Pages/Products.cshtml`). It also uses the UI from the blogging module. `PublicWebSiteHostModule` adds dependencies to `BloggingWebModule` (*[Volo.Blogging.Web](https://www.nuget.org/packages/Volo.Blogging.Web)* package) for that purpose. + +A screenshot from the Products page: + +![microservice-sample-public-product-list](../images/microservice-sample-public-product-list.png) + +#### Using Microservices + +Publc web site application uses the Blogging and Product microservices for all operations, over the Public Web Site Gateway (PublicWebSiteGateway.Host). + +##### Remote End Point + +`appsettings.json` file contains the `RemoteServices` section to declare the remote service endpoint(s). Each microservice will normally have different endpoints. However, this solution uses the API Gateway pattern to provide a single endpoint for the applications: + +```json +"RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:64897/" + } +} +``` + +`http://localhost:64897/` is the URL of the *PublicWebSiteGateway.Host* project. It knows where are Blogging and Product services are located. + +##### HTTP Clients + +`PublicWebSiteHostModule` class declares dependencies for `BloggingHttpApiClientModule` and `ProductManagementHttpApiClientModule` to be able to use remote HTTP APIs for these services. + +##### Passing the Access Token + +Just like explained in the Backend Admin Application section, Public Web Site project also uses the `AbpHttpClientIdentityModelModule` to pass `access_token` to the calling services for authentication. + +#### Other Dependencies + +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +### Console Client Demo + TODO ## Microservices diff --git a/docs/en/images/microservice-sample-public-product-list.png b/docs/en/images/microservice-sample-public-product-list.png new file mode 100644 index 0000000000000000000000000000000000000000..cf8649bbe576baa75a7f5a1da99183a1c411cec8 GIT binary patch literal 28913 zcmd?QRZt~O&@H-g7@Qg0-C=NdcXxN$xDL+X?z(YzcV~dX-JQYR-4EY?;=JC68|UFh z+>Yvp?&|KyuFBQfxmH%VqPzs+H=J((002=+QdAiL09*gstzf~w&a@38nF0Vr04Y%+ z)nA!s8y>u>r?`Nt!xVEAG_wh2Q(T=OQ7!FKGPv{C;#tp*7N4zD9jn*m>a}WRxT4@B z-b22_HzQ*s2w37ENRgIF zJAg1OF$TgYEHRnjPb$)&IKZFWC=_9E$UtUcSU8mb_Z`kn|C~fMWe2chC+%Q_kKFt1 z6(2Y;F}|Z>e82v8CTk2d3wNI64GV{j3~%+YJbG-DJFw50P7A9|)5(bLE&;_DwH+?@ zr(N;zk2U#jGMgP{!Xrg{IGtV{<+R8KDIQt_71AY}-BW>WVU@3z=jsp~gr+6wWo|Hl zIJV3Wy+3+aBM1iVYm`@`zZtqgM?9qnIsEnyck!cH8!<>64#G>iH4opdWwse}1R@_) zn{>^8*_eP&2`~C-$G5ALQycFXZ!ItvkROx-JUpJIrQZ=Km;W@xU6x;XiP@z6bn1^S z*ENaC3NCi>a7-K_KRj5@c~u&FJ!*4cc!N_Mn5uYytarV2^K zV%dy8MKWO3AY1fXT~F+FGDJ(BBLR#`y8Egakeiyf8+BQUoJSa-oR$DeN&uzk+|(T) zGjUBA$;X&?ad#+HotUt??U+*T<}@~*^vxG0%@;lf7pWP*p-Bhgi>G@V#8v@;IxhhU zFU442kDJ3Ic!uMOjW;FnmJS<#n{#_?A5LU4=znGc2 zJoUf&F4b(x(tWOqXnWOqTC|k2@fDH%4eoINl#(e(7VC+M^2NqL`{(|yeloO5;PZl< zWcO~{Q^9_a6xm78Sp=p8Yz#$cS%Dr4DRl{*ExoPbq`|mgn=A-O2B24RW&9R70ZD;Q*ZJUy$Z9tQzYGg)ONL|7TB zyYsUY*ve7kZ}@^?(+v%{B(1ASD$xG3iA#x@9O-c(t+@D`*i&4woOX*uTBTz#oY?@s zhAGLbh+*u5{Cr-AVgx+8{a>*U-p=R%ZSiHXW^WkBRZbr!|8)&a8L-@CN(T4NZ&D+_ zLg?`5wpYsuNFQ|9jp!lR2xYdCzm1ICqbANcuelFhjgE7DvQKC})N(nv7F5xBmp#QP z&FbmvYs-pT+z51wr>>XeOagZoiI`K?ApQa6T&3KgB*!GBMsN{v5K0ok0ET})q=>*+ylgyr*vZ=6~tF*bSv{2AvlQbsI$ zPz29YPi89<+V!23yG&nnCf4x{4|pu}8}6a%uqhcm5l{-$yoc$3q@1tmDE~2BHL4+C zu^=3`-97oR6rOz%p}&8X3PTHO|I?!FIZ^UfC}Cuk9DO_SAJP&qooWPu0{}5NBjVC` zWzZYZldG13t=C|Z-IirCR9#-I@^VAF@J--3J?qQe4~&zC{{bcfat!sG67_`r{XJkK zD9i>C$w%4DuwX$#H4OCnbkna3KuK6^B9K-;A)l?yHz>bJ$mW+evu9Nr@lGphZ%nII zY_V@L;5Qc|cV-xxcg*`OnHc5W|IqeAm7z99)bXd>$1~#Y2>R-rc35GS@vAK;aDXE+WXfh+G_kIeKKIo@g zC>+4i))S%j+j2=oebtJ>n(r~n@qK>cXIEMtc)%18`!m0oi{S97JP-bzM=KF(H%!K^ z!6L>iMS=MYsQlS)WiHwYuN_ zqBSGpib?7$P^QJ=7WcM(@Lj(vK z@5M&~L+{iawFRF4?Eq~x*9he#T?-@8r4YK4Fgxk1KfaOpsQxfp7|-&$zeE1@H)`xE zH0_#-G*5xc{#$NKetE#Uzf!-acie1z*@(w&adD`rfU8*1p9c}zY5`j7%EiqEX|W*v z_)ms{_U6#Sd{E~_8eE@yIuv&bo|N_vYZ?B%1{^vob6WkUGjT!v{z){F75PRb)IiY9 zn|ts=6A?+(YE8|{zq&3@=#2=Y0W;#J_}vid$a!Uc)1o9luy}qNnneshZ;0HMBKm~l zm`Ui_jpL+*v-x@)0IC%_b$IsGgRQo;nmreN!jGz-Y_FsM)qQYS>?k+(a~%V%w+p#_ z4V2@8N+O1h@3|&{%u4EO>!Y>yJ|4=yNNSk7#xwB{USQd(JK};e6B05nur$JlI0(Be zzU)x*vY==E8{#35O;=Dv_P*L#}>3)hNogu?_ygh}w_~_418v zmCh|OhQp@_1@TVYn*1VW!)CfO6Da<`V~9Pl(eHM3v6XRJb~R!_?Ufo!IJ6}m5?wiY zWqF*2`KYYt*${v*7uwc`Lo@?*ffkxy@5X`f-Mh(BfrqEP*&H@zVjbwubOt`b_dI$& zpO*rNHJQ#z+xT~FB=T$A+HE|lfAO;0qRxlHA07tl>Blt=F%-7FH7(j&;-4}oS2JNY+e029Ur&s6`WID=TTxjohAE+FnkWSWJg2mTRzi!}?FauQi zblrh(r0&d06E3{E@RrW-s|5-ov6XF%<2|aj6OzWRX5r(#kSNrJ?6V$e^)b;#!h*sk z98!g;irW9~VZXxd>lfUUT+l}o-ypDm^Hi@o)|W*^xe-#)087=2DA^vbt6;Pc*~pNb zK)EHx)>mijQ?1hs!udDva`bX)1KnyC1NE*zG11bxrM}y=4c`6j0~%x3{Thf%QI6^( znL$Pvk1(aTjVEmYIuL$8+jUB9yjASZ^i%oVtfpGex>8KmDv0Iwe}HxE9j;4q(Sa23G**qVup?s zOm1qok?#mFQMv+5bO3$1ylUJl`!DxhmA9HElrUO7KHE=q&)&`z_`?Z(PGEikxfEJC zOAb`9W0Y+rgOm}^)#7XlCX}?k3+qsXxxnb#lbodX0stT=S5ZUdJsE8ptK0arw*zWs zl~FU$&tE&Nq^t~EuUBB@_D_2gJRY>urjK4UqRt*f7F7QTJ$c#0DJW@=p4|bdTv!#- z(W~lYQ?Yj^2&61I za=J3|YH0IJEMOip5H%U5V)yEMgYum?5Rdhx%>h%(W8%)#ukEci_1Za`5eEPT9j#~R z0@u9`h#!S89QeBHQ9-i~78dZ|eW0wQw6q+JP#sY}Ql>Lg>H@F;RYb%AYwKYxgeR4S zf63Is05)sYoVUJ-0gW|Vt7`!dMwjtSWihI1CRx8RDbf7()#q7@6koSl&|ktNA0R9x zVZHNy)cF_yt$|>fW>)_iR%8d70g@_r<0_GB!{+Y{N!&KG2~c~N>+|4bB^7f|d7VD6pk-_{Duk_wS`4kJFaG;B1=YQHWz~V?{nf?m5zm98%;gqw4RIs1l=dfrbvs~YYM(H0|eN% zc~hF`zDEmW%Y~vU%$>meAS{5Qw2rJh6%XO6z>>076w}?&*B_mnoSB&khqtdre1V@8^^pzUpvWkJL% zUrbLA=B$Zb?S}e#GTB87;`Yz#w|ecsELMd2>?eWo7qCMSV8h&KHx+FpZMmS6m%`}6 zf@{1il*T#2sN#;RfbBS%Ueyc%^C1#)8juD;5y!QAKk`C&a&Vl5kl6mG61-a>i#W-g zG68|fC2LeRlO#rNjQF##{e#kl_>XfbGVA3@GX0&DW;^k+R4l->fZxB8${X<_h-gDb z2xFFudrX))zfV!;B@YEF8Y5ouN8saGG{yx3WG^;puvih8rlVXN#~Kq>RWpVtnc7S5 zEAt1g1g(@eP8_UgQJ#GNywt&BxmM+GJOQz1%rB@Xg`f;LSC%{3qxw(fI03MHj8Ppu zn1;=_cu9mO*rymPHr&GtvThY#AUC8$)?p@Gm`@gdqE(w+w6d+3( zWWDFS36SB)3Bd&QO~|HL8y^sylP?6NIN8m1q0B|0N$Tf2M9(tK(s~?vGTS0b3B#I_2=P$6oqEtXv#|DR zeSYOLHFl9IiUvNjVuHJlDA|uRzwaxPr!zPD2Wns_umXFdqWR6)QB>Yl4F6{3KJW}Q zpXDS$HWj1Y{bX{8=%PJp$(`>2z*TeOiB6&q4Vi7;RGWvd)z-C!woF^4CbR zAws0w7hA@ji=_A~)VbR?OxR*&%Sv@l`IIhh#I;n6%X+dA)~;vp8sRY|?Ydw%c2?*U z0#;wsC?F6DUGRs#=Ri6n;qyot;P^lAmm~HQllXj(tO^~m;;~`9Tj{%BDz#T20Zf+? zauw4|ubmD0vFSlhiq!O z0AY72$Mod%)ZgxqM;JlmNnijf#(p%jAtc3S5Wf^9V~L|=W}~E@$82Cp)aBb@*fQ^e z5zQ!jb@jV5d^yl7Y>b)~rAJj+s5}s~w$gp*I~qPD!fZ)YRVo;i5Vq@G^aCsPaOAWS zr-&ZT<~3j)(=c$!cRgh24GqQ%#MsaGmN$Z8H)uSFu$aU$G|oh&Q-{t|cR+VuKZ=JWUu=`f|-=kv~osEpe+JG;H_W33>sGLDdr5*-7x3TbsRtZ!nv$(Wyv87SUO#1fl z-h!WugrY%o`k(bu?}dNceHf&W?r&qaUFV7wX267E=f;j9#Z6vlA1djkkPopcvcDg^ z5)~b>m_S%p$OtLPO5*Le2+RyAdcT;zwca0efnstkkLf81i(|4B7H2MyiWu$dkQWRQ z6hclKe{Kd^e7C1aUL6@7KIXv|A_0bLF>UWqFboBXYiJ}T1vXYD1%;u^D{bm(t#u;5 z@}C5^9=EFeA+6v~NeN7{v3HyyP?V7BY4k+SshBRE2abUKjRcB6syM$4`Tf|JG1K~w z`UsD_`{e}%AewmfU5$HQoegYR_iVotfm3U(X$;bAxd~<5ip9(SqlJF1Ej+pRLE}V< z#K-n=Ri~c+cCqZSx!%&7vT*oAeu629P0N*GxT`%s$Wbf@tBz-W4~kIp-v(0&6OZh8 z7R$t--cM73PT%5@!qt2YWN>{)dPD$V2JA4y#lB5-)+W4ZpE?$tyL@U%+UtozM#?JnbC>RxntnN!rEbo}v9WXbb*VK<793D2+v=D8zIJ`%_8@aX z-UEM$ELfn?@&T-$66o^secZTB*;LW_;e5y~(PjPK4mR&|il()H>3t(PyppDzTeKxG z;!c;l;r$S^*yZ(D%w@SUQY^gzR<2CYm?RR`15yM`K-2ko^_Y()_!S6D!_AVZVZ-Is zpa+L9Ey`z&oYx=Qr|alq>W94vQc73EnGSf(`_ldL0XD7WC!S*wih0$W%@!te7&k~C zZww5Wsj0o7bgP+ma=M4i@G;(N*Y8LkbtK@RBqvagL@Z*6;cIa^i(sUJB9Ix^2tX=Q zuOh0_`qdiesTddUX{RiHeLMI<;ZW!XU*Ctgm$AnaC7qP(oppmminCug8OV)-J+xZN z_C}>eNf<6}BHVq16d3FR?%@Mm7T~Ez---;J(tKY!OosDWm{?fbv z$Vv8?^1RAA!(JQmnw$IO#S)H< zmIJ{=J!wa&B_jmoq{b7gQR24`Vay81QwlGxj@2Sl(}{vm829(p-qniGU&i2FA)eG_ zYM#?Fu7C(QhilYh6bPm^Z7+E4~fGtyGh5K)#l;9f(#XXe_p9lopz zp+$8-FBKZBHY!YC>_wso2W<057+i%@h@zyTT&|qUDDADF->!NydIX`o=)JwoV15Y# zzh1cb%z{vaz5g$10RNA2!gE1)cXz{@KZAd;}!fzS2r7d6^tVxC@GCokiIxRdU>1xUfOSqI2&PK6V zoot<}{_?I$LyS%La7h(oK^0>|9^j&Fs%&%`lJKsx6&2H>1ox{ z^%iSqez>##Bf2yvLcqzc1yp!@!NUIzjk|{_KH~jBbo6k)=AkZ8&A|5G0D%!{3bj%F zV?305lwL8R|Ihx_e62(qxjhg;xC$+^aUer>XK(gS?%@lg+lx2Z^jsNjC~*b-cDB53 zu?p?x;AWfm+k6$-0ej)$i~Tat+@Vs&KK3hC_9PZxMqA*mm+81TnZ)IyX zw~T^K!%=lU^o(R}faHBN45v#mM#1~iTcrBo_;cL`@wLIxRd~1P?-LnM@-_&P3R(jz>!x<(`1)>ExcTu+bZbp3+(&56%iD_mJiXhA4jkcM|+ z%{>O3w5gSKhAWMiSX4v;wjVZ^VJuKl8VfC#(3g$w*0aa*yeFI=rsn-Sywy-Omaas~ z`6c~(CfJCKgLsmBOx^p;Cu8=TS|g>&pzm(mSMiaITfVu|V4`GIOL_uqB2DC< zdR;gV;UQkVdi)QpYZegV=RST>YebkA=UpCC0&kAWc2XvRzlkVF7c{iCtXprXT8Kjs zF*WNs!bJ|4G;WwCr8)&Nlg1B`FCbwAd`DOLiAbm!OUw<;xd+476v^*SkKS^1QBkqS zJk7YAU)*CB@L0_|U(yFJ(ci`PzLzKZQ0h6zj-*kQk4W-twg{%&fSKO5849I5Nke_+6y6P>U+5Xc?X|OTu1SZ9i?C=Jq+Hr)TYK zU%a-m?kEDM^NQ;^pI3tSEHIHuW7ix_Ga{P}b;aZ-;BHsDp3iQD?R4@Q)0DL{(O<9n zd~IWM*9i7vH1+M$mWt&Lv;A^8vQ$*GlF&7h&@szN=g_@jZjf5 zHAHMBWc=)-p(ze3b*&f1(loYojCjzYs@>LpEWeG-al!I=HmV2V9CEpWd5PNPS%P9i zn*xWJ>`>dnLE~${tn=azOo`osRo$MRNQnm4c6@$cY258_kY%w`-)JSf}5 z_9#xQfjox4#s1)CovnAZikiyb)!^5$&P#E3mAsuGu8nYhhlek_teJJ{B??e5>_2Q~ zWunKWQ|swjWVdF{E@T<#QLyMDDofO+&OYk8b-@u3AfA6JP$|xowP2*lH?(1!cd0cJ zQ2LT=qK4B_w`&q;(;XX_oj!FjN40t|rnWGkDxLKSZ{jtY&@Tys`MzAJWE#vm0lDKc z)3i^*#1Bh)JbuLaLvDZhTY@JAX{Z+N&*r|=fPvKbx|uR9ymKE3jQ>*$kg7$4q}NnJ zShOv+LONCOrzon&?CevQy%TweWMKZat}B0#P_KSRoWS`vBon)hcRo!u$eY7Ds;%6BFPf*<`EaGWRM^4nRp7s@!Vsoe`Ch#-bu0VXT4r z@mVRCjrGBq_$)j)(7GRZ*d8}_ICl&nvZ{Buz2R!6s5cg*os#kNX3k_$Q2bGA$FCzw zK^42=VcFkG5pJ>+Jb~1BTt=B{H|Nvo4jJ1hvNHmeu}o55ICAsOgSl2-t8v=yKu=G3 zHosU^VvsaL`|cy6qgy~ob4?~8N^yr>Z}`gKu45LH?3~^P{vQ;lUoCSb`&q4am8u8F zwQr`F0_$5-f+KoT z_Ge)!H9JM?J=oe%kmpwV`jyw)qE_VJTYT`|XYy%JSA;F>8x}SXWbu(hlp|MTa%`)Hv2Jl$3QhuSnS$7@b4<5{xbgV1(aj| zm6bkaLhE0fl(!3Nh}r5I_HswV`Al)xber5rI%Nt?yI6KTl#rcx9=4@;VRLblfA+yx zOF!!NQR69I%--3l#B6f)Hf7;aKS;b1R?KwEq$l}QoyY4rf4yXyqC$%@Z%43x#^2ta zI))sZ(5E-36G7y23}90hHvzj0TbJDQoXaz#7*~pb;^>5E)76%Q=kuefuG0@#bgJ>8 z-z*o|^nLtOv>JpV{iZ0!KcrAt*OKBcdcmocUYWB@9C)scH%(Gm8Q{+S9Q@^OA55mE zrkadSH?tn8Z$<+{m73#KGEe<8PJIt@&L6K}v^iBw7WW9zi(AVth66Wi8sO;*((>9( zX*HUKOqVss<3RXhg}3(%#I$1mR-e?Brc;i6M*b5v&DzB(17NUkR4M!>>Uf+@{YmdA zAz^$*X;uG#qsAgzATvx`ch=Q;GB$^+H%w;39&Qr}BQ5*g_@>8XF%p5rvbZ8jD8aOZVaWUj?Ow4S!+NpRg%o{d#3g^#j{5ah!uioVe+@Qfb*37_2|+ zk7`bM75XypzNby|9MHd}J=-O9gh)ETzi_1Ly^ zA-uS{xGA)SqUcy(u@q&xk2F6i_TkJ59nHWA@Pe%0{XT@b;2v|{rhNEGnf-&>Bcy4? z>Kj^;qz+P0TY$b-NLpm~6#{src9JiI{Y4a2`x53q3h<^k&6kKb6UZSzzKw*Zx)$ z+mSpu=XnH;UEeKimwkmTcxtLL+nCw%X@DM+l$pA7E8LeUE35mb;sU@D&p$pnQyWZt zE5~Md)O+eJL-6AB_En#3VX-}Ht7K$1SMub260{OcT#01^yJswb5U}7=Cw95oB zNr}>RU3_9}0w}}6t)Y)ZOGQijzCMW7RFaLTdZ*j-d>6^wO#2vVTyvh`cwU>fSh|3V zslcvb^_nFfXLx*;i-5Db>QLh->u5U9vf5buh-}>uwxm=!Rasqq;jX@fv=P+)IsM|n zhgAL^)b74oMP}Vo|DaCE9w=}YeNKFLi%Vlr8G<-Vbp7XDh4>l{o*Xwm0riAX` zY^wu2aiXVjQr-Zt@(blOEcxTfuGhUJc}3x`e@J@z$)kE00FYbK3VC~(**Q;Gk1%Qh z<|i1Th`h)ZhfG+{Q-s(zdccCb86I;l(Ck)U7XbT8=XnfY!zB;zGy8My4gT~l7XgEv zbmijj$J?r$-6Pu`A={1{U@h53WCH4SV1`jtTs`IaacGoXpLtO@CO_E4IkFVrDK>{) z*_ek=TTypfc!W@1);;JoW^Ae;`}H#0az6DPJ9&zuhMyep2oye_e-^@~lZZ0uXy@MU zx!t<`Q9{ylo2q4i-c?qmH=?erz3K!80F)McTl*!pe|tdvQ50^qV(VdV41KCDQTSnv z7y8~cpviX?b?5GF;F}IgUhyQx_;_F)GL&XuU6GeQfG}TYDpb%63pO_Uh~p z-d(TG6zzcogB|^8xt&jZhWxC%c43i?v9anKneuw#_IB1YU1ZfrrYD{`p zhbFu{+uTW=JHS;}+~wVH531d`GCF3atS03O>mt+gX(&Cis1o}f_3z)Zdc+%sYGtJs z<^j3hWAwkrFpAYn?o)H_{;E*+bUwwYw6@!di`SclzXjc`ljVt&M&X;4eE7HZ_k8$H z9M#DrrnI<=$Uf@}GT!z2$$QLa(4M2y-zIZI7O;_VP=esejH&3I6wmmilsrXRSo$yTlM&BhmnePgd(Ptv*= zde2+?eS?@M4JB+H=`pok1rWD5#xIE?q1qD$Gdo=my7V?hC;Vni0vwl)zkGU* zk9W_D5M6(;ICh)uAuq@VG?(Npy1ll9rMgi%T3(1C?%+}4auGxe&_6HgPbWZ%&!(?? zN)`5njr>&EAY3<>;`acEnM$3jJA$V7t)kAUD=8fWqs`goeJa6;>$Ps4TIWkOM!`Y~ z`kel^qJk2S2?Nif6H0BOYlX25Xl*5P^HUpI{OY-fv#g8i$uS3B{}s(-V<;vYks zTqoO>3wvN(T@&hFgqGKfvANuT(n%w`Ty`#MGm8!AwB^$d->CfrN+AQt)|9R;CwhGd z*Z5zsx`A)YJ$7UcYdleeG8zXHNnm6{XUqS3-)D&$o`LvUm=!+WwId!MGY4KlN{6Z? z_m4DSuqo*Sr z`o&vOM(DT2t0Y_NChg{TSg6D*Xe!%dBxM!G)0gT(QiTQOe+@*T_ z_^9T;MiM>c@;$$TvTA1{Dm4CLOl}d5;W((N-0hvEP+GM3|3^?5DT(R%%;c9wealtH zaP+uA6fz$G-G=J)MApq07RmVJBXbPGdxEBTLj|*h3M81b_ixDswvQ8gsRoa{!9D&M zuoGu|P!1#WzIy~ktH0U%6_1q<>IBX@Uskzxv_$VZDjM8;?<0h9<_Ag6ng%X?(GHKi z2~JPI^LLBWbmZw5taCQ|J*eQ{DM-!iIA1ll``8KuP!a#~~Dn5%q*P|_cdgNXJz$kKo(#?Eg z18;H_cFkgwhe(ROiEz}DUq$n2s7&MxX6su;K30wYz!Xy-WADi{gdTA zZqEiYEI2?(r+n70J+zYD#I~BD)$*IiX*pLZP=5MeQwW@F!H$2rzuNkipdvxT>p-=7 zwgCO5%aOPqa!jb73cLZ|%i}_UxmYk_N)9Kh{>LAaZV>RN->pHs%%f<-`SBfW&R3(@ zCp&-esv^=myu?=NTb+~F{i?v)&apujEGv^me3U~xtV3;`OFQ0n^WBafY+m^BSN}Gu zYmsv!+l`PGJeyf(_BC^|1u?Z~#PHWoHP$(|;4lQu?1OwYJ@QlJiNtj*BD7)sEm za8@HX?KvuI+-|p4-BDHX3-@(LYG9-GY9Jss`EPQx9!r3x0kxyny-;zniFgbPNBnnS z9fN+@>UX5g7M;7d#e3(Lz*(m;fuBf#FN&<}IF_Kr@_u{EJ}}r zgu0|!z-9Rfjzt2edDl&bsPf#2Xm~RV*z~{vPto$o&)+xNOv@lXKIZ-LPu}5bx1OZS zZypjxYi1{FZUgRbUoEU8r4A^D1+ofyx!;w=BQGVugA>O)U!3Fu z6#DbU18O&DPgAxDFz6Us`A|%@vLdRts3AyrJ-K>N@pT;a+8d~|2bKI_T$M#)YJk0w zu^*TZ+7#Y$vXc`y8Qyea6Nz*j1F_*Z84Oxs)<3+RqOTt+JNHlilC5370$fxPS72*L zW$vK=WfGt~JL-!!AG8LU+M0BP>)5fqEA9t*OuA!PN~+J{8UFl|&3af@k#)Y4)dq2Q zfCWgKKY^0jeE_2@`TE_zZjSa&Bw{!9ySn=%u>k%Ue)DD_OFUd_V!-uRp^yH^LnOM9 zBK`LE1SZ^ED#QI{HsV|k$7cec=L+suEj zAq$V?;g^qC8_)N5odgOC+UHk&+=B;Z&FyVLZH&;HOcoDjrLliHw5QDkiNPQgj(xAm zZfhRd_i^pr*TVTKo{ALUvU(U{W%A*O%?eT8htrsRt;_*QU3bm?Bz$K->8MUsQbO9z zM1%ohBeCkV{<6~d<@dXk;bayMWgTSs%~nJ)>D-wTvYiRszyEKu|I9L#WY&AkZFls| z%Xt;VpM|VxLHtWt&9X29+Dq1+`FTonWQ%y9I)k|>S%ZtAmH^GOTMbCY9c@fice@`4&(bbJNJt7OT-vjbO1mNM> z8Bq#C12W0=%9;pl$!reukU>|s(Nyasqp`gFI6GIe0su6^2z?~)>>iBITb*T~MVn9HeN&6g<_D%J zCg;GkC$?;b!@dA(f9Yr|qdM&RCVz-xc6Tg_l0I^&3;JcDET#Mi5-K=8IJRA2} zD;eZx1Ry4Y-RK?)Kg@+*yCkf2UROTf%$X~smLd7PML`2rwuv2G?xk3=mJg>~6DvG# zuCUE>d>Qpvs17lI;PLs^mzTGX+=soKc0uVaLHu&GL|msKXxeuIy{+wHT4>uu$6IaAWmy;7F|exII21tg z;IKRefvf7AF1F^Ert#sR_b}&@w1=xx%rcv04H|?v&!A+*MJtZhx_N(eI^jH^BxqW) z;XcVVazfl$;&Eg^(*d_r)+YG7so# z0$^fu*z^A;PV}(#YVs|I9F~$jP*OoJ!V#322s7Cc#D~Z&=~004rx~RL(7T#2+_I?X z*yEiDx0}mz(a;ooh(i0n1q6IG--rm?syGb1XS`njN_fDt*~hQQ zx9x;7i_>-4#)9~io^1uyH-npgyS)^!qxN%N!{n2OZR?R?bidUHu%og`S4^hada3Cx z-$m$C-+aaFe_qdnd4J=ny#izEN=^m%by-N8tD?Xx&98=Ul~`14N3ahBZL z#>!!GIXq^-AgoHmxSVI5Ybc$DT^%z!LT^ebJ7!sm{46^zr0XGP2(E0aF8oY9fNqg+C*I|J?pW}ss{3}k!;Ur3Ax!MjTYu~{Z-NHTKyaFdV=mwPDPlvhqm%v4q(xU>=QE4Tkz?sH>{y?a2iF#*Yyc!C>1`ZlvdOn)=2Up(#At&)| zs?KJM+03&Et zmbyhPd)wI_U2se$!_sVWbp!K(TuzRM!FYg`O?=7fmjF!$162YJIF}mkqPcb?xUdlm zay4&TZY+9_QtddM^pWSCt*#1h^&$O!XHkPS_2Fwo`nW<0yU-#+P$x$wm)@@pJL42r z1gYv%nGXg~UGMp>OwM9g3}1nkAAc{2Hb6mkrO)bD=51t~3L&KQu{J~{9Pp^yvF)rd zq?pDsVNQ=rs^wvynAl%mfN8IP^Ce7#nO&pd0MPinzyS!LroL)-vtex*i`arxJAK~v zRon3djh(OV9lqyP-qMOA5Z}I#x%vAK^jr9EAX)eHpV?cv>zrgr05Ue4P#kHd4oM#~ zGeGyEG8pLZk-jk+0L^C~aMQEEmIVjc*|C))X)x98`M|4emb2l@`rkLcBI6oUEi`78 zli@dOKoLd&ps~_e&mnM1tpP#iW?*r1x6XN1DV@YqlRbBt8}OA8B3cx$J$eF;B}XG1bi)f9FBcN zNZ@Wb&3!CL^t${$kTg;9ZeMbOczVybhyJ8Vcf#Fnu9y;sB2er1m`^^o%rbTmIL>ab zIc1OD^`g_-?(iNV{cwU9mvtXP$^+}+!9{dYng0!tkO2AX;ero+xg)#mnG5i~@Y>?4 zhSS6;oRat@9>8DX0RVR>)(VDXua6 zi~nvszOCt`o#YK^iq5P2OQ5p>j*hSqet z(=5}vbQ0{7itL#tC#FD(Q&4nst^4O(XDh$YG5fPg@%QrhnF|5FgZ4mTobvTdb0<5@ z{olk|<8ajewYIkDnsVSl5;hsxfCk-dtJ87k(r3(6I$MLtS9;~YALbZ=a^Z6V<@{zj zQx*A9goacdrE;rWAijzs&6v~Ghlei~+2e4HeTBEPTAm^?>`Qs9R8R%0=B|(xVL^zj z^W*3|L+EFHgEABVU4;das_WP}(zX+G|2Vv1`|O_TAsOZu<|jz4_$cMmg!?vm6bpt{ zxaqU5;JR~Y<6!UL+OD){Lla7p+mF@XXC9kv^VFM4&#Cb|PF=m>cX?A4LDFXT(a;bP zC%{sKM&PVd17YavLwa+H7xxv{cCjs4x>E^9agjs%Qpc?eCEB>MVSAi=J={JL>Q3^}r7*j4WDrS&cA;2^ z1Y9qxkLrM(#Rz`e?7;lIAA)~7a(UG3+}(HpfVdZ6Z8k?NyZroepOvd$OUL?e4^`h6e}rCGZW&n>6OZL5*; z>8%-)DF3JFAA!`6zl;cegUy-OuWw%QkAyvVzib+i@kPm`+6yq)-N+CzF152-Pxg}a zGVCJ|SB?g%vib&TYYgUYc)gz%gKht)0=73jMKC=W^m)ZI9wpiAl6BiEe;IC#`)LRkDykCp5SME1`kv}(N@*srhl;@mA{QM?Nqj{4Q~ zJ6)ePlA6B6pPLhc)4AyB*f`cy%VxX!@KqFn99oo(^;rN4Zf~y6RJlM~^=^QlH}bWl zAtWZKE%~2C-(LSW*MWooyD(Sf2GPnkN{{ieJW~>X1T_e>8}jhDxoR5N?cyc znf^MIj+*}*5#Pnt)lYICyyz>-6qKu9P0(RIAhVX=gL*i(;dne!@y(eJQq%|%O0W3h zY)y2VdsH+1PPB|qUR!1qrYardAj?Jj&myM3H&DuQp>7e6l}pM^fMYXjHHlci{z3E6 zP^f$5@qbi#&{q7>>ZLF&0YI$!7>5Z~eLC02rr`{Frg@o1sE`u8?5GaHEg!-e`~Fk*|tZQ634HvZQX+eKxF;K zS6)F*`R=^-siuHF;l{g6)9`q@xuO*h=Za2;2Gte9;tW{lHu9#e4>-uxYgIjB<06&sUSu<3&Sz;@Tk3BgN zi7w)*D7569e=BgAs4I;JyYA9WG_s9Ydz!PWJZz0^^A47fZ7nnV6sFgKD6}S~jrZPI zW^w=kOM7J%A>AIP$(h;eaW+z5?DF#6dDQ|0pt14w^?(O~^}k7VozUfDs1>;8zaQYN zUu{h+J5vj`!^@S@-&?B99Vm#g2EluembDp493pYdEs_CodF+wwB(J)cZ3~K}^xZ;{ z)IQ+9Yyq)%kO0sWVis@>yUCNFzY4-NIX+ECj;esk(#$$i^QHshroRUOdJI#^;zt}x zu^`&ptbz)WS$w~r?Vz#s+y!kM^HYL)xiSw|?*P;hm%;cr_l5iW`LiJ&d_<|@ioj8v z1C`y*lC%>ng7ssHH_Z1f5bJ0et|HT{x<6> zHF!as~8w$dHepZ3(4!h4jROGX#*Z%*%{iq_>5j(lSP+(nzL0e=7bdf zK9%=qk2Y0R#`l??i7V{*r;UA!NQuYlvfkOCsYaIRFwKV7_)MJq*j)G@F@VGUt2=*D zV9TmZ1azu0Sz$R*K^hZ6wsAeKPI`yimpiWaKQ?faZRD}Yb415EenuI^n%&>Cp>~8M zx(pG9R~Vstb_0L1_%85nSrruQAC2($bQgzc8yFbm++UL6Cv0rDzJNF{u?KNNkUFw| z+*qr?-~V_SpIu;N?;u%utJER&ybOn^NrS4!}@2mx?IbgqlLpw`r+}niHPm>qJ8_z{5;xs z4?94RFHBnZKY8CbfxJU?q+_-Fx9I@X3WybGD>hs@CEvAI>%5@;oxkEXB|UWaQDA5) zDu7&)tG<2kbSb~KhA9{$BNBk%|Elh*qT-0UH46z4G!R^aI|O&PV8I&q;L^BzaEIXT z?(P~axVuAeCwP$Q-2cv+S@V2fW_7Q6s9JUU)TusoKG}Phj123C8)I26UU{B4aNBL# zrlgfSvAkt&)*+Hv-;oDW5>IWX`hRhMf!)RtpD|k=Lh~u){G`T|{YBS`mpkTG_q>pqf9tex&U;AQ? z5?zWZ!y%l#Q3nWn$ETsf5)s|GrDY~*jJWu-2<~zC&Ch9CqYLqIlwwkVR8^Pt;(i%h zWXb;)j{1|qeed)b`l3gV>s(Y+s0Q)b`!y>LOAnm*hN5CT<%RIB4^PQd_|HOoTyYb$ zDgFfta;m@gIBw))##Ko}N&3Z152vUI+VV2eTF?gMRf+tb(FTB*-%@ZL}iF!fo(KS#upl_qkU)FjLYTWySZ*CRaCv7C>I16^3% zY-vsi$HKd-)SooL_lBC|=+GhA-f%PPP^JV~(?niv*7{+Hu+`9)9UaJ_v1|OB+d^!F zx&bj@5mm4eIC^r%Xjd-+74W5E618+RpkW>Bdm*SRD;p`NAg@1dvpR-Q_?svLeb&rQ z%z2B>(kgfYSrs^3R7d?pN*m0$F;fzWQ)(eSpCiA34j1s4eqaT9vRNADV`x@XAmPEI ziIz1a=vBvTS^x7MmoZZS8psL1elM&Oi8on#rT2GY571`vXX{1=P&(bz)bSl0SfN0F zuQ@HkT5ZIVrXo%kfWhUzKr)iNRYHv*{?9IA~3&zPu3mQ zeGL%JkPlVj^2@i&DtHF!aTYR)%uP?yRA^y(g_c^6yOkl)ukEj?lfPK4$}B&8I+)JK zMKr29alt*Id!JLdFr{P@rw`{BtjE7<(Mc={>lc$94$xrjfpUUvnh0~iuH0$eXIlUM zug5Sq1ZYGU)%sqN$?2?~_%1)tE%WL_d=XO8t``^Y#~p~vsv+yf6e%9Ei_Wq81hitm&0FwpjDz5%Z8Fg)H6v&Bq0A z_1Q1cXfe=lqkqryrjS04$wU9m)3i`Ar}(2FG$QFnn}cF>Wb{U(r@oH}6oAaiw%TE@ zD2h=|Xw4Kvh*$T~$>G+1uEJ zkM&kw%d9y9M>2aZ(KEZj5d^!|qF*R99pt$v!0{wOYK}{Ab$B;J4Ev}a9+S?dQhcR3 zFP^W-79u*IUp(m}=ZJoc50OSDm}$5@o{d#io#T%pk{EUm<mjtyjQ5^*MK-g`;`N zF}I;XJH43uKM<`k>Wr$cP>H~yBKV&|T{V8wdGBEPXk|C*4Y9^$uA>-drPA;qSZ@Ai z%zB^1TdSY5`H)sBfD3ldu4{VG%@2YKSC^J|MUi8QO}PGBQ2#yetgfO=Dg4zz8U22_ zT3K(lw`WQ`1)P@9^_>?)Nwv!(8R&MBb`()klCqDE2V5f|LcUtE-zc)QcI?}fH^I}U zVze~A?)zVQiY%P_LqZ4(fKR*KcvT_F34@HA{Ob5!zlA!TIrCe#y(0=w@u-B z`iMW7tFs;At6`iavz^|@2+{(=Tft#g*=12#?IXHMH>2%6`DUGK>p@kUcb@^k^3bDr z?^R&Tta@!tA9Lj63v;2d&$o`Ke*wqmwf7j3ACnk3VuQmA%FWhryw9LM&041Cy;MhnQ?ayEjB`&QUn%r~J>HhYM^L=@<2j1(5s+_Qtjek3PycAVGUw^u@H z9KX>6h1d5mix*nh#<0K#LUzq{imf3j+hniP`Xe_TzvEvyTlOz`aLjUGHb@M(iVA&& zKTI%QV~ea=wd(N6o50&pJW>!#1_oQKUzn`24cv)JnjoC-N-TQ(;(Nlj<*E71z zDP30WD<>_kS>?%K0FAbrrgv@+B?v&z&Ywxz%ik-Bd=BHLMyl5|RhfMHX2*P1NfGD2 zCdR^Yv%t-298@S^dpSg4i%&iM7hu5dw~MT(R+U!p(4o!c$G12sI5$@7#L0P%4D__S zHNg^6Gb4N&`-|@x5~RFp9mha^3##mE`E;*#&svAJV#jjOKe)Y~d%4A}e-U=oW+Q^| z;<_=e=;G>V#px9w3EyA^72H8VP3bbf<8Bm;a(8J*P+u?JJ}~CHzvEMcwnKfp4>u7e zprV-n{%4+)2{7@s^R}2ilDF|urGUr?GU0+MK3QEn4JgG+q1|1c4n?<>tp4US9MDMH zc^>(GE;i_uouHD3GAOlYV$f?sfZQW=IJY06=d~lw=>`{LF)8!GC?vKQbxY8t>(A(E zRX%aO}D(Z`SRg6CBt-@n7LtP>7A2K;>>L0$3kFpJ%n^6k3u zdli&4&4|6Y3-O}we40Jw2~oEp@MM!t=&eGyy13h<5uhfJ*TJDE0Y_4wN^*u-p{xqIZ!Qd1QvlEwY#5?@+$Hc`U0Drw3)Z`}%1(=B;RH?7=hgd=WqEiX3rX_O``RWt zK~+v(9(yd^@#Zr3L6@&cE^R3q;?T`V?L`^9V#)KNl>Zv$S1DRw`;=@2pPN|;{|>oG zbhqA272vFTIaGAMHpe#%OL>;m@j8icSmmPfzPUv2Nd}#T>zBw0q>GhER;3SfxFFmg zp(wsI-~(OfvoX+IF+{%>qtposq&;I)o7GZ}2Y=RrH#OWC?WM}9>GTwBCg`NB%49INJ9CsG zI@DB&6UHbAZ?yFpIBan;B(0Ugr64*hCNSdF`Dh+nsT0-cyxGW8{f@_aF4p3%8T_5e zbSkLn#1E3SvGa7}E=T7r;!%$!AS4(xj=ZEY7tN`v6Oqc<6C_s1cBTVuN-|Q(*Xk!@ zHo*gFHgUvX-xU7N)fm!lQKsyhk}QTJy^|DOzXkmes`J0SI5u0)>x=Y=2*tDg7bozn zJW4p2XXf#uUM{O^pImWJ6DJDlbk|`HF1nPfd<{CeosVeLap*Foosan}hu@3n@{LFw zzTBY|DlboOB3+d3Jh1e+IBEKN+tOIrRNAy$X8!HqGm0^0^em(ez6ole50Gj8+g)l( zdL!tbe2_4FR{3{`>4WGS61OrWHxr}x2c#XE?@rB`BrUC$oX&On;F?q=st!Y?7KykUVHG&HeJ6=aWdY zA_$jzj~(n#Psc{)?XUK>K>qDszN@5x=Kg7eW|JxBv#M>9$$&gD5q9#M)^S{zxXD!1 zK%F~dVW;8q?hnHa*_l9Z4hN_efUX2kI`KwPZZ|V97{R>P|J!R?|tkd24^tSzj^W=!UMY zPC=Dr30UlX4&1Q99U1@3@`MXy@iW@gNhCd^L<}OlYC`v{@`m>2u@q63!+R&XVkAGh zw=6?O8NT_uA;F}~t?%yWJKD_{lCo4SBK%seduG57uJ#KoRdia0RV-oV@nGG(mZ6)Q z_8uS{@Ov#7VN;I~JF53v`@2c$4)R4Js_;KX)6Xv9p%NyQcBVC^MWysRL(%_!Zjpvq zFDjF_e>|(V?f|Z;O|f*v!)jd^KY-)HiF__AW5Qq>7iMuExO9znvOE9dT|bK+jx;P4 z(Q7m)hqiM+PA!?RKZ!&N3qY=ml|azx(>p{LaWLs1KH#VM;G=ZJNrIRXc#e^X9VQcT z7nBY|<7O|?mCHvD_hxr$^W#fK>-5P$Z7V4~8;8&g!S#I%0l%qOsnuL9L7_xPyEGd( z8#L#G2*gsOLv!=A002l&gN5G>3}v*ved8>+FfNDQp#0V3X$PuzQ}@B?`a6BcOy1f@ z$1xv$F0ggR{!D==S*%}aK9PMSeO#zzZ=owQq)r5}AoT3yakN|{_pEns7y*Xfw?I`* z2jiP7NT+@1s}hSQ4WVxIJenH5fV7;zg;M32B`tQm^{7v1__=S{A2xiSYsO!t4m%g7 z-!eI+RWl-;%-Bj#Uq9acUO2Md0bk|L44u)>3MysSyC5VI)kLXRuhM#g^?BJSa^)aT zl#}{JWaE{na8eufg+=-VnZi12eVX{=7d8dWN!gU1LPxJfy>jzX`N{;9AN*nCzb9m= z3AG)K>Ec(c9w|jVsfbERiBowaq;ECS^L;dG#zUk{+8>5~)3SSF_D2@XNZHUU3V{kH zie}c6bS+E0pO_dArc%530^t<0ACtriC%;zO-r)wuVn~gQ*CQ{*IooY7W-pl9X6|F9 zDwVFz7}tuAmj)VP6?N5zvK4P__q^MR2n0Tje&N3^&_3M3>pwFvp2Gu#X)u9-?TBNn zSHsm2-F#nZZI+(8AgV^?uQog138GME_a8q-b2vKH1!?^dhXp>3bZfr@!6)Hu|KexK zw)L5`xa6<@p zgpt)HGt22QnInrtJv%z9C==eiPD9k?b*51=9$l>SwrXy^BNiql)fp-_vpr>f34Hi@ za^Hcb`^yvpi7_}eafa4-=t^L_Qs>;NFe4+vjLwhG8dmp069N>r>Z|ktKT(D@G)$`a zl;S-MAC7Hk2$3N6J7|#(>}SToQVS@JibB~YO&plXjy50Gzt-|Q7ic>X()Kw}V@bJl z@e(*u`{03NNYgy>OOXFO#9&r(nz`7vG|Qq+W9RBmndyua1b6h*7((;=sJ$~Vna*$B zF(FfW?}Vh?y%ewP!YR9Se7vqU;;yHPl0b~T@MMyls3yimP{vaNKkzgvVccx{=RLXR z{PXo9aer=uA`M`7GM{}JyVGNCmX(y40BGFLk{->gA{%UA-&n?Q(U+g zcW}C0+WsNUL+Jp-3U#J)--m#L*2j2!%0z67(RiWeUapFvFk77$p;WW;FTY zm#TJvdf%@tCcuULR(RRK2M?Ibcl&A5iN>b{ygrm;2s4!{`H@*AhSYc7Pqs2T86OxL zqTit$+bI1)#3)u+eobh1n#Dlt7z|M?=k<7mAD&xWQJlz z(an#}nI5Wz%iq7hiy52a#~gU9HTU6@AX=tKybi3Tuo&J{^f4w28OZVyUztV` zxgf;|ba;GaLB@_^F;%d4)W+(-6*9vQz!mll&|I7Z1libpQ6!uzp2LlDD+ zp^KtjDp0|g0KiY_N2`@F<<+=5pzXUc15;Ta6m_PkqfEji(`Dy`Ko4$r@bkZ}?e%Gpl zguAx)_=cUpz>$&=yWM$B0Femb6Usmz^$eP%Mv-g)-B=ro~V%KK)W&CfazqBP2bh-tMlHE&2y_UK3sgQ4wuLI+G5=Mk_N^^ zm;#ISEN?ww8PVK0H!DtVG^65qtU0Xy>pD5yCy1np1lLBzl^qCu$!HgJ76mshSBEW} zanWCtHQ?_UihexR3RA!$#vje(MnU4Wl-zlwA)We+v~GXZKT*imVXh!E;O+R=~LUeV;>+NF5*r;9X7_|~O@_L$MblozOPWM_Hk5;i3@9faCSq{Q zhp1LaA1Wudz+1@Y(_$*5A^h9EckArBj*GK(YTRrZY_phUQq2n}1uWR6emW_2W639S zMm0+?#ndH8FNR|uxI7`mgrMbEl)%xKG23Vs&p1nCs$^3Fad=r?CFDQMrFrr2U6||d zV@3`sYBr6&Z|^sK5~Zm5YRvzzA!l8!*`-g#C7Ci}q4_GzG{(;|la-Eb4UlaOJ=B?Z z)jp4$ci$sqQa#9g>9||AvWs(DE3N81ksZ{nvkigj{aoa&lV#!fuZAeVmLToVfNP4g0$w+Iw!D2C=E8}X z%`Mwy%!Tm($VZrK0W#@VdzQio`72-UKG zjo%&DRrn|^-ncc>o@_ZsM^9e~*QTlYJ1`1MtZB1_x~pOA*8MIivs*6)CEcs;qymPE zqNATS={{cF90^=@>uBvk2B!;3ML#0?;QTlny3X~Or>r;QRnJ#mEElS>SMx|c_~g9K zYqupy-V=etI8yi$ zv^HxA1BO|@3-&YP3Krp?HQQ0f@1fcJxuX|XNDF4>p+3bcBh%^LBjv|M4V|D>CoM?s4}geVIAIT6v~OL&B@{O%Z;!qe}a#jkmqdbn)^{(-B+fZnN-KGO$%SavT0wk#mtm%QA-sv2MX%Q zCutJXj=8(qs@Tk1>vn!a+gJ&x{NNpp8bO`v%z{s|MOBHMkW&O5iwhuk{mPa#`p)9+5L z+fZX(w}K36bW3K9R1}im@3GWl7_^(}Ps@4iwP6@U1W+3t700va>Y8jj$}V*tjQq~I z(jm(TnI0VbH7e@4Ub_2Ta)SvvU$#f(dgF{rXMJyf`M+f*eD>KHNta!v-uapru*)VO zDqwv30YWrbpGAeF);+qW>nMzV`~#K2p1d|f`D~fPJ+|E8x2maqs1IyCos~_uiINCH zKh#m@w-Q?n@gRze0=&A8WMp9_*w$x9W%VtYDY3JM-0o1@cAs7Cip0R%-spgE@z>0p zrt_e-Ir9qy{x?` z^W~uGvo-ZCeHuDDefNzZAaOAldFawK^>9rI2w!bSg$)P{dRL$D`gv^&oY_K4EZk)? zbxl<(sp(anq^|YVYC5a!CLifd$@B`)Dl#xurdfS0Mx(uC7BTGFu2H*SEYANGli7Lm zoUI#Dy-{qleb(Pn-spi+#qe7QI=s*%W}h#IlFQvSEEx=y({dvcf8qm#f0L&5tK>i; zPT=<|niWTp7(fH8!5im$p(RFQtvVo$%60=2K`(P(8bM#Bk<4cK7fE#px9LqVsrE=W z(HFR<9l@%%Xe(_1XH3Ps4}Vq6cfF7i=$_~ z4<+^nq71C8@~t9!RVy6ccjId?c+L;ik;b^<$UPT*Kx9n5EEn-TR{*K4Eq!xo^p56v zY$oWW{_{>Y4HobeO57DIHdnZ=>^@V+JO;9lc4WaIbO2ws+r>qDr*Y`RLRr=Ly9T zK30ek=QqXc2h5J6djQURW6Q8ok`Q95vOB z)653h^-cy2DZnBx-POlxZoDA3S+y9oQkMqPue94Ge8D>Ke$fh1XrtwfK)&dA*dsvL zWOV zKlT;V?L9D1I&9YKdyh;F_)$;NL4C5KjIYHIJpT4*;rfIC;s3iGOM{FJY$w<6`ef_G z`O!&eyanJsplw5(H#?$Cs4YFnx#5p5=ZAaSvRA>Rg}(9vthL zyH3yA?IxR)yt}Mv^D~M_gd{eJh&s&s4UV#xRJuS0AC?B zIzdffu9_Zg)rTUtW{t{fMP6_)*0I=gT-fu!b*I@uBSpv8B?RK=~ z*!<5h)_&Pa$ObQvw<$#6FwcqjZccMns|k^%qoV9V_(T3i6r5?UCuMFR(Z5Gh4N3!b zq*H~*loJ|0Q-<`sEY1AELE7H)mkTlNdkUS5x@qmq(SDMjX>muSsDW|mRfdX_RVBU> zWrH2$2671t|BJ{F*j!Nj5=LLW+pS(tl$6m2dq(}Cjx&GIDCE6k~`|0Q*jJcRoFp$+nJk7 z2XuDm^SBOXZ{|a6wx#OSadil-B+O1kkkDE^tdWt{yN%u+FI#~8qG|`R*H>D$9SIWO zPAZFl?m`i$^&;YqrfXZK1yCo+>HF^6o-j)!yYjZQ7VW+2A=VQ)7%~5Gs4?&%unf04 ztNe974K@ZZO16K~g^0(SbZ?!};zbe$a>1DJx58Mw-c#?lazUPbab#wHf+Mv==gI_y z5(6Lw1OCbz*xj#;_4lP^K8pG<)-pj(q0-?r)G=)dhMFTS*A>vBe?#i&*YG^3{EtWi zBn~JS*FdBt6|---tUpSS+iEp91M8DQ%lwW9DfuO)_Ia*J)@&)Vz9`j(KKyunc0?+f z`1rx*xNPjf$BNUgSmBlo^rzu;Ya_q0??7H%9^2{ohP1=WjsI#+2XjvrZ_y3@paWx$32htz2nS_I0LZ-9aB@=IGoh^7Uz_b{MKd z9ikrHh*0}ov)V@p7%g}5fpD-07;01+S}}eu&3o1`va2nEpi1CR+v-ckLNjV_?|qlY zV>XFxs)bk>QQK>93G{MYa3r%%K){QaRbM+Vvi_U)v*xN#A zj8k5}OB<7~<(cyB%`@b7y;?Z=rD*df2|mD(YSi%)(MUAW^KC9Peu27?sg1k!2{3g= zPrwG;9)y_XX5Bg>;rCgLDaepl*#-G_gFeW(IDAseWbQCap%u;btMN!M6f5?-x!&V* zFfXC~5{9gYLLSf#EKSexvEx0IA7E#MvTcAfoCyw=ev8kcz5P*s;fi5VX-)8dN>+ z@Xv=fnGQUxK=Vdm6WuZfBVDe}69`aCJ(MGvXfF5UtKf+iEF?W6YY(M_0A`&(+h&N= zY3bEUN#=*c+09YRD$4UNa`;#zWiqp3SC>Y>VCnNbn2^&yf0HebxkUKE#{miPM837& z8&X&mgU3%)Eg=&Z3)j1K`7ZQsOgke*mkb_ommcX&zzC0ME{-zvrE_Cp%bR>%9xyv& zS|1Q&Z0-ru8L{O{9@L@xQU3Z8-fz++qz7^S!z)yYC+;?c4)BR*6OLDcw=p>d+~Rz3 zdb^^eMS1)>e$TYok};qva^8I92EpZ)e8LN&dNW#waOGXC6T|@04}V_mv3CPN07tSElKA zZ7VL%`nXs9mjx)M0@tE=B-ieKgs3{aA@m0!@x3do;t>>IU|=x>hoa-G(k5aZs5buJ zDpt9A4DGz^69WBw!ZD>xmq$>O`vPNjejEBxgfn#>XyM=tch^#in&G*Op1+nN^rXLF zCY3=wJ64q%*7=DeBdj5xt#y?7NG+=ryS$aD+qea}VrM1mF<(cw#EB~L?3kF__uhHk zvWau0v>H;{JW!Zp(aPGXtgP#QOK*)v7CLwMXjIOY4)XCRkcM}9x)|hD2=gh|7`RjWgBG%r@h`aTcqdb_qrj8gxB%iAZ$4kLl9{-7p;;@;yy?ey7G}_a~Zv z<-i{9_NYo>o$}r~MJHzIG@mVp`?$ z)OP=?(Gs0Abeh6Tp|yd4xjTtVyz6TAmGGvl+2Yd;XAhD$0;xC|xA*rCq7?qQkQ|Kv dkGI!v;F=FWUs4YV Date: Mon, 18 Feb 2019 01:47:05 +0800 Subject: [PATCH 027/112] Update documents --- docs/zh-Hans/Domain-Services.md | 3 +++ docs/zh-Hans/Dynamic-Proxying-Interceptors.md | 3 +++ docs/zh-Hans/Guid-Generation.md | 3 +++ docs/zh-Hans/Unit-Of-Work.md | 3 +++ docs/zh-Hans/Validation.md | 3 +++ docs/zh-Hans/docs-nav.json | 11 +++++++---- 6 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 docs/zh-Hans/Domain-Services.md create mode 100644 docs/zh-Hans/Dynamic-Proxying-Interceptors.md create mode 100644 docs/zh-Hans/Guid-Generation.md create mode 100644 docs/zh-Hans/Unit-Of-Work.md create mode 100644 docs/zh-Hans/Validation.md diff --git a/docs/zh-Hans/Domain-Services.md b/docs/zh-Hans/Domain-Services.md new file mode 100644 index 0000000000..181efe0c43 --- /dev/null +++ b/docs/zh-Hans/Domain-Services.md @@ -0,0 +1,3 @@ +# ABP Documentation + +待添加 diff --git a/docs/zh-Hans/Dynamic-Proxying-Interceptors.md b/docs/zh-Hans/Dynamic-Proxying-Interceptors.md new file mode 100644 index 0000000000..6657f1ca33 --- /dev/null +++ b/docs/zh-Hans/Dynamic-Proxying-Interceptors.md @@ -0,0 +1,3 @@ +## Dynamic Proxying / Interceptors + +待添加 diff --git a/docs/zh-Hans/Guid-Generation.md b/docs/zh-Hans/Guid-Generation.md new file mode 100644 index 0000000000..be0c1f425b --- /dev/null +++ b/docs/zh-Hans/Guid-Generation.md @@ -0,0 +1,3 @@ +## Guid 生成 + +待添加 diff --git a/docs/zh-Hans/Unit-Of-Work.md b/docs/zh-Hans/Unit-Of-Work.md new file mode 100644 index 0000000000..dc281a0974 --- /dev/null +++ b/docs/zh-Hans/Unit-Of-Work.md @@ -0,0 +1,3 @@ +## Unit of Work + +待添加 diff --git a/docs/zh-Hans/Validation.md b/docs/zh-Hans/Validation.md new file mode 100644 index 0000000000..c2b128f0bc --- /dev/null +++ b/docs/zh-Hans/Validation.md @@ -0,0 +1,3 @@ +## Validation + +待添加 diff --git a/docs/zh-Hans/docs-nav.json b/docs/zh-Hans/docs-nav.json index d9ac2aea60..56575a4755 100644 --- a/docs/zh-Hans/docs-nav.json +++ b/docs/zh-Hans/docs-nav.json @@ -67,7 +67,8 @@ "path": "Exception-Handling.md" }, { - "text": "验证" + "text": "验证", + "path": "Validation.md" }, { "text": "授权" @@ -160,7 +161,8 @@ "path": "Repositories.md" }, { - "text": "领域服务" + "text": "领域服务", + "path": "Domain-Services.md" }, { "text": "规约" @@ -178,7 +180,8 @@ "text": "数据传输对象(DTO)" }, { - "text": "工作单元" + "text": "工作单元", + "path": "Unit-Of-Work.md" } ] } @@ -189,7 +192,7 @@ "items": [ { "text": "API", - "items": [ + "items": [ { "text": "自动API控制器", "path": "AspNetCore/Auto-API-Controllers.md" From 3c4a0334b1c55055796c3ed837fb0f2e1321489e Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Sun, 17 Feb 2019 21:19:06 +0300 Subject: [PATCH 028/112] Added Console Client Demo section. --- docs/en/Samples/Microservice-Demo.md | 60 +++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index ec890c9013..deb09cf241 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -416,7 +416,65 @@ Just like explained in the Backend Admin Application section, Public Web Site pr ### Console Client Demo -TODO +Finally, the solution includes a very simple console application, named ConsoleClientDemo, that uses Identity and Product services by authenticating through the AuthServer. It uses the Internal Gateway (InternalGateway.Host) to perform HTTP API calls. + +#### Remote Service Configuration + +`RemoteService` configuration in the `appsettings.json` file is simple: + +````json +"RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:65129/" + } +} +```` + +`http://localhost:65129/` is the URL of the Internal Gateway. All API calls to the services are performed over this URL. + +#### Authentication (IdentityServer Client) Configuration + +`appsettings.json` also has a configuration for the IdentityServer authentication: + +````json +"IdentityClients": { + "Default": { + "GrantType": "client_credentials", + "ClientId": "console-client-demo", + "ClientSecret": "1q2w3e*", + "Authority": "http://localhost:64999", + "Scope": "InternalGateway IdentityService ProductService" + } +} +```` + +This sample uses the `client_credentials` grant type which requires a `ClientId` and `ClientSecret` for the authentication process. There are also [other grant types](http://docs.identityserver.io/en/latest/topics/grant_types.html). For example, you can use the following configuration to swith to the `password` (Resource Owner Password) grant type: + +````json +"IdentityClients": { + "Default": { + "GrantType": "password", + "ClientId": "console-client-demo", + "ClientSecret": "1q2w3e*", + "UserName": "admin", + "UserPassword": "1q2w3E*", + "Authority": "http://localhost:64999", + "Scope": "InternalGateway IdentityService ProductService" + } +} +```` + +Resource Owner Password requires a `UserName` & `UserPassword` in addition to client credentials. This grant type is useful to call remote services on behalf of a user. + +`Scope` declares the APIs (and the gateway) to grant access. + +#### HTTP Client Dependencies + +`ConsoleClientDemoModule` has dependencies to `AbpIdentityHttpApiClientModule` and `ProductManagementHttpApiClientModule` in order to use Identity and Product APIs. It also has `AbpHttpClientIdentityModelModule` dependency to authenticate via IdentityServer. + +#### Using the Services + +Using the services is straightforward. See the `ClientDemoService` class which simply injects `IIdentityUserAppService` and `IProductAppService` and uses them. This class also shows a manual HTTP call using an `HttpClient` object. See source code of the `ClientDemoService` for details. ## Microservices From 3e1fb80f98a9be26d7e69cb23a0e2a9df4da67b6 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Sun, 17 Feb 2019 21:19:41 +0300 Subject: [PATCH 029/112] Switch to client_credentials grant type for the console demo project. --- .../ConsoleClientDemo/appsettings.json | 4 +--- .../databases/MsDemo_Identity.zip | Bin 382077 -> 460985 bytes 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/samples/MicroserviceDemo/applications/ConsoleClientDemo/appsettings.json b/samples/MicroserviceDemo/applications/ConsoleClientDemo/appsettings.json index 3817ac17ec..336020aec8 100644 --- a/samples/MicroserviceDemo/applications/ConsoleClientDemo/appsettings.json +++ b/samples/MicroserviceDemo/applications/ConsoleClientDemo/appsettings.json @@ -6,11 +6,9 @@ }, "IdentityClients": { "Default": { - "GrantType": "password", + "GrantType": "client_credentials", "ClientId": "console-client-demo", "ClientSecret": "1q2w3e*", - "UserName": "admin", - "UserPassword": "1q2w3E*", "Authority": "http://localhost:64999", "Scope": "InternalGateway IdentityService ProductService" } diff --git a/samples/MicroserviceDemo/databases/MsDemo_Identity.zip b/samples/MicroserviceDemo/databases/MsDemo_Identity.zip index 18c8dc12ab03aaded46689b6101f95c32ba13859..6b3bab8b1d446ed88ffdc5e28483216deaedac7d 100644 GIT binary patch literal 460985 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 z

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

69t=xQHmviK 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

v??r>a`#!xMwtftP;N^*@eb!zNjo$Vw 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

ju&3GT1tDNw#1^ivjwnOb4d!bJn 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 z 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%0A4S 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

UIfN1%l>uE=|Ur;gXVLSGB<Xr&c4{NwfHi5 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 z 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 delta 374335 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 z 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⩔Y0kQb}%WPR-5@7un&@Qn!y!&0t) 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 i#rpeoM#MqWS~9Kl8D2N0qrf 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 Wg)RT;r3ecN3waAJhxGs5qWC{|`Anq% From 947db98c8438990eb768a433f67e8f4e2db77b1c Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Sun, 17 Feb 2019 21:50:06 +0300 Subject: [PATCH 030/112] Added API Gateways and Backend Admin Application Gateway sections --- docs/en/Samples/Microservice-Demo.md | 95 ++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index deb09cf241..e4e61b6f05 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -476,6 +476,101 @@ Resource Owner Password requires a `UserName` & `UserPassword` in addition to cl Using the services is straightforward. See the `ClientDemoService` class which simply injects `IIdentityUserAppService` and `IProductAppService` and uses them. This class also shows a manual HTTP call using an `HttpClient` object. See source code of the `ClientDemoService` for details. +## API Gateways / BFFs (Backend for Frontend) + +Gateways are used to provide a **single entry point** to the applications. In this way, an application only deal with a single service address (API endpoint) instead of a different addresses for each services. Gateways are also used for rate limiting, security, authentication, load balancing and many more requirements. + +"**Backend for Frontend**" (BFF) is a common architectural pattern which offers to build a **dedicated and specialized** gateway for each different application / client type. This solution uses this pattern and has multiple gateways. + +This solution uses the [Ocelot](https://github.com/ThreeMammals/Ocelot) library to build API Gateways. It's a widely accepted API Gateway library for ASP.NET Core. + +### Backend Admin Application Gateway (BackendAdminAppGateway.Host) + +This is backend (server side API) for the "Backend Admin Application" (don't confuse about the naming; Backend Admin Application is a frontend web application actually, but used by system admins rather than regular users). + +#### Authentication + +This gateway uses IdentityServer `Bearer` authentication and configured like that: + +````csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +```` + +`AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). + +`ApiName` is the API which is being protected, `BackendAdminAppGateway` in this case. So, this solution defines gateways as APIs too. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +````json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "BackendAdminAppGateway" +} +```` + +#### Ocelot Configuration + +Ocelot needs to know the real URLs of the microservices to be able to redirect HTTP requests. The configuration for this gateway is like below: + +````json +"ReRoutes": [ + { + "DownstreamPathTemplate": "/api/identity/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 63568 + } + ], + "UpstreamPathTemplate": "/api/identity/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "DownstreamPathTemplate": "/api/productManagement/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 60244 + } + ], + "UpstreamPathTemplate": "/api/productManagement/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + } +], +"GlobalConfiguration": { + "BaseUrl": "http://localhost:65115" +} +```` + +`ReRoutes` is an array of URL mappings. `BaseUrl` in the `GlobalConfiguration` section is the URL of this gateway (Ocelot needs to know its own URL). See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the configuration. + +TODO... + +Swagger + +TODO + +#### Other Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + ## Microservices ### Identity Service From 9791d6f3ebf6a23e626942ea1541e84ebfe04060 Mon Sep 17 00:00:00 2001 From: Nokecy Date: Mon, 18 Feb 2019 10:44:38 +0800 Subject: [PATCH 031/112] add PermissionDefinitionContext RemoveGroup Method --- .../Permissions/IPermissionDefinitionContext.cs | 2 ++ .../Permissions/PermissionDefinitionContext.cs | 11 +++++++++++ .../Volo/Abp/Authorization/Authorization_Tests.cs | 2 +- .../AuthorizationTestPermissionDefinitionProvider.cs | 2 ++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs index 00680e0398..84530e2aa6 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/IPermissionDefinitionContext.cs @@ -9,5 +9,7 @@ namespace Volo.Abp.Authorization.Permissions PermissionGroupDefinition GetGroupOrNull(string name); PermissionGroupDefinition AddGroup([NotNull] string name, ILocalizableString displayName = null); + + void RemoveGroup(string name); } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs index 59be1c2ad5..2fdb60b75f 100644 --- a/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs +++ b/framework/src/Volo.Abp.Authorization/Volo/Abp/Authorization/Permissions/PermissionDefinitionContext.cs @@ -36,5 +36,16 @@ namespace Volo.Abp.Authorization.Permissions return Groups[name]; } + public virtual void RemoveGroup(string name) + { + Check.NotNull(name, nameof(name)); + + if (!Groups.ContainsKey(name)) + { + throw new AbpException($"Not found permission group with name: {name}"); + } + + Groups.Remove(name); + } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs index 7c04a9cf1b..fa069348cd 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/Authorization_Tests.cs @@ -50,7 +50,7 @@ namespace Volo.Abp.Authorization [Fact] public void Should_Permission_Definition_GetGroup() { - _permissionDefinitionManager.GetGroups().Count.ShouldBe(2); + _permissionDefinitionManager.GetGroups().Count.ShouldBe(1); } } } \ No newline at end of file diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/AuthorizationTestPermissionDefinitionProvider.cs b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/AuthorizationTestPermissionDefinitionProvider.cs index fdfd77b986..bb28b4ea99 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/AuthorizationTestPermissionDefinitionProvider.cs +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo/Abp/Authorization/TestServices/AuthorizationTestPermissionDefinitionProvider.cs @@ -13,6 +13,8 @@ namespace Volo.Abp.Authorization.TestServices } PermissionGroupDefinition group = context.AddGroup("TestGroup"); group.AddPermission("MyAuthorizedService1"); + + context.RemoveGroup("TestGetGroup"); } } } From 489fc642555202dd9a0248493c39d44f4914070e Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 10:23:00 +0300 Subject: [PATCH 032/112] Completed Backend Admin gateway section. --- docs/en/Samples/Microservice-Demo.md | 44 ++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 3 deletions(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index e4e61b6f05..3c03df63e5 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -559,11 +559,49 @@ Ocelot needs to know the real URLs of the microservices to be able to redirect H `ReRoutes` is an array of URL mappings. `BaseUrl` in the `GlobalConfiguration` section is the URL of this gateway (Ocelot needs to know its own URL). See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the configuration. -TODO... +Ocelot is a finalizer ASP.NET Core middleware and should be written as the last item in the pipeline: -Swagger +````csharp +app.UseOcelot().Wait(); +```` -TODO +It handles and redirects requests based on the configuration above. + +#### ABP Configuration Endpoints + +ABP provides some built-in APIs to get some configuration and information from the server. Examples: + +* `/api/abp/application-configuration` returns localization texts, permission and setting values (try http://localhost:65115/api/abp/application-configuration for this gateway). +* `/Abp/ServiceProxyScript` returns dynamic javascript proxies to call services from a javascript client (try http://localhost:65115/Abp/ServiceProxyScript for this gateway). + +These endpoints should be served by the gateway service, not by microservices. A microservice can only know permissions related to that microservice. But, once properly configured, gateway can aggregate permission values for multiple services as a single list which is more suitable for clients. + +For this purpose, the ASP.NET Core pipeline was configured to handle some specific routes via MVC, instead of Ocelot. To make this possible, MapWhen extension method is used like that: + +````csharp +app.MapWhen(ctx => ctx.Request.Path.ToString().StartsWith("/api/abp/") || + ctx.Request.Path.ToString().StartsWith("/Abp/"), + app2 => + { + app2.UseMvcWithDefaultRouteAndArea(); + }); + +app.UseOcelot().Wait(); +```` + +This configuration uses standard MVC middleware when request path starts with `/api/abp/` or `/Abp/`. + +#### Swagger + +This gateway is configured to use the [swagger UI](https://swagger.io/tools/swagger-ui/), a popular tool to discover & test HTTP APIs. Normally, Ocelot does not support to show APIs on the swagger, because it can not know details of each microservice API. But it is possible when you follow ABP layered module architecture [best practices](../Best-Practices/Index.md). + +`BackendAdminAppGatewayHostModule` adds dependency to `AbpIdentityHttpApiModule` (*[Volo.Abp.Identity.HttpApi](https://www.nuget.org/packages/Volo.Abp.Identity.HttpApi)* package) and `ProductManagementHttpApiModule` (*ProductManagement.HttpApi* project) to include their HTTP API Controllers. In this way, swagger can discover them. While it references to the API layer, it does not reference to the implementation of application services, because they will be running in the related microservice endpoints and redirected by the Ocelot based on the request URL. + +Anyway, when you open the URL `http://localhost:65115/swagger/index.html`, you will see APIs of all configured microservices. + +#### Permission Management + +Backend Admin Application provides a permission management UI (seen before) and uses this gateway to get/set permissions. Permission management API is hosted inside the gateway, instead of a separate service. This is a design decision, but it could be hosted as another microservice if you would like. #### Other Dependencies From a020ec967477fec00913ea0a9e362cb30b7d9ba0 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 10:31:41 +0300 Subject: [PATCH 033/112] Added Public Web Site Gateway section --- docs/en/Samples/Microservice-Demo.md | 99 ++++++++++++++++++++++++++-- 1 file changed, 94 insertions(+), 5 deletions(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 3c03df63e5..6f4b8a1aa3 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -216,7 +216,7 @@ It also provides Login & Register pages: These pages are not included in the project itself. Instead, AuthServer project uses the prebuilt ABP [account module](https://github.com/abpframework/abp/tree/master/modules/account) with IdentityServer extension. That means it can also act as an OpenId Connect server with necessary UI and logic. -#### Other Dependencies +#### Dependencies * **RabbitMQ** for messaging to other services. * **Redis** for distributed/shared caching. @@ -317,7 +317,7 @@ Once you refer these client packages, you can directly inject an application ser Since microservices requires authentication & authorization, each remote service call should contain an Authentication header. This header is obtained from the `access_token` inside the current `HttpContext` for the current user. This is automatically done when you use the `Volo.Abp.Http.Client.IdentityModel` package. `BackendAdminAppHostModule` declares dependencies to this package and to the related `AbpHttpClientIdentityModelModule` class. It is integrated to the HTTP Clients explained above. -#### Other Dependencies +#### Dependencies - **Redis** for distributed/shared caching. - **Elasticsearch** for storing logs. @@ -409,7 +409,7 @@ Publc web site application uses the Blogging and Product microservices for all o Just like explained in the Backend Admin Application section, Public Web Site project also uses the `AbpHttpClientIdentityModelModule` to pass `access_token` to the calling services for authentication. -#### Other Dependencies +#### Dependencies - **Redis** for distributed/shared caching. - **Elasticsearch** for storing logs. @@ -512,7 +512,7 @@ context.Services.AddAuthentication("Bearer") `AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). -`ApiName` is the API which is being protected, `BackendAdminAppGateway` in this case. So, this solution defines gateways as APIs too. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: +`ApiName` is the API which is being protected, `BackendAdminAppGateway` in this case. So, this solution defines gateways as API resources. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: ````json "AuthServer": { @@ -603,12 +603,101 @@ Anyway, when you open the URL `http://localhost:65115/swagger/index.html`, you w Backend Admin Application provides a permission management UI (seen before) and uses this gateway to get/set permissions. Permission management API is hosted inside the gateway, instead of a separate service. This is a design decision, but it could be hosted as another microservice if you would like. -#### Other Dependencies +#### Dependencies - **RabbitMQ** for messaging to other services. - **Redis** for distributed/shared caching. - **Elasticsearch** for storing logs. +### Public Web Site Gateway (PublicWebSiteGateway.Host) + +This is backend (server side API gateway) for the "Public Web Site" application. + +#### Authentication + +This gateway uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). + +`ApiName` is the API which is being protected, `PublicWebSiteGateway` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "PublicWebSiteGateway" +} +``` + +#### Ocelot Configuration + +Ocelot needs to know the real URLs of the microservices to be able to redirect HTTP requests. The configuration for this gateway is like below: + +```json +"ReRoutes": [ + { + "DownstreamPathTemplate": "/api/productManagement/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 60244 + } + ], + "UpstreamPathTemplate": "/api/productManagement/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "DownstreamPathTemplate": "/api/blogging/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 62157 + } + ], + "UpstreamPathTemplate": "/api/blogging/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + } +], +"GlobalConfiguration": { + "BaseUrl": "http://localhost:64897" +} +``` + +See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the Ocelot configuration. + +#### Other + +See the "ABP Configuration Endpoints" and "Swagger" topics inside the "Backend Admin Application Gateway" section which are very similar for this gateway. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + +### Internal Gateway (InternalGateway.Host) + +TODO + ## Microservices ### Identity Service From 571b9172e4cc513e51959980a4aecfa3fdb72029 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 10:44:25 +0300 Subject: [PATCH 034/112] Add Blogging.HttpApi to InternalGatewayHostModule --- .../gateways/InternalGateway.Host/InternalGateway.Host.csproj | 1 + .../gateways/InternalGateway.Host/InternalGatewayHostModule.cs | 2 ++ 2 files changed, 3 insertions(+) diff --git a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj index 0428736a75..80b4b6ebb0 100644 --- a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj +++ b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGateway.Host.csproj @@ -27,6 +27,7 @@ + diff --git a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGatewayHostModule.cs b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGatewayHostModule.cs index a418aabf79..943eaf0fc9 100644 --- a/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGatewayHostModule.cs +++ b/samples/MicroserviceDemo/gateways/InternalGateway.Host/InternalGatewayHostModule.cs @@ -15,12 +15,14 @@ using Volo.Abp.Modularity; using Volo.Abp.PermissionManagement.EntityFrameworkCore; using Volo.Abp.Security.Claims; using Volo.Abp.SettingManagement.EntityFrameworkCore; +using Volo.Blogging; namespace InternalGateway.Host { [DependsOn( typeof(AbpAutofacModule), typeof(AbpIdentityHttpApiModule), + typeof(BloggingHttpApiModule), typeof(ProductManagementHttpApiModule), typeof(AbpEntityFrameworkCoreSqlServerModule), typeof(AbpPermissionManagementEntityFrameworkCoreModule), From bc4cd75a12fbb0ce4d1c45c90cd1715a774f530d Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 10:44:40 +0300 Subject: [PATCH 035/112] Added Internal Gateway section. --- docs/en/Samples/Microservice-Demo.md | 112 ++++++++++++++++++++++++++- 1 file changed, 108 insertions(+), 4 deletions(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 6f4b8a1aa3..45fbe14e25 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -466,7 +466,7 @@ This sample uses the `client_credentials` grant type which requires a `ClientId` Resource Owner Password requires a `UserName` & `UserPassword` in addition to client credentials. This grant type is useful to call remote services on behalf of a user. -`Scope` declares the APIs (and the gateway) to grant access. +`Scope` declares the APIs (and the gateway) to grant access. This application uses the Internal Gateway. #### HTTP Client Dependencies @@ -696,7 +696,93 @@ See the "ABP Configuration Endpoints" and "Swagger" topics inside the "Backend A ### Internal Gateway (InternalGateway.Host) -TODO +This gateway is not a BFF. It is designed for inter-microservice communication and is not exposed publicly. + +#### Authentication + +This gateway uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`AddIdentityServerAuthentication` extension method comes from the [IdentityServer4.AccessTokenValidation](https://www.nuget.org/packages/IdentityServer4.AccessTokenValidation) package, part of the IdentityServer4 project (see [its documentation](http://docs.identityserver.io/en/latest/topics/apis.html)). + +`ApiName` is the API which is being protected, `InternalGateway` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "InternalGateway" +} +``` + +#### Ocelot Configuration + +Ocelot needs to know the real URLs of the microservices to be able to redirect HTTP requests. The configuration for this gateway is like below: + +```json +"ReRoutes": [ + { + "DownstreamPathTemplate": "/api/identity/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 63568 + } + ], + "UpstreamPathTemplate": "/api/identity/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "DownstreamPathTemplate": "/api/productManagement/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 60244 + } + ], + "UpstreamPathTemplate": "/api/productManagement/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + }, + { + "DownstreamPathTemplate": "/api/blogging/{everything}", + "DownstreamScheme": "http", + "DownstreamHostAndPorts": [ + { + "Host": "localhost", + "Port": 62157 + } + ], + "UpstreamPathTemplate": "/api/blogging/{everything}", + "UpstreamHttpMethod": [ "Put", "Delete", "Get", "Post" ] + } +], +"GlobalConfiguration": { + "BaseUrl": "http://localhost:65129" +} +``` + +`ReRoutes` configuration covers all microservices in the system. See [its own documentation](https://ocelot.readthedocs.io/en/latest/features/configuration.html) to better understand the Ocelot configuration. + +#### Other + +See the "ABP Configuration Endpoints" and "Swagger" topics inside the "Backend Admin Application Gateway" section which are very similar for this gateway. ## Microservices @@ -704,14 +790,32 @@ TODO TODO -## Infrastructure +### Blogging Service + +TODO + +### Product Service TODO +## Infrastructure + ### Messaging +TODO + ### Caching +TODO + ### Logging -### Correlation Id \ No newline at end of file +TODO + +### Audit Logging + +TODO + +### Correlation Id + +TODO \ No newline at end of file From 2bf392ca285c4d5fa7ee6094e59b7772652131a2 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 11:12:28 +0300 Subject: [PATCH 036/112] Added Identity Service section. --- docs/en/Samples/Microservice-Demo.md | 71 +++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 1 deletion(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 45fbe14e25..d13bd9a9fb 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -784,11 +784,74 @@ Ocelot needs to know the real URLs of the microservices to be able to redirect H See the "ABP Configuration Endpoints" and "Swagger" topics inside the "Backend Admin Application Gateway" section which are very similar for this gateway. +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. + ## Microservices +Microservices are standalone HTTP APIs those implement the business of the system in a distributed manner. + +* They are used by applications and other microservices through the gateways and HTTP APIs. +* They can raise or register to events in the system. +* They can communicate to each other via asynchronous messaging. + ### Identity Service -TODO +This service provides user and role management APIs. Shares the same database (MsDemo_Identity) with the AuthServer application. + +#### Identity Module + +This service actually just hosts the ABP Identity package/module. Does not include any API itself. In order to host it, adds the following dependencies: + +* `AbpIdentityHttpApiModule` (*[Volo.Abp.Identity.HttpApi](https://www.nuget.org/packages/Volo.Abp.Identity.HttpApi)* package) to provide Identity APIs. +* `AbpIdentityApplicationModule` (*[Volo.Abp.Identity.Application](https://www.nuget.org/packages/Volo.Abp.Identity.Application)* package) to host the implementation of the application and domain layers of the module. +* `AbpIdentityEntityFrameworkCoreModule` (*[Volo.Abp.Identity.EntityFrameworkCore](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore)* package) to use EF Core as database API. + +See the [module architecture best practice guide](../Best-Practices/Module-Architecture) to understand the layering better. + +#### Authentication + +This microservice uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`ApiName` is the API which is being protected, `IdentityService` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "IdentityService" +} +``` + +#### Swagger + +Swagger UI is configured and is the default page for this service. If you navigate to the URL `http://localhost:63568/`, you are redirected to the swagger page to see and test the API. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. ### Blogging Service @@ -798,6 +861,12 @@ TODO TODO +## Modules + +### Product Management + +TODO + ## Infrastructure ### Messaging From 46983f18997894124323e85a9c07bc8667d34549 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 11:20:25 +0300 Subject: [PATCH 037/112] Added MongoDB package for blogging module --- nupkg/common.ps1 | 1 + 1 file changed, 1 insertion(+) diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 6ac3b2c3d2..5a4aeb71e8 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -164,6 +164,7 @@ $projects = ( "modules/blogging/src/Volo.Blogging.Domain", "modules/blogging/src/Volo.Blogging.Domain.Shared", "modules/blogging/src/Volo.Blogging.EntityFrameworkCore", + "modules/blogging/src/Volo.Blogging.MongoDB", "modules/blogging/src/Volo.Blogging.HttpApi", "modules/blogging/src/Volo.Blogging.HttpApi.Client", "modules/blogging/src/Volo.Blogging.Web", From 6bae239fe1dc1ff86216968966207ce6eb9195c6 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 11:36:43 +0300 Subject: [PATCH 038/112] Added Blogging Service section --- docs/en/Samples/Microservice-Demo.md | 105 +++++++++++++++++- ...ple-blogservice-permission-in-database.png | Bin 0 -> 3304 bytes 2 files changed, 103 insertions(+), 2 deletions(-) create mode 100644 docs/en/images/microservice-sample-blogservice-permission-in-database.png diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index d13bd9a9fb..ca91a22c1a 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -800,7 +800,11 @@ Microservices are standalone HTTP APIs those implement the business of the syste ### Identity Service -This service provides user and role management APIs. Shares the same database (MsDemo_Identity) with the AuthServer application. +This service provides user and role management APIs. + +#### Database + +Shares the same database (MsDemo_Identity) with the AuthServer application. #### Identity Module @@ -855,7 +859,104 @@ Swagger UI is configured and is the default page for this service. If you naviga ### Blogging Service -TODO +This service provides the blogging API. + +#### Database + +It has a dedicated MongoDB database (MsDemo_Blogging) to store blog and posts. It also uses the MsDemo_Identity SQL database for audit logs, permissions and settings. So, there are two connection strings in the `appsettings.json` file: + +````json +"ConnectionStrings": { + "Default": "Server=localhost;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true", + "Blogging": "mongodb://localhost|MsDemo_Blogging" +} +```` + +#### Blogging Module + +This service actually just hosts the ABP Blogging package/module. Does not include any API itself. In order to host it, adds the following dependencies: + +- `BloggingHttpApiModule` (*[Volo.Blogging.HttpApi](https://www.nuget.org/packages/Volo.Blogging.HttpApi)* package) to provide Blogging APIs. +- `BloggingApplicationModule` (*[Volo.Blogging.Application](https://www.nuget.org/packages/Volo.Blogging.Application)* package) to host the implementation of the application and domain layers of the module. +- `BloggingMongoDbModule` (*[Volo.Blogging.MongoDB](https://www.nuget.org/packages/Volo.Abp.Identity.EntityFrameworkCore)* package) to use MongoDB as the database. + +See the [module architecture best practice guide](../Best-Practices/Module-Architecture) to understand the layering better. + +#### Authentication + +This microservice uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`ApiName` is the API which is being protected, `BloggingService` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "BloggingService" +} +``` + +#### IdentityServer Client + +This microservice also uses the Identity microservice API through the Internal Gateway, because it needs to query user details (username, email, phone, name and surname) in some cases. So, it is also a client for the IdentityServer and defines a section in the `appsettings.json` file for that: + +````json +"IdentityClients": { + "Default": { + "GrantType": "client_credentials", + "ClientId": "blogging-service-client", + "ClientSecret": "1q2w3e*", + "Authority": "http://localhost:64999", + "Scope": "InternalGateway IdentityService" + } +} +```` + +Since it uses the Internal Gateway, it should also configure the remote endpoint of the gateway: + +````json +"RemoteServices": { + "Default": { + "BaseUrl": "http://localhost:65129/", + "UseCurrentAccessToken": "false" + } +} +```` + +When you set `UseCurrentAccessToken` to `false`, ABP ignores the current `access_token` in the current `HttpContext` and authenticates to the AuthServer with the credentials defined above. + +Why not using the token of the current user in the current request? Because, the user may not have required permissions on the Identity module, so it can not just pass the current authentication token directly to the Identity service. In addition, some of the blog service APIs are anonymous (not requires authenticated user), so in some cases there is no "current user" in the HTTP request. For these reasons, Blogging service should be defined as a client for the Identity service with its own credentials and permissions. + +If you check the `AbpPermissionGrants` table in the `MsDemo_Identity` database, you can see the related permission for the `blogging-service-client`. + +![microservice-sample-blogservice-permission-in-database](../images/microservice-sample-blogservice-permission-in-database.png) + +#### Swagger + +Swagger UI is configured and is the default page for this service. If you navigate to the URL `http://localhost:62157/`, you are redirected to the swagger page to see and test the API. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. ### Product Service diff --git a/docs/en/images/microservice-sample-blogservice-permission-in-database.png b/docs/en/images/microservice-sample-blogservice-permission-in-database.png new file mode 100644 index 0000000000000000000000000000000000000000..f99cd398937c184b7956ceed0fbdb64b2c220f67 GIT binary patch literal 3304 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 Cig7{! literal 0 HcmV?d00001 From ed343168185b0d9124fc6a830d87735a2e7ccc5f Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 14:00:02 +0300 Subject: [PATCH 039/112] Fix name of the ProductServiceMigrationDbContextFactory --- ...ntextFactory.cs => ProductServiceMigrationDbContextFactory.cs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename samples/MicroserviceDemo/microservices/ProductService.Host/EntityFrameworkCore/{AuthServerDbContextFactory.cs => ProductServiceMigrationDbContextFactory.cs} (100%) diff --git a/samples/MicroserviceDemo/microservices/ProductService.Host/EntityFrameworkCore/AuthServerDbContextFactory.cs b/samples/MicroserviceDemo/microservices/ProductService.Host/EntityFrameworkCore/ProductServiceMigrationDbContextFactory.cs similarity index 100% rename from samples/MicroserviceDemo/microservices/ProductService.Host/EntityFrameworkCore/AuthServerDbContextFactory.cs rename to samples/MicroserviceDemo/microservices/ProductService.Host/EntityFrameworkCore/ProductServiceMigrationDbContextFactory.cs From 08c4be59f2791cf57cbedd24b4ab33cb135dafd4 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 14:00:20 +0300 Subject: [PATCH 040/112] Add Product Service to the document --- docs/en/Samples/Microservice-Demo.md | 101 +++++++++++++++++++++++++-- 1 file changed, 96 insertions(+), 5 deletions(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index ca91a22c1a..810d8ea207 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -204,6 +204,8 @@ public class AuthServerDbContext : AbpDbContext In the **OnModelCreating**, you see **ConfigureX()** method calls. A module with a database schema generally declares such an extension method to configure EF Core mappings for its own entities. This is a flexible approach where you can arrange your databases and modules inside them; You can use a different database for each module, or combine some of them in a shared database. In the AuthServer project, we decided to combine multiple module schemas in a single EF Core DbContext, in a single physical database. These modules are Identity, IdentityServer, AuditLogging, PermissionManagement and SettingManagement modules. +Notice that this DbContext is only for database migrations. All modules have their own `DbContext` classes those are used in the runtime by the modules. + #### User Interface AuthServer has a simple home page that shows the current user info if the current user has logged in: @@ -798,7 +800,7 @@ Microservices are standalone HTTP APIs those implement the business of the syste * They can raise or register to events in the system. * They can communicate to each other via asynchronous messaging. -### Identity Service +### Identity Service (IdentityService.Host) This service provides user and role management APIs. @@ -857,9 +859,9 @@ Swagger UI is configured and is the default page for this service. If you naviga - **Redis** for distributed/shared caching. - **Elasticsearch** for storing logs. -### Blogging Service +### Blogging Service (BloggingService.Host) -This service provides the blogging API. +This service hosts the blogging API. #### Database @@ -958,9 +960,98 @@ Swagger UI is configured and is the default page for this service. If you naviga - **Redis** for distributed/shared caching. - **Elasticsearch** for storing logs. -### Product Service +### Product Service (ProductService.Host) -TODO +This service hosts the Product Management API. + +#### Database & EF Core Migrations + +It has a separated SQL database, named **MsDemo_ProductManagement**, for the product management module. It uses EF Core as the database provider and has a DbContext named `ProductServiceMigrationDbContext`: + +````csharp +public class ProductServiceMigrationDbContext : AbpDbContext +{ + public ProductServiceMigrationDbContext( + DbContextOptions options + ) : base(options) + { + + } + + protected override void OnModelCreating(ModelBuilder modelBuilder) + { + base.OnModelCreating(modelBuilder); + + modelBuilder.ConfigureProductManagement(); + } +} +```` + +Actual model configuration is done inside the `modelBuilder.ConfigureProductManagement()` extension method. This project maintains the database schema using EF Core migrations. + +Notice that this DbContext is only for database migrations. Product Management module has its own `DbContext` class that is used in the runtime (See `ProductManagementDbContext` class in the ProductManagement.EntityFrameworkCore project). + +There are two connection strings in the `appsettings.json` file: + +````json +"ConnectionStrings": { + "Default": "Server=localhost;Database=MsDemo_Identity;Trusted_Connection=True;MultipleActiveResultSets=true", + "ProductManagement": "Server=localhost;Database=MsDemo_ProductManagement;Trusted_Connection=True;MultipleActiveResultSets=true" +} +```` + +`Default` connection strings points to the MsDemo_Identity database that is used for audit logging, permission and setting stores. `ProductManagement` connection string is used by the product module. + +#### Product Module + +This service actually just hosts the Product Management module. Does not include any API itself. In order to host it, adds the following dependencies: + +- `ProductManagementHttpApiModule` to provide product management APIs. +- `ProductManagementApplicationModule` to host the implementation of the application and domain layers of the module. +- `ProductManagementEntityFrameworkCoreModule` to use EF Core as database API. + +See the [module architecture best practice guide](../Best-Practices/Module-Architecture) to understand the layering better. See the Product Management module section below for more information about this module. + +#### Authentication + +This microservice uses IdentityServer `Bearer` authentication and configured like that: + +```csharp +context.Services.AddAuthentication("Bearer") +.AddIdentityServerAuthentication(options => +{ + options.Authority = configuration["AuthServer:Authority"]; + options.ApiName = configuration["AuthServer:ApiName"]; + options.RequireHttpsMetadata = false; + options.InboundJwtClaimTypeMap["sub"] = AbpClaimTypes.UserId; + options.InboundJwtClaimTypeMap["role"] = AbpClaimTypes.Role; + options.InboundJwtClaimTypeMap["email"] = AbpClaimTypes.Email; + options.InboundJwtClaimTypeMap["email_verified"] = AbpClaimTypes.EmailVerified; + options.InboundJwtClaimTypeMap["phone_number"] = AbpClaimTypes.PhoneNumber; + options.InboundJwtClaimTypeMap["phone_number_verified"] = + AbpClaimTypes.PhoneNumberVerified; + options.InboundJwtClaimTypeMap["name"] = AbpClaimTypes.UserName; +}); +``` + +`ApiName` is the API which is being protected, `ProductService` in this case. Rest of the configuration is related to claims mapping (which is planned to be automated in next ABP versions). The configuration related to authentication in the `appsettings.json` is simple: + +```json +"AuthServer": { + "Authority": "http://localhost:64999", + "ApiName": "ProductService" +} +``` + +#### Swagger + +Swagger UI is configured and is the default page for this service. If you navigate to the URL `http://localhost:60244/`, you are redirected to the swagger page to see and test the API. + +#### Dependencies + +- **RabbitMQ** for messaging to other services. +- **Redis** for distributed/shared caching. +- **Elasticsearch** for storing logs. ## Modules From ee536c018d289a1662d0e7687eac4cdb641e3f2e Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 14:47:43 +0300 Subject: [PATCH 041/112] Remove IProductRepository --- .../ProductManagement/ProductAppService.cs | 14 +++++++-- .../PublicProductAppService.cs | 8 +++-- .../ProductManagement/IProductRepository.cs | 13 -------- .../EfCoreProductRepository.cs | 30 ------------------- .../ProductAppService_Tests.cs | 7 ++--- 5 files changed, 19 insertions(+), 53 deletions(-) delete mode 100644 samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/IProductRepository.cs delete mode 100644 samples/MicroserviceDemo/modules/product/src/ProductManagement.EntityFrameworkCore/ProductManagement/EfCoreProductRepository.cs diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/ProductManagement/ProductAppService.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/ProductManagement/ProductAppService.cs index 90d16ec7b5..c993f27f02 100644 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/ProductManagement/ProductAppService.cs +++ b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/ProductManagement/ProductAppService.cs @@ -1,9 +1,13 @@ using System; using System.Collections.Generic; +using System.Linq; +using System.Linq.Dynamic.Core; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; +using Microsoft.EntityFrameworkCore; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; namespace ProductManagement { @@ -11,9 +15,9 @@ namespace ProductManagement public class ProductAppService : ApplicationService, IProductAppService { private readonly ProductManager _productManager; - private readonly IProductRepository _productRepository; + private readonly IRepository _productRepository; - public ProductAppService(ProductManager productManager, IProductRepository productRepository) + public ProductAppService(ProductManager productManager, IRepository productRepository) { _productManager = productManager; _productRepository = productRepository; @@ -23,7 +27,11 @@ namespace ProductManagement { await NormalizeMaxResultCountAsync(input); - var products = await _productRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount); + var products = await _productRepository + .OrderBy(input.Sorting) + .Skip(input.SkipCount) + .Take(input.MaxResultCount) + .ToListAsync(); var totalCount = await _productRepository.GetCountAsync(); diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/ProductManagement/PublicProductAppService.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/ProductManagement/PublicProductAppService.cs index 866cc31b34..b1f9f3fafc 100644 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/ProductManagement/PublicProductAppService.cs +++ b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Application/ProductManagement/PublicProductAppService.cs @@ -1,15 +1,17 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; namespace ProductManagement { public class PublicProductAppService : ApplicationService, IPublicProductAppService { - private readonly IProductRepository _productRepository; + private readonly IRepository _productRepository; - public PublicProductAppService(IProductRepository productRepository) + public PublicProductAppService(IRepository productRepository) { _productRepository = productRepository; } diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/IProductRepository.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/IProductRepository.cs deleted file mode 100644 index c6a1c865c1..0000000000 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/IProductRepository.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Threading.Tasks; -using Volo.Abp.Domain.Repositories; - -namespace ProductManagement -{ - public interface IProductRepository : IBasicRepository - { - Task> GetListAsync(string sorting, int maxResultCount, int skipCount); - } -} diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.EntityFrameworkCore/ProductManagement/EfCoreProductRepository.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.EntityFrameworkCore/ProductManagement/EfCoreProductRepository.cs deleted file mode 100644 index c229505c36..0000000000 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.EntityFrameworkCore/ProductManagement/EfCoreProductRepository.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using ProductManagement.EntityFrameworkCore; -using Volo.Abp.Domain.Repositories.EntityFrameworkCore; -using Volo.Abp.EntityFrameworkCore; -using System.Linq; -using System.Linq.Dynamic.Core; -using Microsoft.EntityFrameworkCore; - -namespace ProductManagement -{ - public class EfCoreProductRepository : EfCoreRepository, IProductRepository - { - public EfCoreProductRepository(IDbContextProvider dbContextProvider) - : base(dbContextProvider) - { - } - - public async Task> GetListAsync(string sorting, int maxResultCount, int skipCount) - { - // TODO: refactor sorting - var products = await DbSet.OrderBy(sorting ?? "creationTime desc") - .PageBy(skipCount, maxResultCount) - .ToListAsync(); - - return products; - } - } -} diff --git a/samples/MicroserviceDemo/modules/product/test/ProductManagement.Application.Tests/ProductManagement/ProductAppService_Tests.cs b/samples/MicroserviceDemo/modules/product/test/ProductManagement.Application.Tests/ProductManagement/ProductAppService_Tests.cs index 4964f5df98..2cdd7a0a61 100644 --- a/samples/MicroserviceDemo/modules/product/test/ProductManagement.Application.Tests/ProductManagement/ProductAppService_Tests.cs +++ b/samples/MicroserviceDemo/modules/product/test/ProductManagement.Application.Tests/ProductManagement/ProductAppService_Tests.cs @@ -1,10 +1,9 @@ using System; -using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; using Shouldly; using Volo.Abp.Application.Dtos; +using Volo.Abp.Domain.Repositories; using Xunit; namespace ProductManagement @@ -12,13 +11,13 @@ namespace ProductManagement public class ProductAppService_Tests : ProductManagementApplicationTestBase { private readonly IProductAppService _productAppService; - private readonly IProductRepository _productRepository; + private readonly IRepository _productRepository; private readonly ProductManagementTestData _testData; public ProductAppService_Tests() { _productAppService = GetRequiredService(); - _productRepository = GetRequiredService(); + _productRepository = GetRequiredService>(); _testData = GetRequiredService(); } From 41ea2d625ec354dab4462735242b7a96f204e117 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 18 Feb 2019 15:36:47 +0300 Subject: [PATCH 042/112] Create TagHelperAttributeExtensions.cs --- .../TagHelperAttributeExtensions.cs | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperAttributeExtensions.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperAttributeExtensions.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperAttributeExtensions.cs new file mode 100644 index 0000000000..ef581529a6 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Extensions/TagHelperAttributeExtensions.cs @@ -0,0 +1,25 @@ +using Microsoft.AspNetCore.Razor.TagHelpers; +using System.Collections.Generic; + +namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions +{ + public static class TagHelperAttributeExtensions + { + public static string ToHtmlAttributeAsString(this TagHelperAttribute attribute) + { + return attribute.Name + "=\"" + attribute.Value + "\""; + } + + public static string ToHtmlAttributesAsString(this List attributes) + { + var attributesAsString = ""; + + foreach (var attribute in attributes) + { + attributesAsString += attribute.ToHtmlAttributeAsString() + " "; + } + + return attributesAsString; + } + } +} From 734534052af99df735a83efad320721e636aba03 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 18 Feb 2019 15:37:24 +0300 Subject: [PATCH 043/112] Tab tag helpers: content and header attributes --- .../TagHelpers/Tab/AbpTabTagHelperService.cs | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs index ee90724c1a..2de18d0592 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Razor.TagHelpers; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Extensions; @@ -13,7 +14,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab var innerContent = await output.GetChildContentAsync(); var tabHeader = GetTabHeaderItem(context, output); - var tabContent = GetTabContentItem(innerContent.GetContent()); + var tabContent = GetTabContentItem(context, output, innerContent.GetContent()); var tabHeaderItems = context.GetValue>(TabItems); @@ -30,23 +31,31 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab var link = TagHelper.Name; var control = TagHelper.Name; var title = TagHelper.Title; + var attributes = GetTabHeaderAttributes(context, output); + + var classAttributesAsString = attributes.Where(a=>a.Name == "class").ToList().Select(a=>a.Value).JoinAsString(" "); + var otherAttributesAsString = attributes.Where(a => a.Name != "class").ToList().ToHtmlAttributesAsString(); if (!string.IsNullOrWhiteSpace(TagHelper.ParentDropdownName)) { - return "" + title + ""; + return "" + title + ""; } - return "

  • " + + return "
  • " + title + "
  • "; } - protected virtual string GetTabContentItem(string content) + protected virtual string GetTabContentItem(TagHelperContext context, TagHelperOutput output, string content) { var headerId = TagHelper.Name + "-tab"; var id = TagHelper.Name; + var attributes = GetTabContentAttributes(context, output); + + var classAttributesAsString = attributes.Where(a => a.Name == "class").ToList().Select(a => a.Name).JoinAsString(" "); + var otherAttributesAsString = attributes.Where(a => a.Name != "class").ToList().ToHtmlAttributesAsString(); - return "
    " + + return "
    " + content + "
    "; } @@ -58,5 +67,20 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab TagHelper.Name = TabItemNamePlaceHolder; } } + + protected virtual List GetTabContentAttributes(TagHelperContext context, TagHelperOutput output) { + var contentprefix = "content-"; + return GetTabAttributesByPrefix(output.Attributes, contentprefix); + } + + protected virtual List GetTabHeaderAttributes(TagHelperContext context, TagHelperOutput output) { + var headerprefix = "header-"; + return GetTabAttributesByPrefix(output.Attributes, headerprefix); + } + + private List GetTabAttributesByPrefix(TagHelperAttributeList attributes, string prefix) { + return attributes.Where(a=>a.Name.StartsWith(prefix)) + .Select(a=> new TagHelperAttribute(a.Name.Substring(prefix.Length), a.Value)).ToList(); + } } } \ No newline at end of file From a9bd0fa464f3ac7ac2ede7a3412691387430b09a Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 15:44:13 +0300 Subject: [PATCH 044/112] Code cleanup --- .../src/ProductManagement.Domain/ProductManagement/Product.cs | 2 +- .../EntityFrameworkCore/ProductManagementDbContext.cs | 1 - .../ProductManagement/ProductsController.cs | 1 - 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/Product.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/Product.cs index 15fff0cd69..0d0362d8d3 100644 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/Product.cs +++ b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/Product.cs @@ -79,7 +79,7 @@ namespace ProductManagement private Product SetStockCountInternal(int stockCount, bool triggerEvent = true) { - if (StockCount < 0.0f) + if (StockCount < 0) { throw new ArgumentException($"{nameof(stockCount)} can not be less than 0!"); } diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.EntityFrameworkCore/ProductManagement/EntityFrameworkCore/ProductManagementDbContext.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.EntityFrameworkCore/ProductManagement/EntityFrameworkCore/ProductManagementDbContext.cs index 03a3d52394..910f73a45e 100644 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.EntityFrameworkCore/ProductManagement/EntityFrameworkCore/ProductManagementDbContext.cs +++ b/samples/MicroserviceDemo/modules/product/src/ProductManagement.EntityFrameworkCore/ProductManagement/EntityFrameworkCore/ProductManagementDbContext.cs @@ -29,6 +29,5 @@ namespace ProductManagement.EntityFrameworkCore options.Schema = Schema; }); } - } } \ No newline at end of file diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.HttpApi/ProductManagement/ProductsController.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.HttpApi/ProductManagement/ProductsController.cs index 96e129ccb4..c5fb4fcaa3 100644 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.HttpApi/ProductManagement/ProductsController.cs +++ b/samples/MicroserviceDemo/modules/product/src/ProductManagement.HttpApi/ProductManagement/ProductsController.cs @@ -4,7 +4,6 @@ using Microsoft.AspNetCore.Mvc; using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.Auditing; namespace ProductManagement { From ee680a084e5669d37c4ab4ef2d6b0ac3c73745ae Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 15:44:36 +0300 Subject: [PATCH 045/112] Added Product Management section. --- docs/en/Samples/Microservice-Demo.md | 238 +++++++++++++++++- ...vice-sample-product-module-in-solution.png | Bin 0 -> 12817 bytes 2 files changed, 237 insertions(+), 1 deletion(-) create mode 100644 docs/en/images/microservice-sample-product-module-in-solution.png diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 810d8ea207..7cca79c4fc 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -1055,9 +1055,245 @@ Swagger UI is configured and is the default page for this service. If you naviga ## Modules +ABP provides a strong infrastructure to make modular application development easier by providing services and architecture (see the [module development best practices guide](../Best-Practices/Index.md)). + +This solution demonstrate how to use [prebuilt application modules](../Modules/Index.md) in a distributed architecture. The solution also includes a simple "Product Management" module to show the implementation of a well layered module example. + ### Product Management -TODO +Product Management is a module that consists of several layers and packages/projects: + +![microservice-sample-product-module-in-solution](../images/microservice-sample-product-module-in-solution.png) + +* `ProductManagement.Domain.Shared` contains constants and types shared among all layers. +* `ProductManagement.Domain` contains the domain logic and defines entities, domain services, domain events, business/domain exceptions. +* `ProductManagement.Application.Contracts` contains application service interfaces and DTOs. +* `ProductManagement.Application` contains the implementation of application services. +* `ProductManagement.EntityFrameworkCore` contains DbConext and other EF Core related classes and configuration. +* `ProductManagement.HttpApi` contains API Controllers. +* `ProductManagement.HttpApi.Client` contains C# proxies to directly use the HTTP API remotely. Uses [Dynamic C# API Clients](../AspNetCore/Dynamic-CSharp-API-Clients.md) feature of the ABP framework. +* `ProductManagement.Web` contains the UI elements (pages, scripts, styles... etc). + +By the help of this layering, it is possible to use the same module as a package reference in a monolithic application or use as a service that runs in another server. It is possible to separate UI (Web) and API layers, so they run in different servers. + +In this solution, Web layer runs in the Backend Admin Application while API layer is hosted by the Product microservice. + +This tutorial will highlight some important aspects of the module. But, it's suggested to see the source code for a better understanding. + +#### Domain Layer + +`Product` is the main [Aggregate Root](../Entities.md) of this module: + +````csharp +public class Product : AuditedAggregateRoot +{ + /// + /// A unique value for this product. + /// ProductManager ensures the uniqueness of it. + /// It can not be changed after creation of the product. + /// + [NotNull] + public string Code { get; private set; } + + [NotNull] + public string Name { get; private set; } + + public float Price { get; private set; } + + public int StockCount { get; private set; } + + //... +} +```` + +All of its properties have private setters which prevents any direct change of the properties from out of the class. Product class ensures its own integrity and validity by its own constructors and methods. + +It has two constructors: + +````csharp +private Product() +{ + //Default constructor is needed for ORMs. +} + +internal Product( + Guid id, + [NotNull] string code, + [NotNull] string name, + float price = 0.0f, + int stockCount = 0) +{ + Check.NotNullOrWhiteSpace(code, nameof(code)); + + if (code.Length >= ProductConsts.MaxCodeLength) + { + throw new ArgumentException( + $"Product code can not be longer than {ProductConsts.MaxCodeLength}" + ); + } + + Id = id; + Code = code; + SetName(Check.NotNullOrWhiteSpace(name, nameof(name))); + SetPrice(price); + SetStockCountInternal(stockCount, triggerEvent: false); +} + +```` + +Default (**parameterless**) constructor is private and is not used in the application code. It is needed because most ORMs requires a parameterless constructor on deserializing entities while getting from the database. + +Second constructor is **internal** that means it can only be used inside the domain layer. This enforces to use the `ProductManager` while creating a new `Product`. Because, `ProductManager` should implement a business rule on a new product creation. This constructor only requires the minimal required arguments to create a new product with some optional arguments. It checks some simple business rules to ensure that the entity is created as a valid product. + +Rest of the class has methods to manipulate properties of the entity. Example: + +````csharp +public Product SetPrice(float price) +{ + if (price < 0.0f) + { + throw new ArgumentException($"{nameof(price)} can not be less than 0.0!"); + } + + Price = price; + return this; +} + +```` + +`SetPrice` method is used to change the price of the product in a safe manner (by checking a validation rule). + +`SetStockCount` is another method that is used to change stock count of a product: + +````csharp +public Product SetStockCount(int stockCount) +{ + return SetStockCountInternal(stockCount); +} + +private Product SetStockCountInternal(int stockCount, bool triggerEvent = true) +{ + if (StockCount < 0) + { + throw new ArgumentException($"{nameof(stockCount)} can not be less than 0!"); + } + + if (StockCount == stockCount) + { + return this; + } + + if (triggerEvent) + { + AddDistributedEvent(new ProductStockCountChangedEto(StockCount, stockCount)); + } + + StockCount = stockCount; + return this; +} + +```` + +This method also triggers a **distributed event** with the `ProductStockCountChangedEto` parameter (Eto is a conventional postfix stands for **E**vent **T**ransfer **O**bject, but not required) to notify listeners that stock count of a product has changed. Any subscriber can receive this event and perform an action based on that knowledge. + +Events are distributed by RabbitMQ for this solution. But ABP is message broker independent by providing necessary abstractions (see the [Event Bus](../Event-Bus.md) document). + +As said before, this module forces to always use the `ProductManager` to create a new `Product`. `ProductManager` is a simple domain service defined as shown: + +````csharp +public class ProductManager : DomainService +{ + private readonly IRepository _productRepository; + + public ProductManager(IRepository productRepository) + { + _productRepository = productRepository; + } + + public async Task CreateAsync( + [NotNull] string code, + [NotNull] string name, + float price = 0.0f, + int stockCount = 0) + { + var existingProduct = + await _productRepository.FirstOrDefaultAsync(p => p.Code == code); + + if (existingProduct != null) + { + throw new ProductCodeAlreadyExistsException(code); + } + + return await _productRepository.InsertAsync( + new Product( + GuidGenerator.Create(), + code, + name, + price, + stockCount + ) + ); + } +} +```` + +* It checks if given code is used before. Throws `ProductCodeAlreadyExistsException` so. +* If uses the `GuidGenerator` (`IGuidGenerator`) service to create a new `Guid`. +* It inserts the entity to the repository. + +So, with this design, uniqueness of the product code is guaranteed. + +`ProductCodeAlreadyExistsException` is a domain/business exception defined as like below: + +````csharp +public class ProductCodeAlreadyExistsException : BusinessException +{ + public ProductCodeAlreadyExistsException(string productCode) + : base("PM:000001", $"A product with code {productCode} has already exists!") + { + + } +} +```` + +`PM:000001` is a code for the exception type that is sent to the clients, so they can understand the error type. Not implemented for this case, but it is also possible to localize business exceptions. See the [exception handling documentation](../Exception-Handling.md). + +#### Application Layer + +Application layer of this module has two services: + +* `ProductAppService` is mainly used by the Backend Admin Application to manage (create, update, delete...) products. It requires permission to perform any operation. +* `PublicProductAppService` is used by the Public Web Site to show list of products to the visitors. It does not require any permission since most of the visitors are not logged in to the application. + +Notice that; instead of putting two application service into the same project, it might be a better principle to have separated application layers per application. But we unified them for simplicity in this solution. + +As an example, `ProductAppService` has the following method to update a product: + +````csharp +[Authorize(ProductManagementPermissions.Products.Update)] +public async Task UpdateAsync(Guid id, UpdateProductDto input) +{ + var product = await _productRepository.GetAsync(id); + + product.SetName(input.Name); + product.SetPrice(input.Price); + product.SetStockCount(input.StockCount); + + return ObjectMapper.Map(product); +} +```` + +* It defines the required permission (*ProductManagementPermissions.Products.Update* is a constant with value `ProductManagement.Update`) to perform this operation. +* Gets the id of the product and a DTO contains the values to update. +* Gets the related product entity from the repository. +* Uses the related methods (like `SetName`) of the `Product` class to change properties, because they are with private setters and the only way to change a value is to use an entity method. +* Returns an updated `ProductDto` to the client (client may need it for some reason) by using the [ObjectMapper](../Object-To-Object-Mapping.md). + +The implementation may vary based on the requirements. This implementation follows the [best practices offered here](../Best-Practices/Application-Services.md). + +#### Other Layers + +See other layers from the source code. ## Infrastructure diff --git a/docs/en/images/microservice-sample-product-module-in-solution.png b/docs/en/images/microservice-sample-product-module-in-solution.png new file mode 100644 index 0000000000000000000000000000000000000000..27e841cdd569dfc7833650dbc9e0511fb80cef03 GIT binary patch literal 12817 zcmbuGXEE$Q^k!k6AP^%+4*Kl13t}tPGmHl9iT38~siM^ko-b_2Z78Qnp%=0C+)_c-sTW%yQegR|$zaak}fA*`LLIF$89_ zU4f@j3IzJZF{uK1>&`_nq0*LfjUW`l%S`3jAbBDG=3B==#$uV-O5C{xl&&l zz4zJf_xm`Yd*r<4SRfYEZ{|?-CGHTd*IyAv?HoUp;e7T1V@7m&6m7}I9FRFKkI!0o zS=D*de!cr`Z%YM?=m}ZPBhpkGV>lD}Np7VEO(amg2;0toz$D^QG9`qXYpnhBTDphg zTjmBfDRoF@6yw3fQzoXu?u49Ci!|niJvH(9=cHIeYwDVOAH~LtOyz9IvV+MAvYp+E zM7WcfrM04{FmWMz>*hi3Ey^rvuk*2~k?Uba34M92tg1g$8T~iZwFDc(12#l#6JkJqBF)EM`yO=>t7$g0J2pzqKq=sq77vbm3L(LMhjNC%M0` zU2tb;+IG&Vn!nsJf28Xs;LLR;94zMDN^DD@~-he2!De%tbgGLrk94O;>Amc=H;)1o(hnwJFc{CK>1 zzk?qn^w!F@^zJXy~tMp2z=pB(;OKAvLwR$O&mate$sce$=Zrm&j~|N8 zb4O!Rk?)Y40(C_jaaQHMfw8-`4AjsyE(OeKpnPxs_o(5WmSH z(5&uo`U5C}&YR`7M8mM-xFAUYoq3&CTQ=s}{j|)5skcyH^4A3)x%XbG zy*_4yeC72ru$F~YVZas64#+#a=jw!3aGvWlS?F=DnDqS`siPK(|%#%0$g<#O$J2?Inn zTC>M`gz9v9v5^M{CSCHZ5R@kKqJ9zRn^mwxQ>}SU11r&8?>#C{JQKz1~k)I^}p*M(y z+ww~lOKt4yBurkKa4aoKxSXO1Qi`Ugl#bvrv6l} zlk2|6oU(;LY~brv!Ho`Z;)`> ziXf^R4Kc2isl5L_@Ur3ya!F~oD0nEBA{d=w7K*+6T$pi!`N0#3tqqf}+u{U?Wd*|I z=>F8uemifss35OH$@7P<8q(g=XR$k--ZQh!U|tO|@%j5hyJj&q&qvM4YGiUyvVKi# z7v~Ywsuv{(hD;~VnU2{Aq4{=EKS`evZJIxUf z#6rwO0Ah3{(FB2d{JOD0FVep41l$kr+@7r`&t0LC6m>gE@+R_Jqif9}%f$xqia>v8 z9_`G}zZE3QUFn;0uAcwhJKnsr*pv>veQYG@JYOAQh2swgg%P}(7ugqUwnz5|(z|_Y zPU^iJrd%{paO)pBZcOu}#Rc8W>6PeRSXeka^H33>0=2MZD3~Orrp|u)Nj3m?7L3Lv zn>BTaEqCo@(9x#aa>Fqg9z3tln4FySJU#k>LZw4uW&{RiN#ws07erf2axmDi5GWjw zF8J@qOO{kUddrJrU_UHgCU`&mIfJKzot+)93mXHB1ePkVY{6Qs;U$X z!wL%t_!6;7a@WW-fu*0FodK`4xw&~F2slwS)Im2+>hAAO3r;g5@8x5ngyQwOmt^YF zphSmYE*cW`?!#(mm}%wOmw@{{OhTq?&oFOXFyC?9hsRtA%|KQ*ncK0`Ro2sZA1U~k zOESBAWBbjf?L(BAH7maMv2d6Z#7ibt_3uRC7?hJcO7><*2jbo044y-gxi#Oik-{>7 z1}B#jKGFVeeG0PD`VD0QHtT0B4zO=4Tp*vNXC^>Z{4kjd10aem6+_2(D# zL+Dy;{d(2>QFgk^UNJroEr{2GcPq9{yap7;VT;59MVmuY;SpcBb2uV?ajV=wAJ@H; zDaP%$Yo@4t`YIsWev-IgbD$k-Kr(AB*0OiTM1>Bb`sF5!Q)I5@b{vItVviQyjlwzk z7_c^PyjpS^;oXj9s?9#AR%5(ww>|JhUJ&zItbn?9RaJN|k4fsmO;SYZ6hE3r3`J$} zBTgt8@mLqE)yVoN=*uG-ldH;F^C?rz?nN^B=U^NIM%f`SmAo^l&RDW>;xOSO=IA=B zw}FC2z2i#Uolpg;;7JtfC)0fl{0jYyH#T({tlEfXpXqWo^B3f>D@ z>>FT8iUN{l;mJ^lknt_fkY3<<+>n_20;I`LKqpKO%d8SrBR;CIYIFV;Ln*LmS@VU%GmZ36)CF}j;AVWJYrTE4!Nr%Yc*Q1_TtSesE*eIwft-=it5HLP9(TF zl?F5r9_5UrmWSzRzDdx1UD!QtUZPL%6g#XgU50bdKfZ$Axed6=L|r|L_36ed=i~RZ z0ny~9miR2%gMsHZ!ubjc78HiKKG1uI5CV{ojKM3=|JdQ{AfO3-iIW~So@=4=aAXuQ>(~b6ywNZSQ)UGV8p1?oRu)^eg)gAFhg1Q=De2A| zqRq3;t2(@LnhbbO3a2HOrjD{K`q6{cC{mQ1UTMVM`|_D4uA7r2upPCJu!af4C+)rXu%eY!1Q4Ovp*yTAC2rgEa~n?>T7 zrV-X0%gN&2cD)NyCJq<(U+8M7;9TSwjM9aCNF=h7%3R^1LC1y?ClsrzyF?`fW0T{l z3MP=drUh|u=c@T`HnSO-qJwIpA1*`lZy?nVqKgB z3IwOmv!7RuG;!LC8~jm9*!7bfUBF6#O_TH=5VJm2JW!!MTX zr=8}`#`G^d^-qGm&(CZhj)Zu))@5P1Pt-sypASeh3EO_w(9ebP&|`)=_H$A%^-j|y z*D`cLp!i^#t1Rb>gC9W)A!}YGFi&f~I8R^AR|A2nf-C)|-wN(w&L+#v184826v1kh zHFZS!atho+_&+qC68qv3`P>LL^+KZe(WrF&z_FUQNYiLX-C`3ecZk$%UPHrkkj8>>xsHyKT@Ihrwz8BhMz5Xy~?5)P3iYQ=}hcqUL*CmsO2Y#bYq6!Y1`zFp6?P; zJ^=+tca4&C*@=6SFB$imidN}&HJ|J=I3Rz+_e(8zPRhMPiDNpVl=Dn5*!s-!3M%oh znfR$>&6oiF@EdO6i^FIb@YYMj+hS|!m?6BoWHFu?A&Kb=ckU<7#RB<+W5XbT2KyNd z{acBde+W^scAx=)7V-X->QN_2=_dxi`Yk0T?Nxctsi@}8py%kz{nH#j9w796qawJ7 z&rTduUpl0p7UBePfx@`5C^Wa-k4Np|;n8D!e;u^A}kIAJYxvJ+&&XcJ0Lz6HB0>bADtC9_^VZlUEH+^gaXf)@%d)1US-O73g6_Qw?V`L(w08CTjRysYQx-|vN{tzB;aN;iXH<&!+9dYz z&sPGpI(E~csFz~!h}9GJ+ro7DLN=brFt#1H-{z7oKV3w3$J?Fh*eo2mJi7ddXD%|# z(~^|8*bCE`3IaekO*x{nBTJ;9sPx8~Yz*%mlT6XeYW>qSQYMj$VH92cyPfIa2=YOU zH^eO>Xmw?)dayTL01bxWO?gfCq0ohiJ(P1Jzc5DQ%Nz^}-D#YX z7xP-zhc#`XI_MgY34Iiwx8`S<>v?cr2tSkXI@|N#Ia?YkzFM94Cf@dtc`+kX<(TqW zaoQgP)6;VQ*@QBv!^L|}N#(xwsnLY8dLGlYT6XWEp;0K*VcU17$%<{LG(m0Sw>`1g zpR5t{_ss_qOqMu*+P@oDpW!&!V%_A`LWy{DRPIO3H{9!jI%A4An=$V_QVMJ8Z}_}2 ztl0j3o-mfAdOULy(U+4|-dM7MbL_ogzA?-Kddd){Zt@^=jYpz>P!R+oM7}Ky0D=MQ z?5gkat!Dr*MPm6si3RiVtTK}W|KO~PhN1KnPK%i_A#*P#24%frkU9P72vl;5da&E* z9$wesZ~SR}vAyijzQk3~J#SgQs}>OlpNJL$XSsMlWsr$u5PPqdZbmjM3WY|ciP!5< z+?S6K23tVCP+)XQ6U#5q-V`8`(81*LM8oAX%>IT(b`?v`LpL>BRw37pgLas_qFxrmMx3V~!l3^nTVW|Wv@hr9#o83!pBo8FEQ+JZYI_Fqi3n@A2wJR3 zYr3^px?Dy#efoItolKJf%%Y4Um08Qanp3~9;5QSGHc!IGPXM2K*0~hizMnI;khp5o zVDB}Xe51w8>?NQA48Gh8_M`;0B>GIp2KwE0AGZw8mp2azl52WV@lk1aEuPz8A}Y^g&ekLYB3m$Y*s00Tn?++ zRV{fDKlbYvK!?yeqhE%(=b06!qGxE`ILSK4!Bhb%Hm2nl5=S?I{(LvfFQ2cG?xvK1 zXc@`i!h+HGPxwK0sC$#A$l*k=J5j30*#ho-{#03&^Lv|}IYdEK)=1U>)67UOTF zs;hU5rUcr?k-SmMNh_yDZ9c9r)429pNYrBklV@bS44P)<=Jj|~|CRL&yUJ;gT@>kD zAT{X4T}s@#>bGqJ~g?w=6R@qlHrOICP zO02exoc)%6iu%E5Aq57J`6hS!1mU#QH&nFn9 zt)d`0@mEclXobteO3vGg2Z*SWUBaW;@q63_J1~JZeDWGY3BV43qG|FxT|uK!2ncy{ z#(#l5TY8tewGDrgP@5B_enB=3yPbac`Ou|{YR&+aqRAqTOfyTZvBT)6TCafWKC8o1 zd3$Af92P4VKGHcMA_|oIMwXkbjnP8m`dgm(hHTpTDdTmAFe?V0*gk2_$twIzaB*Ma zJ4I0z+%o?vWlj<6+)uhXs*hr<=(T>bMmMrLKLJ)W0CTNhyu-aEFRm~!(7p<+q*2va z3T6Dq09$yGAr7Njp?KI>qVDf=sR4QD5Ke z!KnK0mVtJng8}COV&GYchS}r{z|FnTSq$fXk`vW{JO6l-MV}x=_v@=lKTWGLvT`%* zX}e#>{cYQXRYE~?%QZ#dyRw&a7 zVBvVzgZ{Aq^AFwBXs|oYe9~yXr9w>fN!!;BrP4tBRIt z$xWtD%Y+AgOtP9V%i(3u#@YAyr}C2VU<@=Nu+9LqS6Jz#n0%kKlt}id?zB2o{dLLQ z%-TqZ3D2|CVCA=&ku5F(hvHTrrBTeQMAIud(t$*W;@Um2I}xrqGi;6cD&hr!Uz(;Wl^%cdM9t8LftrUQiLTvQJg-nQ@AI z#r~``p?3%9uE?vLZLvUExBi2e&{s9nd{8Cw8T`1_jh%xKrGP=kGibJB?LEEc=W$z~ zSQQ8SjI}rSQSC>`LY4_xyFxh$j$)MfxsO*gSH-y6#2?E|L~z~6LEs?ZSsyZ9z>(sU z3wxL-SE$jffkasg*xWQg)dq@ylSb-vJ$(3uwO@t;-jrEH?wv4BzQRoK9sJxD8J?)x ze<1KDSo3ws)parbsPW(`lksXSR9u9#iLWXVtacEN^smbF7EkSc_)8MF-m?U>&J*7h zsepSR;I>E^HYWoY7^GT>P1DU<;BU-v4$7eg-s@MaeU%wkT!K40bTE2g*dI~6J$@^p zI8VjxT&>aSIpve(pRqJDISA#U)GU{@1PWcxw1DyPe7Cy!Z>Bh~4dFgne#&3ccpn=S#%8ti6B{u2f7T!?Z{Zt& zh|0P(9fb>nIIq_{S)MT#y}_W3-SlLDu1Z7N7FjD07Ny$nYWpoZy5l254$S}+{=#=B zlLt?hX*+wt=FG7(#4OlO|FA1PXAXkk7$-OtVHL%Fi{W?h-{=JmCca*#}spK#q0phONW8`o#0YgE^EMDz$`Ao!p7r|qb^AAmZ% z$=46D&uIlyh5munI!X7H!p?XaBlgoHOx=Y5R}%$%tuzQAI+Dn58|w!T2?@ko|1#3g zSOrS-D_N$6J=Yoj3Ff}5tu5%YMY3+hlAD$NDCt>E7La(g9H@)u6eC^a%l8q}EoF-& zMZnu^k+-f71Wvy>)faW|%_jK1r(Mv;u@WG<+N>wb0gJJVdujq9knbJ38c@u3Z;L3= zZZTHpwUzL5be4YMh%VPO(3Xx4H=cd$^cA``>vu4f3$*WAUjUhMT^*Mx~uA*tvSfm z*x=r4ly&~FH46C3HsRuGZ0JqSBID`g8W?UsY+t7+aJth_Q)VDJ%rVT*>?8`@=Q|k9 zn+B^@jJOVQOXDt^E)O6w`;lUR%6`+8yto2;9gD~xiBP3Rfe9EY^y+dc8p}k@4?>cK z%h|P0lkL(QGtDgAS{c^1wO$XHRyP5i$W0jJzGRNh@P4B6jPYzR=In!j$d^&eqy3*h zT5u-%!5h498y(6$7dcFFmnDZ~+7R}Ka z$Q!MX?B9Rn-1p`?9pb1<>d)uHksm#44wj>gL+jjj&sZEMZ8N>h+0#x1p2al;++c2OK!CGONC)Af8fwmI}vTayxkO8?{fpAnW&ld}!OQ}*-SI-HwR9%lL)MDy8 z3v-o4|3`2Uxe`Zi=0h!UD)~D5yQqCK(~nPN4(*U+0oI||2)MKf7Xq#oRgB`D!+&h} zm(z4Td9qBHJrlh&Br9yJ+Iob*W%)7jWVtV*#9rWR;;&Zuf2|9S0smGP9K#UsrYLHY zf)|{7xa&u_ZaSQFK?KwJKx&$y?(7Crv3oZd-^rdqnw=X{e74TU>1p{pBnjHysLLTz z$lu}g53B@WuF6cDDbWVV~ zwD*|uOJNr(Ki|}gZ;$2*aLo;nrBSmWpFn}w26|_6{H9f3+v=|6H})Oc0N`{Fpo*tv zA=v*bY#Z+7bMI4G%h`y;FaQS$L1{mF2+6MB0jLX5sL4*IXp?)P-u_F^*SXeSgeG`$ zZBAE?@G=!n7wWitOqT*Hd~vj1VS-Dk)Z(aMdY<%bp~U)?kE%^j$x`gbntGk@c0CT? zznQzG6G+(99~DK&*FK=YfhflTcA$oWuF}3}4ajHk#`PKXzlH4d{GIP${Fb-C?wDR) zocp~^Z#wKcERv)nvfjYYyg0DE>o?O^MA2qrB^0aE98L}Xz$`EjeyPRRDc%$iO;Fsr z+*+bnO*6bp^0eLUDkM{ZLPdgS2VmR?DhfJ@+=_r4on)|3e3d2Ic z1DJZi)shLlXib+P!>hvaSFwJinWJ;u^||uVV%xyP5eP)ucQp$jplqHL_;y7JB`;k55_|6b{GU~AKtPJ6)Eb->*x_*1-=}Z) z=;|W;D`gTc0xd)BgMzLgx^v&ssSwV`AeuXXvzMj9iNz0;+sjs06{sXJBa`O(wcT4Y zCrQUTj_5lHNo$efM-!|m!Ph_B+Ep)Kx=IYQOJ@3UIx|auw`UC2j!2@t9U)4wNa%hF)_$$dQIe{So z;G|zms822lEEZ&iaw~*A69n??i9J#+%o=)tnbm+yO6+gbK@T*Pnj0K9#_o-_f`z$q z5ET5CZrnm0q>8YZI;#p{&CF@?!eE>Y-2GE7ameyaNIXjXeDCriQdnny6dl}+IZkPI zJ#U}u>Zo`eh6jUnP6pUHUu$0Zd7QB%=N(VVmK9k)z4Ai0ab_{vF1O*zwCWoX-8 zFa%D#gym@GPdRXksxp-)DD?JnAG0Yye*xV6CUNO|!9J8G5C!LfG*$6)?uX3I`tIw; zPM+fSy1TRQ8{NkrGl`6g7dYU+YM&wCI7srF%cB$9>X1f!htdfoB-iNMicG@9#ahqggzU&8Cxp zExV?B_cc6Vke6?srdzFd8^PCxvJ-f8+@?(hTg2fY5HS#uWQImY3+uh^H9|z70SXU! zoWF;2{sJ*5&v^1X%dPqBp26BY_3NGWw`qpxL62#S?`ig@d)Q3(r_7)9Ht#4%?iQ!d z|4#r`F(3N8$zj*ybgs&BexJRRxFh`r9;54jqOg83@AFehz6LfdkektxlPyiStVFt` z`_X3I2<1RB#?(}|-3H{NENj_s6c7iT1{7=fOUV^0yZajVApddl!&`Yp#zvdEW@D&9 z15uw zEpyk;k?*cg8b`HiN@@=4TCST1U(Ch8Of65%I{>fj9n@ZCY%T*(W_Y-HJQ9L{66=UQ*88+58ws)OK;t+vW6pA7g zVo5eXHdxDc=wt-bbYw8~)~og2$t+Jv(|*yTkgRG`%lhL-P0B){Hs>Bh27I!D_O;rk ze7M#5N6j7hJ~%n<&B#=7wWO;w@vb0a>!A7dxYnaZBJMQ#tq>`4adQ?cF+a~^Az6Zr z`r*Fc-@`KTH8LbQvw&_o=&h5J(|nWX{{FssKjPL8|%=#+6(nVuWN@>5% zJ#x?;=QN=jkL_hi38ZuhHhJGeM+B^@LUnH2MOvX=1w|$($ma$uXJ;gFVE>*(V(P81 zfGQKJ`%h}q66#__kzvv%?*#8hN}Q|$GY$QzqS690Cx_(Q3<7pt5p-SpTKN*^hmqbt z$)N|k#2%R^2jh{=6_oW;U%B?gP@(X=Aw9WizRow+ubes?_-oFjs%pz*O$w@ph7blh zGO^ac4AiDn^k7qbUQ9BX$+&v?4T#ra;d+BRk=45NBc zjU4W3z6@ueb%<9uZ&S?f*39Er)^d_%T==STG%~4-JbJ#oZL1tx~nVVa5A8Nh-Iexi+Rf(SkPnm8b!-AFd+r#9;><}AnsiC76(T!@r zB$}f8L(;TWOCN zHzv;hqIqUYR7x&R3pWkGa<64Z^`@?->rg=VnAvzA=(yCG^mCkyDx=HT23BBcyfJsC zH}9@|aWF{Z>62p#1?D6;a~+^Get@fT#J=V<-t_E94E*RIpI={97*z1hps{v1m!e1S zg9rmUBUl1^k$UX7gp^1;vXSiG9rxom73!r$dFMQ(xBtQG__TpjF(U6;Rp8X;bo(qT z-Q)DnanrH*esjvfwihrn$VtE~$UuCK6Za=Sj`{ZVDc89_1=G~wnC@Wl-0}Ryx8~?B zJV2*>{U^#(nD3jrm@corbby?|Nx96&+E zxB@9RA+GR^YD4#a0INX45>)$TIcgbR+}LdS2P{yBL8!Lz$wb#?nY76y?#g!Y1sm<> z{yG698Sst43CMEmT7h$@h1{z0lc#rtxvtfPuoF&>F}De<@N59<}vs z^DtTK0i!S8v**l=74kV((uogtda@-YzflBN7YGOWbH5yRR129H3Qr0T;?TBx`O>a_ zy6ZtkxQ=>CZf?^t)P2>MwjmW5)YVOpyREqgZK!};%biRfKfr z{~P_{Y1Hn^2A^006cK%suHr(Ewr(dr)LFbmg|^rY&3_+Vz9RPwS+b30XO)d+HWY93QwVx zj#`R64Ul;x`QnYH(lw&eOzIj1Q*FGlpP2~`iMEfMvRhk&nEvt`QxLAq)Nn$FrRhII z_lz}}&6pQ|OG-}r{k*Q8ax`Yx=4O%DU;K6v9c$@EzaQaVAj+4nZz~&E;r7FezJb~W zGz~GO!z)a%sZt77f1h0_mt9&gbYSw49QDq}bDiLIDfvs>kLdt^iST9*SU}PQ0%%|c zaDfl%g>#+`Y0kCAop5=l5F2lWuGy-#LtwgQp;-gWP#r(zp27VjiEOQx63@Zgfdd4JlqtbP=&pm#SG#+HwDPK;(b~Y->E73Cfuvp(e;d zs4r~@gdO`TPRyADpu;81517M3HqmjE=#_|@Qv(8^wZKwAKYAOB5BkLIw z2_p7Hc_zXjN&&2pmBmL{(%o%b)^Wb#t$eK^-nIq!$!fW3L5IB9FKGWll%O0P5}St< zshFV-Hn4+MY8ZpgLb)qVH4V(M?t5O4{%sI(*sO?u|M3D#5hb?2-@ z7DJp_>c3slBWp19ps%2N$~@_jXgP3cM2g3#=xL5SQmd_FC$jL3`COa}` zPO3JD(7 Date: Mon, 18 Feb 2019 15:44:40 +0300 Subject: [PATCH 046/112] added toggle for providers --- .../Resources/AbpPermissionManagement/en.json | 4 +- .../Resources/AbpPermissionManagement/tr.json | 4 +- .../PermissionManagementModal.cshtml | 62 ++++++++++++------- .../PermissionManagementModal.cshtml.cs | 3 + .../permission-management-modal.js | 11 ++++ 5 files changed, 58 insertions(+), 26 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/en.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/en.json index 0886572861..bb6999c100 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/en.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/en.json @@ -1,6 +1,8 @@ { "culture": "en", "texts": { - "Permissions": "Permissions" + "Permissions": "Permissions", + "OnlyProviderPermissons": "Only this provider", + "All": "All" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/tr.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/tr.json index 061b93fd86..8da6bccd95 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/tr.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/tr.json @@ -1,6 +1,8 @@ { "culture": "tr", "texts": { - "Permissions": "İzinler" + "Permissions": "İzinler", + "OnlyProviderPermissons": "Sadece bu sağlayıcı", + "All": "Hepsi" } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml index a2bc020495..20b42df993 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml @@ -19,35 +19,49 @@ - - - - - -
    - @for (var i = 0; i < Model.Groups.Count; i++) + } + + + @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) { -
    - @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) - { - - - } + var hideCheckboxOnToggle = (Model.Groups[i].Permissions[j].Providers?.All(p => p.ProviderName != Model.ProviderName)) ?? true; +
    + +
    } -
    - - +
    + } + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs index 55217b797a..04ea5330db 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs @@ -20,6 +20,9 @@ namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement [BindProperty(SupportsGet = true)] public string ProviderKey { get; set; } + [BindProperty(SupportsGet = true)] + public bool ShowOnlyProviderPermissons { get; set; } = false; + [BindProperty] public List Groups { get; set; } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js index fa4815e16e..c4256bfc26 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js @@ -48,6 +48,17 @@ } }); }); + $('input:radio[name="ShowOnlyProviderPermissonsToggle"]').change( + function () { + if ($(this).val() == '1') { + $('.HideOnProviderToggle').slideUp(); + $('.hideTabOnToggle').slideUp(); + } + else { + $('.HideOnProviderToggle').slideDown(); + $('.hideTabOnToggle').slideDown(); + } + }); }); }; }; From f16fa503501621442f018797d2b1cec61b8ce42d Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 18 Feb 2019 16:23:36 +0300 Subject: [PATCH 047/112] Docs module: contributors order & skip contributors if nav doc --- .../GitHub/Documents/GithubDocumentStore.cs | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs index 5f92d565c2..44edfa7e10 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs @@ -29,6 +29,7 @@ namespace Volo.Docs.GitHub.Documents var rawRootUrl = CalculateRawRootUrl(rootUrl); var rawDocumentUrl = rawRootUrl + documentName; var commitHistoryUrl = project.GetGitHubUrlForCommitHistory() + documentName; + var isNavigationDocument = documentName == project.NavigationDocumentName; var editLink = rootUrl.ReplaceFirst("/tree/", "/blob/") + documentName; var localDirectory = ""; var fileName = documentName; @@ -48,7 +49,7 @@ namespace Volo.Docs.GitHub.Documents Format = project.Format, LocalDirectory = localDirectory, FileName = fileName, - Contributors = await GetContributors(commitHistoryUrl, token), + Contributors = !isNavigationDocument ? await GetContributors(commitHistoryUrl, token): new List(), Version = version, Content = await DownloadWebContentAsStringAsync(rawDocumentUrl, token) }; @@ -118,7 +119,7 @@ namespace Volo.Docs.GitHub.Documents { try { - var urlStartingAfterFirstSlash = url.Substring(url.IndexOf("github.com/",StringComparison.OrdinalIgnoreCase) + "github.com/".Length); + var urlStartingAfterFirstSlash = url.Substring(url.IndexOf("github.com/", StringComparison.OrdinalIgnoreCase) + "github.com/".Length); return urlStartingAfterFirstSlash.Substring(0, urlStartingAfterFirstSlash.IndexOf('/')); } catch (Exception) @@ -200,18 +201,16 @@ namespace Volo.Docs.GitHub.Documents { var author = commit["author"]; - if (contributors.All(c => c.Username != (string) author["login"])) + contributors.Add(new DocumentContributor { - contributors.Add(new DocumentContributor - { - Username = (string)author["login"], - UserProfileUrl = (string)author["html_url"], - AvatarUrl = (string)author["avatar_url"] - }); - } + Username = (string)author["login"], + UserProfileUrl = (string)author["html_url"], + AvatarUrl = (string)author["avatar_url"] + }); } - contributors.Reverse(); + contributors = contributors.GroupBy(c => c.Username).OrderByDescending(c=>c.Count()) + .Select( c => c.FirstOrDefault()).ToList(); } catch (Exception ex) { From 55f14846c973509bf9c48892ac15330c3f3786b4 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 16:39:30 +0300 Subject: [PATCH 048/112] Should add Product's Id to the ProductStockCountChangedEto event. --- .../ProductManagement.Domain/ProductManagement/Product.cs | 8 +++++++- .../ProductManagement/ProductStockCountChangedEto.cs | 5 ++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/Product.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/Product.cs index 0d0362d8d3..bca0a7b09d 100644 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/Product.cs +++ b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/Product.cs @@ -91,7 +91,13 @@ namespace ProductManagement if (triggerEvent) { - AddDistributedEvent(new ProductStockCountChangedEto(StockCount, stockCount)); + AddDistributedEvent( + new ProductStockCountChangedEto( + Id, + StockCount, + stockCount + ) + ); } StockCount = stockCount; diff --git a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/ProductStockCountChangedEto.cs b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/ProductStockCountChangedEto.cs index c456a7c135..272eade5f2 100644 --- a/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/ProductStockCountChangedEto.cs +++ b/samples/MicroserviceDemo/modules/product/src/ProductManagement.Domain/ProductManagement/ProductStockCountChangedEto.cs @@ -6,6 +6,8 @@ namespace ProductManagement [Serializable] public class ProductStockCountChangedEto : EtoBase { + public Guid Id { get; } + public int OldCount { get; set; } public int CurrentCount { get; set; } @@ -15,8 +17,9 @@ namespace ProductManagement //Default constructor is needed for deserialization. } - public ProductStockCountChangedEto(int oldCount, int currentCount) + public ProductStockCountChangedEto(Guid id, int oldCount, int currentCount) { + Id = id; OldCount = oldCount; CurrentCount = currentCount; } From 3f58266eaba8770c9a10b9b91869c6bfd375858a Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 17:01:45 +0300 Subject: [PATCH 049/112] Added Messaging section. --- docs/en/Samples/Microservice-Demo.md | 81 +++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 7cca79c4fc..6c5845092a 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -1185,7 +1185,11 @@ private Product SetStockCountInternal(int stockCount, bool triggerEvent = true) if (triggerEvent) { - AddDistributedEvent(new ProductStockCountChangedEto(StockCount, stockCount)); + AddDistributedEvent( + new ProductStockCountChangedEto( + Id, StockCount, stockCount + ) + ); } StockCount = stockCount; @@ -1299,7 +1303,80 @@ See other layers from the source code. ### Messaging -TODO +Asynchronous Messaging is a key concept in distributed systems. It makes possible to communicate as a loosely coupled manner with fault tolerance. It does not require both sides to be online at the moment of messaging. So, it is a widely used communication pattern in microservice architecture. + +#### Distributed Event Bus + +Distributed Events (Event Bus) is a way of messaging where a service raise/trigger events while other services registers/listens to these events to be notified when an important event occurs. ABP makes distributed events easier to use by providing conventions, services and integrations. + +You have seen that the `Product` class publishing an event using the following code line: + +````csharp +AddDistributedEvent(new ProductStockCountChangedEto(Id, StockCount, stockCount)); +```` + +`ProductStockCountChangedEto` was defined as shown below: + +````csharp +[Serializable] +public class ProductStockCountChangedEto : EtoBase +{ + public Guid Id { get; } + + public int OldCount { get; set; } + + public int CurrentCount { get; set; } + + private ProductStockCountChangedEto() + { + //Default constructor is needed for deserialization. + } + + public ProductStockCountChangedEto(Guid id, int oldCount, int currentCount) + { + Id = id; + OldCount = oldCount; + CurrentCount = currentCount; + } +} +```` + +This object stores necessary information about the event. Another service can easily register to this event by implementing the `IDistributedEventHandler` interface with the generic `ProductStockCountChangedEto` parameter: + +````csharp +public class MyHandler : IDistributedEventHandler +{ + public async Task HandleEventAsync(ProductStockCountChangedEto eventData) + { + var productId = eventData.Id; + //... + } +} +```` + +All the integration and communication are done by the ABP framework when you use the [Volo.Abp.EventBus.RabbitMQ](https://www.nuget.org/packages/Volo.Abp.EventBus.RabbitMQ) package. If you need to publish events out of an entity, just inject the `IDistributedEventBus` and use the `PublishAsync` method. + +See the [Event Bus](../Event-Bus.md) documentation for more information about the distributed event system. + +#### RabbitMQ Configuration + +[Volo.Abp.EventBus.RabbitMQ](https://www.nuget.org/packages/Volo.Abp.EventBus.RabbitMQ) package is required to integrate to the RabbitMQ for distributed event system. Then you need to add dependency to the `AbpEventBusRabbitMqModule` for your module. For example, `ProductServiceHostModule` declares this dependency. + +`AbpEventBusRabbitMqModule` gets configuration from the `appsettings.json` by default. For example, the Product Service has such a configuration: + +````json +"RabbitMQ": { + "Connections": { + "Default": { + "HostName": "localhost" + } + }, + "EventBus": { + "ClientName": "MsDemo_ProductService", + "ExchangeName": "MsDemo" + } +} +```` ### Caching From 1de451f0374b5e5ab8372932e12fd0186dc0f9ad Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 17:23:38 +0300 Subject: [PATCH 050/112] Added Logging section --- docs/en/Samples/Microservice-Demo.md | 59 +++++++++++++++--- .../images/microservice-sample-kibana-1.png | Bin 0 -> 79209 bytes .../images/microservice-sample-kibana-2.png | Bin 0 -> 54003 bytes 3 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 docs/en/images/microservice-sample-kibana-1.png create mode 100644 docs/en/images/microservice-sample-kibana-2.png diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index 6c5845092a..efde7fb354 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -1301,7 +1301,7 @@ See other layers from the source code. ## Infrastructure -### Messaging +### Messaging and RabbitMQ Asynchronous Messaging is a key concept in distributed systems. It makes possible to communicate as a loosely coupled manner with fault tolerance. It does not require both sides to be online at the moment of messaging. So, it is a widely used communication pattern in microservice architecture. @@ -1360,6 +1360,8 @@ See the [Event Bus](../Event-Bus.md) documentation for more information about th #### RabbitMQ Configuration +In this solution, [RabbitMQ](https://www.rabbitmq.com/) is used for messaging & distributed events. + [Volo.Abp.EventBus.RabbitMQ](https://www.nuget.org/packages/Volo.Abp.EventBus.RabbitMQ) package is required to integrate to the RabbitMQ for distributed event system. Then you need to add dependency to the `AbpEventBusRabbitMqModule` for your module. For example, `ProductServiceHostModule` declares this dependency. `AbpEventBusRabbitMqModule` gets configuration from the `appsettings.json` by default. For example, the Product Service has such a configuration: @@ -1378,18 +1380,59 @@ See the [Event Bus](../Event-Bus.md) documentation for more information about th } ```` -### Caching +### Caching and Redis -TODO +A distributed system obviously needs to a distributed and shared cache, instead of isolated in-memory caches for each service. -### Logging +[Redis](https://redis.io/) is used as a distributed cache in this solution. The solution uses Microsoft's standard [Microsoft.Extensions.Caching.Redis](https://www.nuget.org/packages/Microsoft.Extensions.Caching.Redis) package for integration. All applications and services uses Redis cache when you use and configure this package. See [Microsoft's documentation](https://docs.microsoft.com/en-us/aspnet/core/performance/caching/distributed) for more. -TODO +The solution also uses the [Microsoft.AspNetCore.DataProtection.StackExchangeRedis](https://www.nuget.org/packages/Microsoft.AspNetCore.DataProtection.StackExchangeRedis) package to share data protection keys between applications and services over Redis cache. -### Audit Logging +### Logging, Serilog, Elasticsearch and Kibana + +This solution uses [Serilog](https://serilog.net/) as a logging library. It is a widely used library which has many data source integrations including [Elasticsearch](https://www.elastic.co/products/elasticsearch). + +Logging configurations are done in `Program.cs` files using a code block similar to the given below: + +````csharp +Log.Logger = new LoggerConfiguration() + .MinimumLevel.Debug() + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .Enrich.WithProperty("Application", "ProductService") + .Enrich.FromLogContext() + .WriteTo.File("Logs/logs.txt") + .WriteTo.Elasticsearch( + new ElasticsearchSinkOptions(new Uri(configuration["ElasticSearch:Url"])) + { + AutoRegisterTemplate = true, + AutoRegisterTemplateVersion = AutoRegisterTemplateVersion.ESv6, + IndexFormat = "msdemo-log-{0:yyyy.MM}" + }) + .CreateLogger(); +```` + +This configures multiple log target: File and Elasticsearch. `Application` property is set to `ProductService` for this example. This is a way of distinguishing the logs of multiple services in a single database. You can then query logs by the `Application` name. + +Elasticsearch URL is read from the `appsettings.json` configuration file: -TODO +````json +"ElasticSearch": { + "Url": "http://localhost:9200" +} +```` + +If you use Kibana, which is a Visualization tool that is well integrated to Elasticsearch, you can see some fancy UI about your logs: + +![microservice-sample-kibana-2](../images/microservice-sample-kibana-2.png) -### Correlation Id +*Figure - A dashboard that shows log and error counts by service/application.* + +![microservice-sample-kibana-1](../images/microservice-sample-kibana-1.png) + +*Figure - A list of log entries* + +Kibana URL is `http://localhost:5601/` by default. + +### Audit Logging TODO \ No newline at end of file diff --git a/docs/en/images/microservice-sample-kibana-1.png b/docs/en/images/microservice-sample-kibana-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f3a51bd3496495936299cad2e9d15be6a6a80488 GIT binary patch literal 79209 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 literal 0 HcmV?d00001 diff --git a/docs/en/images/microservice-sample-kibana-2.png b/docs/en/images/microservice-sample-kibana-2.png new file mode 100644 index 0000000000000000000000000000000000000000..31b281486cf9afeefc5f208b836a5ca343c1a63e GIT binary patch literal 54003 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 literal 0 HcmV?d00001 From 2f8ca6a4b03a7543b6a075efab8873f904317d35 Mon Sep 17 00:00:00 2001 From: Marcelo Mohr Maciel Date: Mon, 18 Feb 2019 12:17:45 -0300 Subject: [PATCH 051/112] Translating PT-BR of #818 Translating PT-BR of #818 --- .../Resources/AbpPermissionManagement/pt-BR.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/pt-BR.json b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/pt-BR.json index 7783fff8f9..358cf16281 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/pt-BR.json +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Localization/Resources/AbpPermissionManagement/pt-BR.json @@ -2,6 +2,8 @@ { "culture": "pt-BR", "texts": { - "Permissions": "Permissões" + "Permissions": "Permissões", + "OnlyProviderPermissons": "Apenas este provedor", + "All": "Todos" } -} \ No newline at end of file +} From d3ffff4742d557dc202b66d6acc6ea00b8f99643 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Mon, 18 Feb 2019 20:40:29 +0300 Subject: [PATCH 052/112] Added Audit Logging section --- docs/en/Audit-Logging.md | 3 +++ docs/en/Samples/Microservice-Demo.md | 6 +++++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 docs/en/Audit-Logging.md diff --git a/docs/en/Audit-Logging.md b/docs/en/Audit-Logging.md new file mode 100644 index 0000000000..f11a3f19e3 --- /dev/null +++ b/docs/en/Audit-Logging.md @@ -0,0 +1,3 @@ +# Audit Logging + +TODO \ No newline at end of file diff --git a/docs/en/Samples/Microservice-Demo.md b/docs/en/Samples/Microservice-Demo.md index efde7fb354..fcedcd0f89 100644 --- a/docs/en/Samples/Microservice-Demo.md +++ b/docs/en/Samples/Microservice-Demo.md @@ -1435,4 +1435,8 @@ Kibana URL is `http://localhost:5601/` by default. ### Audit Logging -TODO \ No newline at end of file +ABP provides automatic audit logging which saves every request in detail (who is the current user, what is the browser/client, what actions performed, which entities changed, even which properties of entities has been updated). See the [audit logging document](../Audit-Logging.md) for details. + +All of the services and applications are configured to write audit logs. Audit logs are saved to the MsDemo_Identity SQL database. So, you can query all audit logs of all applications from a single point. + +An Audit Log record has a `CorrelationId` property that can be used to track a request. When a service calls another service in a single web request, they both save audit logs with the same `CorrelationId`. See the `AbpAuditLogs` table in the database. \ No newline at end of file From ed5544b3b1a54aae1e225ac49f31860e2ed81f4b Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Mon, 18 Feb 2019 21:09:12 +0300 Subject: [PATCH 053/112] Docs module: Added user agent property for github --- .../GitHub/Documents/GithubDocumentStore.cs | 19 +++++++++++-------- .../Projects/ProjectGithubExtensions.cs | 6 ++++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs index 44edfa7e10..c9d8b63dd9 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs @@ -29,6 +29,7 @@ namespace Volo.Docs.GitHub.Documents var rawRootUrl = CalculateRawRootUrl(rootUrl); var rawDocumentUrl = rawRootUrl + documentName; var commitHistoryUrl = project.GetGitHubUrlForCommitHistory() + documentName; + var userAgent = project.GetGithubUserAgentOrNull(); var isNavigationDocument = documentName == project.NavigationDocumentName; var editLink = rootUrl.ReplaceFirst("/tree/", "/blob/") + documentName; var localDirectory = ""; @@ -49,9 +50,9 @@ namespace Volo.Docs.GitHub.Documents Format = project.Format, LocalDirectory = localDirectory, FileName = fileName, - Contributors = !isNavigationDocument ? await GetContributors(commitHistoryUrl, token): new List(), + Contributors = !isNavigationDocument ? await GetContributors(commitHistoryUrl, token, userAgent): new List(), Version = version, - Content = await DownloadWebContentAsStringAsync(rawDocumentUrl, token) + Content = await DownloadWebContentAsStringAsync(rawDocumentUrl, token, userAgent) }; } @@ -88,7 +89,8 @@ namespace Volo.Docs.GitHub.Documents var rawRootUrl = CalculateRawRootUrl(project.GetGitHubUrl(version)); var content = await DownloadWebContentAsByteArrayAsync( rawRootUrl + resourceName, - project.GetGitHubAccessTokenOrNull() + project.GetGitHubAccessTokenOrNull(), + project.GetGithubUserAgentOrNull() ); return new DocumentResource(content); @@ -142,7 +144,7 @@ namespace Volo.Docs.GitHub.Documents } } - private async Task DownloadWebContentAsStringAsync(string rawUrl, string token) + private async Task DownloadWebContentAsStringAsync(string rawUrl, string token, string userAgent) { try { @@ -152,7 +154,7 @@ namespace Volo.Docs.GitHub.Documents { webClient.Headers.Add("Authorization", "token " + token); } - webClient.Headers.Add("User-Agent", "request"); + webClient.Headers.Add("User-Agent", userAgent ?? ""); return await webClient.DownloadStringTaskAsync(new Uri(rawUrl)); } @@ -165,7 +167,7 @@ namespace Volo.Docs.GitHub.Documents } } - private async Task DownloadWebContentAsByteArrayAsync(string rawUrl, string token) + private async Task DownloadWebContentAsByteArrayAsync(string rawUrl, string token, string userAgent) { try { @@ -175,6 +177,7 @@ namespace Volo.Docs.GitHub.Documents { webClient.Headers.Add("Authorization", "token " + token); } + webClient.Headers.Add("User-Agent", userAgent ?? ""); return await webClient.DownloadDataTaskAsync(new Uri(rawUrl)); } @@ -187,13 +190,13 @@ namespace Volo.Docs.GitHub.Documents } } - private async Task> GetContributors(string url, string token) + private async Task> GetContributors(string url, string token, string userAgent) { var contributors = new List(); try { - var commitsJsonAsString = await DownloadWebContentAsStringAsync(url, token); + var commitsJsonAsString = await DownloadWebContentAsStringAsync(url, token, userAgent); var commits = JArray.Parse(commitsJsonAsString); diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Projects/ProjectGithubExtensions.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Projects/ProjectGithubExtensions.cs index 2e7f058391..3d2170a121 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Projects/ProjectGithubExtensions.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Projects/ProjectGithubExtensions.cs @@ -41,6 +41,12 @@ namespace Volo.Docs.GitHub.Projects return project.ExtraProperties["GitHubAccessToken"] as string; } + public static string GetGithubUserAgentOrNull([NotNull] this Project project) + { + CheckGitHubProject(project); + return project.ExtraProperties["GitHubUserAgent"] as string; + } + public static void SetGitHubAccessToken([NotNull] this Project project, string value) { CheckGitHubProject(project); From fcae5e939405e905bcbb40968f038e520178b53d Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 09:08:31 +0300 Subject: [PATCH 054/112] Refactor & add logs. --- .../Volo/Docs/Documents/DocumentAppService.cs | 2 +- .../Volo/Docs/Projects/ProjectAppService.cs | 2 +- .../Volo/Docs/Documents/IDocumentStore.cs | 4 ++-- .../FileSystem/Documents/FileSystemDocumentStore.cs | 4 ++-- .../Docs/GitHub/Documents/GithubDocumentStore.cs | 12 ++++++++---- 5 files changed, 14 insertions(+), 10 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs index b25ef2d76e..b5bc41410f 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs @@ -95,7 +95,7 @@ namespace Volo.Docs.Documents async () => { var store = _documentStoreFactory.Create(project.DocumentStoreType); - var document = await store.GetDocument(project, documentName, version); + var document = await store.GetDocumentAsync(project, documentName, version); return CreateDocumentWithDetailsDto(project, document); }, diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs index 20970ade0d..02ffac9ee9 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs @@ -68,7 +68,7 @@ namespace Volo.Docs.Projects protected virtual async Task> GetVersionsAsync(Project project) { var store = _documentStoreFactory.Create(project.DocumentStoreType); - var versions = await store.GetVersions(project); + var versions = await store.GetVersionsAsync(project); if (!versions.Any()) { diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentStore.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentStore.cs index 8ab0b3f332..1b001303b5 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentStore.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/IDocumentStore.cs @@ -7,9 +7,9 @@ namespace Volo.Docs.Documents { public interface IDocumentStore : IDomainService { - Task GetDocument(Project project, string documentName, string version); + Task GetDocumentAsync(Project project, string documentName, string version); - Task> GetVersions(Project project); + Task> GetVersionsAsync(Project project); Task GetResource(Project project, string resourceName, string version); } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/FileSystem/Documents/FileSystemDocumentStore.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/FileSystem/Documents/FileSystemDocumentStore.cs index a8366554dc..87a74d1702 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/FileSystem/Documents/FileSystemDocumentStore.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/FileSystem/Documents/FileSystemDocumentStore.cs @@ -14,7 +14,7 @@ namespace Volo.Docs.FileSystem.Documents { public const string Type = "FileSystem"; - public async Task GetDocument(Project project, string documentName, string version) + public async Task GetDocumentAsync(Project project, string documentName, string version) { var projectFolder = project.GetFileSystemPath(); var path = Path.Combine(projectFolder, documentName); @@ -41,7 +41,7 @@ namespace Volo.Docs.FileSystem.Documents }; } - public Task> GetVersions(Project project) + public Task> GetVersionsAsync(Project project) { return Task.FromResult(new List()); } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs index c9d8b63dd9..fbfb02961b 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs @@ -22,7 +22,7 @@ namespace Volo.Docs.GitHub.Documents { public const string Type = "GitHub"; - public virtual async Task GetDocument(Project project, string documentName, string version) + public virtual async Task GetDocumentAsync(Project project, string documentName, string version) { var token = project.GetGitHubAccessTokenOrNull(); var rootUrl = project.GetGitHubUrl(version); @@ -56,7 +56,7 @@ namespace Volo.Docs.GitHub.Documents }; } - public async Task> GetVersions(Project project) + public async Task> GetVersionsAsync(Project project) { List versions; try @@ -148,12 +148,15 @@ namespace Volo.Docs.GitHub.Documents { try { + Logger.LogInformation("Downloading content from Github (DownloadWebContentAsStringAsync): " + rawUrl); + using (var webClient = new WebClient()) { if (!token.IsNullOrWhiteSpace()) { webClient.Headers.Add("Authorization", "token " + token); } + webClient.Headers.Add("User-Agent", userAgent ?? ""); return await webClient.DownloadStringTaskAsync(new Uri(rawUrl)); @@ -171,6 +174,8 @@ namespace Volo.Docs.GitHub.Documents { try { + Logger.LogInformation("Downloading content from Github (DownloadWebContentAsByteArrayAsync): " + rawUrl); + using (var webClient = new WebClient()) { if (!token.IsNullOrWhiteSpace()) @@ -219,8 +224,7 @@ namespace Volo.Docs.GitHub.Documents { Logger.LogWarning(ex.Message); } - - + return contributors; } From e0de3e4712ae496ca84a46fdad5bb37a631e58e4 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 09:09:31 +0300 Subject: [PATCH 055/112] Decrease cache duration. --- .../Volo/Docs/Documents/DocumentAppService.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs index b5bc41410f..8a76afe357 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs @@ -102,7 +102,7 @@ namespace Volo.Docs.Documents () => new DistributedCacheEntryOptions { //TODO: Configurable? - AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(6), + AbsoluteExpirationRelativeToNow = TimeSpan.FromHours(2), SlidingExpiration = TimeSpan.FromMinutes(30) } ); From 4f244aa89f6168e6dee33621735ee0b88e8e5784 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 19 Feb 2019 09:36:52 +0300 Subject: [PATCH 056/112] renaming hide classes --- .../PermissionManagementModal.cshtml | 10 +++++----- .../permission-management-modal.js | 8 ++++---- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml index 20b42df993..61af1ac21a 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml @@ -35,21 +35,21 @@ @for (var i = 0; i < Model.Groups.Count; i++) { - var hideTabOnToggle = true; + var hideTabOnProviderToggle = true; @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) { if (!((Model.Groups[i].Permissions[j].Providers?.All(p => p.ProviderName != Model.ProviderName)) ?? true)) { - hideTabOnToggle = false; + hideTabOnProviderToggle = false; break; } } - + @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) { - var hideCheckboxOnToggle = (Model.Groups[i].Permissions[j].Providers?.All(p => p.ProviderName != Model.ProviderName)) ?? true; -
    + var hidePermissonOnProviderToggle = (Model.Groups[i].Permissions[j].Providers?.All(p => p.ProviderName != Model.ProviderName)) ?? true; +
    Date: Tue, 19 Feb 2019 09:43:57 +0300 Subject: [PATCH 057/112] Delete old doc. --- samples/MicroserviceDemo/README.md | 2 +- .../MicroserviceDemo/docs/design/Overall.md | 21 ------------------ .../MicroserviceDemo/docs/design/diagram.png | Bin 70462 -> 0 bytes 3 files changed, 1 insertion(+), 22 deletions(-) delete mode 100644 samples/MicroserviceDemo/docs/design/Overall.md delete mode 100644 samples/MicroserviceDemo/docs/design/diagram.png diff --git a/samples/MicroserviceDemo/README.md b/samples/MicroserviceDemo/README.md index 666776d011..612d1d0153 100644 --- a/samples/MicroserviceDemo/README.md +++ b/samples/MicroserviceDemo/README.md @@ -1,4 +1,4 @@ # Microservice Demo Solution -See the [documentation](https://abp.io/documents/abp/latest/Samples/Microservice-Demo). +This sample aims to demonstrate a simple yet complete microservice solution. See the [documentation](https://abp.io/documents/abp/latest/Samples/Microservice-Demo). diff --git a/samples/MicroserviceDemo/docs/design/Overall.md b/samples/MicroserviceDemo/docs/design/Overall.md deleted file mode 100644 index fe75084afe..0000000000 --- a/samples/MicroserviceDemo/docs/design/Overall.md +++ /dev/null @@ -1,21 +0,0 @@ -# Microservice Demo Overall - -## Introduction - -The goal of this work is to show how to create a complete microservice solution based on the ABP framework. - -## Tooling - -* **[ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-2.2)** as the web framework. -* **[ABP](https://abp.io)** as the application framework. -* **[Ocelot](https://github.com/ThreeMammals/Ocelot)** as the API Gateway. -* **[IdentityServer4](https://identityserver.io/)** as the authentication server/framework. -* [**Redis**](https://redis.io/) for distributed cache. -* [**RabbitMQ**](https://www.rabbitmq.com/) for distributed messaging. -* **[Serilog](https://serilog.net/)** for logging. -* **[Elasticsearch](https://www.elastic.co/products/elasticsearch)** as log database. -* **[Kibana](https://www.elastic.co/products/kibana)** as visualization tool (for logs in the Elasticsearch). - -## Diagram - -![diagram](diagram.png) \ No newline at end of file diff --git a/samples/MicroserviceDemo/docs/design/diagram.png b/samples/MicroserviceDemo/docs/design/diagram.png deleted file mode 100644 index b1d9f6c66e68b88a8f2cf2d5e37f3007b22390e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 70462 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 From c3c12638babadd10dfaa1becae1ad436698ee39a Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 10:01:03 +0300 Subject: [PATCH 058/112] Fixed #802: Should set the proper root namespace while adding embedded resources. --- .../MyProjectNameDomainModule.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/templates/mvc/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs b/templates/mvc/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs index 591780ab16..f32225025f 100644 --- a/templates/mvc/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs +++ b/templates/mvc/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs @@ -26,7 +26,7 @@ namespace MyCompanyName.MyProjectName { Configure(options => { - options.FileSets.AddEmbedded(); + options.FileSets.AddEmbedded("MyCompanyName.MyProjectName"); }); Configure(options => From 7a61ff8974c128e623895b4881daec8044ef0c82 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 10:36:47 +0300 Subject: [PATCH 059/112] #820: Remove logger factory configuration from Startup --- .../Startup.cs | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs index dd134465ee..ffd3ca47be 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs @@ -2,7 +2,6 @@ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Serilog; namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo { @@ -20,15 +19,6 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole() - .AddDebug() - .AddSerilog(new LoggerConfiguration() - .Enrich.FromLogContext() - .WriteTo.File("Logs/logs.txt") - .CreateLogger() - ); - app.InitializeApplication(); } } From 01ccdcf7c5f0aa80275bae7a59cf898a7c78163a Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 11:22:05 +0300 Subject: [PATCH 060/112] Use Autofac in the Bootstrap.Demo project --- .../Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Program.cs | 7 +++++-- .../Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Program.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Program.cs index 7375376a06..e786c24f29 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Program.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Program.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore; +using System.IO; using Microsoft.AspNetCore.Hosting; namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo @@ -11,7 +11,10 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo } public static IWebHost BuildWebHostInternal(string[] args) => - WebHost.CreateDefaultBuilder(args) + new WebHostBuilder() + .UseKestrel() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() .UseStartup() .Build(); } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs index ffd3ca47be..52c11d7896 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Startup.cs @@ -1,4 +1,5 @@ using System; +using Autofac.Extensions.DependencyInjection; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; From 73ad39ed2db9ff1e60e3f1474b9ee99553acc790 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 11:28:26 +0300 Subject: [PATCH 061/112] Update Getting-Started-AspNetCore-Application.md --- .../Getting-Started-AspNetCore-Application.md | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/en/Getting-Started-AspNetCore-Application.md b/docs/en/Getting-Started-AspNetCore-Application.md index fe1ff3450b..8d3c898787 100644 --- a/docs/en/Getting-Started-AspNetCore-Application.md +++ b/docs/en/Getting-Started-AspNetCore-Application.md @@ -152,6 +152,27 @@ services.AddApplication(options => }); ```` +4. Update `Program.cs` to not use the `WebHost.CreateDefaultBuilder()` method since it uses the default DI container: + +````csharp +public class Program +{ + public static void Main(string[] args) + { + BuildWebHostInternal(args).Run(); + } + + public static IWebHost BuildWebHostInternal(string[] args) => + new WebHostBuilder() + .UseKestrel() + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() + .UseStartup() + .Build(); +} +```` + ## Source Code Get source code of the sample project created in this tutorial from [here](https://github.com/abpframework/abp/tree/master/samples/BasicAspNetCoreApplication). + From d07a689cb11cb78865c5d5ab27aafc0dff6cfd74 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 11:49:37 +0300 Subject: [PATCH 062/112] Added tests for ExtraProperties --- .../Domain/ExtraProperties_Tests.cs | 9 ++++ .../MongoDB/Domain/ExtraProperties_Tests.cs | 9 ++++ .../Volo/Abp/TestApp/TestDataBuilder.cs | 2 +- .../TestApp/Testing/ExtraProperties_Tests.cs | 53 +++++++++++++++++++ 4 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Domain/ExtraProperties_Tests.cs create mode 100644 framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs create mode 100644 framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ExtraProperties_Tests.cs diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Domain/ExtraProperties_Tests.cs b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Domain/ExtraProperties_Tests.cs new file mode 100644 index 0000000000..eea827fbee --- /dev/null +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo/Abp/EntityFrameworkCore/Domain/ExtraProperties_Tests.cs @@ -0,0 +1,9 @@ +using Volo.Abp.TestApp.Testing; + +namespace Volo.Abp.EntityFrameworkCore.Domain +{ + public class ExtraProperties_Tests : ExtraProperties_Tests + { + + } +} diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs new file mode 100644 index 0000000000..b389ad61b9 --- /dev/null +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo/Abp/MongoDB/Domain/ExtraProperties_Tests.cs @@ -0,0 +1,9 @@ +using Volo.Abp.TestApp.Testing; + +namespace Volo.Abp.MongoDB.Domain +{ + public class ExtraProperties_Tests : ExtraProperties_Tests + { + + } +} diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestDataBuilder.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestDataBuilder.cs index f1bb42a344..25886f77a6 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestDataBuilder.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/TestDataBuilder.cs @@ -36,7 +36,7 @@ namespace Volo.Abp.TestApp { _cityRepository.Insert(new City(Guid.NewGuid(), "Tokyo")); _cityRepository.Insert(new City(Guid.NewGuid(), "Madrid")); - _cityRepository.Insert(new City(LondonCityId, "London")); + _cityRepository.Insert(new City(LondonCityId, "London") {ExtraProperties = { { "Population", 10_470_000 } } }); _cityRepository.Insert(new City(IstanbulCityId, "Istanbul")); _cityRepository.Insert(new City(Guid.NewGuid(), "Paris")); _cityRepository.Insert(new City(Guid.NewGuid(), "Washington")); diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ExtraProperties_Tests.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ExtraProperties_Tests.cs new file mode 100644 index 0000000000..adcad00e17 --- /dev/null +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ExtraProperties_Tests.cs @@ -0,0 +1,53 @@ +using System; +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.Modularity; +using Volo.Abp.TestApp.Domain; +using Xunit; + +namespace Volo.Abp.TestApp.Testing +{ + public abstract class ExtraProperties_Tests : TestAppTestBase + where TStartupModule : IAbpModule + { + protected readonly ICityRepository CityRepository; + + protected ExtraProperties_Tests() + { + CityRepository = GetRequiredService(); + } + + [Fact] + public async Task Should_Get_An_Extra_Property() + { + var london = await CityRepository.FindByNameAsync("London"); + london.ExtraProperties.ContainsKey("Population").ShouldBeTrue(); + london.ExtraProperties["Population"].To().ShouldBe(10_470_000); + } + + [Fact] + public async Task Should_Add_An_Extra_Property() + { + var london = await CityRepository.FindByNameAsync("London"); + london.ExtraProperties["AreaAsKm"] = 1572; + await CityRepository.UpdateAsync(london); + + var london2 = await CityRepository.FindByNameAsync("London"); + london2.ExtraProperties.ContainsKey("AreaAsKm").ShouldBeTrue(); + london2.ExtraProperties["AreaAsKm"].To().ShouldBe(1572); + } + + [Fact] + public async Task Should_Update_An_Existing_Extra_Property() + { + var london = await CityRepository.FindByNameAsync("London"); + + london.ExtraProperties["Population"] = 11_000_042; + await CityRepository.UpdateAsync(london); + + var london2 = await CityRepository.FindByNameAsync("London"); + london2.ExtraProperties.ContainsKey("Population").ShouldBeTrue(); + london2.ExtraProperties["Population"].To().ShouldBe(11_000_042); + } + } +} From a4b069cf6fd22d638cf95fa7e69ba81d4b91651e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 19 Feb 2019 11:55:14 +0300 Subject: [PATCH 063/112] permission modal refactor --- .../PermissionGrantInfoDto.cs | 4 ++- .../PermissionAppService.cs | 5 +-- .../PermissionManagementModal.cshtml | 8 ++--- .../PermissionManagementModal.cshtml.cs | 8 +++-- .../permission-management-modal.js | 34 +++++++++++++------ 5 files changed, 38 insertions(+), 21 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionGrantInfoDto.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionGrantInfoDto.cs index de99509fd6..4bb3423bd4 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionGrantInfoDto.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo/Abp/PermissionManagement/PermissionGrantInfoDto.cs @@ -12,6 +12,8 @@ namespace Volo.Abp.PermissionManagement public bool IsGranted { get; set; } - public List Providers { get; set; } + public List AllowedProviders { get; set; } + + public List GrantedProviders { get; set; } } } \ No newline at end of file diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs index a1ec3e99fc..560c5b87f1 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo/Abp/PermissionManagement/PermissionAppService.cs @@ -62,7 +62,8 @@ namespace Volo.Abp.PermissionManagement Name = permission.Name, DisplayName = permission.DisplayName.Localize(_stringLocalizerFactory), ParentName = permission.Parent?.Name, - Providers = new List() + AllowedProviders = permission.Providers, + GrantedProviders = new List() }; var grantInfo = await _permissionManager.GetAsync(permission.Name, providerName, providerKey); @@ -71,7 +72,7 @@ namespace Volo.Abp.PermissionManagement foreach (var provider in grantInfo.Providers) { - grantInfoDto.Providers.Add(new ProviderInfoDto + grantInfoDto.GrantedProviders.Add(new ProviderInfoDto { ProviderName = provider.Name, ProviderKey = provider.Key, diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml index 61af1ac21a..c9c47d4483 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml @@ -25,8 +25,8 @@ @L["All"] -
    @@ -38,7 +38,7 @@ var hideTabOnProviderToggle = true; @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) { - if (!((Model.Groups[i].Permissions[j].Providers?.All(p => p.ProviderName != Model.ProviderName)) ?? true)) + if (!(!Model.Groups[i].Permissions[j].AllowedProviders?.Any() ?? true)) { hideTabOnProviderToggle = false; break; @@ -48,7 +48,7 @@ @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) { - var hidePermissonOnProviderToggle = (Model.Groups[i].Permissions[j].Providers?.All(p => p.ProviderName != Model.ProviderName)) ?? true; + var hidePermissonOnProviderToggle = !Model.Groups[i].Permissions[j].AllowedProviders?.Any() ?? true;
    Providers { get; set; } + public List AllowedProviders { get; set; } + + public List GrantedProviders { get; set; } public bool IsDisabled(string currentProviderName) { - return IsGranted && Providers.All(p => p.ProviderName != currentProviderName); + return IsGranted && GrantedProviders.All(p => p.ProviderName != currentProviderName); } public string GetShownName(string currentProviderName) @@ -124,7 +126,7 @@ namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement return string.Format( "{0} ({1})", DisplayName, - Providers + GrantedProviders .Where(p => p.ProviderName != currentProviderName) .Select(p => p.ProviderName) .JoinAsString(", ") diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js index 438433b6be..900e404c09 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js @@ -35,6 +35,17 @@ }); } + function togglePermissions(radioButton) { + if (radioButton.val() == '1') { + $('.hidePermissonOnProviderToggle').slideUp(); + $('.hideTabOnProviderToggle').slideUp(); + } + else { + $('.hidePermissonOnProviderToggle').slideDown(); + $('.hideTabOnProviderToggle').slideDown(); + } + } + this.initDom = function($el) { $el.find('.tab-pane').each(function () { var $tab = $(this); @@ -48,18 +59,19 @@ } }); }); - $('input:radio[name="ShowOnlyProviderPermissonsToggle"]').change( - function () { - if ($(this).val() == '1') { - $('.hidePermissonOnProviderToggle').slideUp(); - $('.hideTabOnProviderToggle').slideUp(); - } - else { - $('.hidePermissonOnProviderToggle').slideDown(); - $('.hideTabOnProviderToggle').slideDown(); - } - }); }); + + var radioButton = $('input:radio[name="ShowOnlyProviderPermissonsToggle"]'); + + if ($('#ShowOnlyProviderPermissonsLabel').hasClass('active')) { + $('.hidePermissonOnProviderToggle').slideUp(); + $('.hideTabOnProviderToggle').slideUp(); + } + + radioButton.change( + function () { + togglePermissions($(this)); + }); }; }; })(jQuery); \ No newline at end of file From b07608f2807cf43f3b06350ea9140e5dbcc43a22 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 13:43:49 +0300 Subject: [PATCH 064/112] Set timeout for web requests. --- .../GitHub/Documents/GithubDocumentStore.cs | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs index fbfb02961b..59f19f6198 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs @@ -150,7 +150,7 @@ namespace Volo.Docs.GitHub.Documents { Logger.LogInformation("Downloading content from Github (DownloadWebContentAsStringAsync): " + rawUrl); - using (var webClient = new WebClient()) + using (var webClient = new GithubWebClient()) { if (!token.IsNullOrWhiteSpace()) { @@ -158,6 +158,8 @@ namespace Volo.Docs.GitHub.Documents } webClient.Headers.Add("User-Agent", userAgent ?? ""); + + //TODO: SET TIMEOUT? return await webClient.DownloadStringTaskAsync(new Uri(rawUrl)); } @@ -176,7 +178,7 @@ namespace Volo.Docs.GitHub.Documents { Logger.LogInformation("Downloading content from Github (DownloadWebContentAsByteArrayAsync): " + rawUrl); - using (var webClient = new WebClient()) + using (var webClient = new GithubWebClient()) { if (!token.IsNullOrWhiteSpace()) { @@ -234,5 +236,21 @@ namespace Volo.Docs.GitHub.Documents .Replace("github.com", "raw.githubusercontent.com") .ReplaceFirst("/tree/", "/"); } + + private class GithubWebClient : WebClient + { + protected override WebRequest GetWebRequest(Uri address) + { + var webRequest = base.GetWebRequest(address); + if (webRequest == null) + { + return null; + } + + webRequest.Timeout = 15000; + + return webRequest; + } + } } } \ No newline at end of file From 7dcc7d256fbe213e1ca825338cbc6ad2e1be7aa8 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 14:14:08 +0300 Subject: [PATCH 065/112] Added HasExtraPropertiesExtensions --- .../Abp/Data/HasExtraPropertiesExtensions.cs | 43 +++++++++++++++++++ .../TestApp/Testing/ExtraProperties_Tests.cs | 18 ++++---- 2 files changed, 52 insertions(+), 9 deletions(-) create mode 100644 framework/src/Volo.Abp.Data/Volo/Abp/Data/HasExtraPropertiesExtensions.cs diff --git a/framework/src/Volo.Abp.Data/Volo/Abp/Data/HasExtraPropertiesExtensions.cs b/framework/src/Volo.Abp.Data/Volo/Abp/Data/HasExtraPropertiesExtensions.cs new file mode 100644 index 0000000000..a16373eedc --- /dev/null +++ b/framework/src/Volo.Abp.Data/Volo/Abp/Data/HasExtraPropertiesExtensions.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using Volo.Abp.Reflection; + +namespace Volo.Abp.Data +{ + public static class HasExtraPropertiesExtensions + { + public static bool HasProperty(this IHasExtraProperties source, string name) + { + return source.ExtraProperties.ContainsKey(name); + } + + public static object GetProperty(this IHasExtraProperties source, string name) + { + return source.ExtraProperties?.GetOrDefault(name); + } + + public static TProperty GetProperty(this IHasExtraProperties source, string name) + { + var value = source.GetProperty(name); + if (value == default) + { + return default; + } + + if (TypeHelper.IsPrimitiveExtended(typeof(TProperty), includeEnums: true)) + { + return (TProperty)Convert.ChangeType(value, typeof(TProperty), CultureInfo.InvariantCulture); + } + + throw new AbpException("GetProperty does not support non-primitive types. Use non-generic GetProperty method and handle type casting manually."); + } + + public static TSource SetProperty(this TSource source, string name, object value) + where TSource : IHasExtraProperties + { + source.ExtraProperties[name] = value; + return source; + } + } +} \ No newline at end of file diff --git a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ExtraProperties_Tests.cs b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ExtraProperties_Tests.cs index adcad00e17..67eff13572 100644 --- a/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ExtraProperties_Tests.cs +++ b/framework/test/Volo.Abp.TestApp/Volo/Abp/TestApp/Testing/ExtraProperties_Tests.cs @@ -1,6 +1,6 @@ -using System; -using System.Threading.Tasks; +using System.Threading.Tasks; using Shouldly; +using Volo.Abp.Data; using Volo.Abp.Modularity; using Volo.Abp.TestApp.Domain; using Xunit; @@ -21,20 +21,20 @@ namespace Volo.Abp.TestApp.Testing public async Task Should_Get_An_Extra_Property() { var london = await CityRepository.FindByNameAsync("London"); - london.ExtraProperties.ContainsKey("Population").ShouldBeTrue(); - london.ExtraProperties["Population"].To().ShouldBe(10_470_000); + london.HasProperty("Population").ShouldBeTrue(); + london.GetProperty("Population").ShouldBe(10_470_000); } [Fact] public async Task Should_Add_An_Extra_Property() { var london = await CityRepository.FindByNameAsync("London"); - london.ExtraProperties["AreaAsKm"] = 1572; + london.SetProperty("AreaAsKm", 1572); await CityRepository.UpdateAsync(london); var london2 = await CityRepository.FindByNameAsync("London"); - london2.ExtraProperties.ContainsKey("AreaAsKm").ShouldBeTrue(); - london2.ExtraProperties["AreaAsKm"].To().ShouldBe(1572); + london2.HasProperty("AreaAsKm").ShouldBeTrue(); + london2.GetProperty("AreaAsKm").ShouldBe(1572); } [Fact] @@ -46,8 +46,8 @@ namespace Volo.Abp.TestApp.Testing await CityRepository.UpdateAsync(london); var london2 = await CityRepository.FindByNameAsync("London"); - london2.ExtraProperties.ContainsKey("Population").ShouldBeTrue(); - london2.ExtraProperties["Population"].To().ShouldBe(11_000_042); + london2.HasProperty("Population").ShouldBeTrue(); + london2.GetProperty("Population").ShouldBe(11_000_042); } } } From d6402bb8055afe96abe2f5db9350f91872e841cb Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 15:45:02 +0300 Subject: [PATCH 066/112] Added IClientRepository.GetAllDistinctAllowedCorsOriginsAsync. Added missing tests. --- .../Clients/IClientRepository.cs | 2 ++ .../Clients/ClientRepository.cs | 9 +++++++ .../MongoDB/MongoClientRepository.cs | 26 ++++++++++++++++--- ...ityServer.EntityFrameworkCore.Tests.csproj | 6 ++--- ...tityServerTestEntityFrameworkCoreModule.cs | 9 ++++--- .../IdentityServer/ClientRepository_Tests.cs | 7 +++++ .../Clients/IdentityResourceStore_Tests.cs | 6 ++--- .../IdentityResourceRepository_Tests.cs | 7 +++++ .../IdentityServer/ClientRepository_Tests.cs | 13 +++++++--- 9 files changed, 67 insertions(+), 18 deletions(-) create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs index ede17dd148..d273598311 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs @@ -23,6 +23,8 @@ namespace Volo.Abp.IdentityServer.Clients CancellationToken cancellationToken = default ); + Task> GetAllDistinctAllowedCorsOriginsAsync(CancellationToken cancellationToken = default); + Task GetTotalCount(); } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs index 62043562e8..a2f57370d5 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs @@ -37,6 +37,15 @@ namespace Volo.Abp.IdentityServer.Clients .ToListAsync(GetCancellationToken(cancellationToken)); } + public async Task> GetAllDistinctAllowedCorsOriginsAsync(CancellationToken cancellationToken = default) + { + return await DbSet + .AsNoTracking() + .SelectMany(x => x.AllowedCorsOrigins.Select(y => y.Origin)) + .Distinct() + .ToListAsync(GetCancellationToken(cancellationToken)); + } + public virtual async Task GetTotalCount() { return await DbSet.CountAsync(); diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs index a946a97ff7..7f95e4c981 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo/Abp/IdentityServer/MongoDB/MongoClientRepository.cs @@ -14,16 +14,26 @@ namespace Volo.Abp.IdentityServer.MongoDB { public class MongoClientRepository : MongoDbRepository, IClientRepository { - public MongoClientRepository(IMongoDbContextProvider dbContextProvider) : base(dbContextProvider) + public MongoClientRepository( + IMongoDbContextProvider dbContextProvider + ) : base( + dbContextProvider) { } - public virtual async Task FindByCliendIdAsync(string clientId, bool includeDetails = true, CancellationToken cancellationToken = default) + public virtual async Task FindByCliendIdAsync( + string clientId, + bool includeDetails = true, + CancellationToken cancellationToken = default) { return await GetMongoQueryable().FirstOrDefaultAsync(x => x.ClientId == clientId, GetCancellationToken(cancellationToken)); } - public virtual async Task> GetListAsync(string sorting, int skipCount, int maxResultCount, bool includeDetails = false, + public virtual async Task> GetListAsync( + string sorting, + int skipCount, + int maxResultCount, + bool includeDetails = false, CancellationToken cancellationToken = default) { return await GetMongoQueryable() @@ -33,6 +43,16 @@ namespace Volo.Abp.IdentityServer.MongoDB .ToListAsync(GetCancellationToken(cancellationToken)); } + public async Task> GetAllDistinctAllowedCorsOriginsAsync( + CancellationToken cancellationToken = default) + { + return await GetMongoQueryable() + .SelectMany(x => x.AllowedCorsOrigins) + .Select(y => y.Origin) + .Distinct() + .ToListAsync(GetCancellationToken(cancellationToken)); + } + public virtual async Task GetTotalCount() { return await GetCountAsync(); diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj index a18c1b4b23..faa5eb21aa 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp2.0 + netcoreapp2.2 Volo.Abp.IdentityServer.EntityFrameworkCore.Tests Volo.Abp.IdentityServer.EntityFrameworkCore.Tests true @@ -15,9 +15,7 @@ - - - + diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs index 95d3c78a2e..77e20531db 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/AbpIdentityServerTestEntityFrameworkCoreModule.cs @@ -10,9 +10,12 @@ using Volo.Abp.Uow; namespace Volo.Abp.IdentityServer { - [DependsOn(typeof(AbpAutofacModule))] - [DependsOn(typeof(AbpIdentityServerEntityFrameworkCoreModule))] - [DependsOn(typeof(AbpIdentityEntityFrameworkCoreModule))] + [DependsOn( + typeof(AbpAutofacModule), + typeof(AbpIdentityEntityFrameworkCoreModule), + typeof(AbpIdentityServerEntityFrameworkCoreModule), + typeof(AbpIdentityServerTestBaseModule) + )] public class AbpIdentityServerTestEntityFrameworkCoreModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs new file mode 100644 index 0000000000..ef667aec3e --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/ClientRepository_Tests.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.IdentityServer +{ + public class ClientRepository_Tests : ClientRepository_Tests + { + + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/Clients/IdentityResourceStore_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/Clients/IdentityResourceStore_Tests.cs index 44c37b93b7..a313c2717f 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/Clients/IdentityResourceStore_Tests.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/Clients/IdentityResourceStore_Tests.cs @@ -81,10 +81,8 @@ namespace Volo.Abp.IdentityServer.Clients //Assert resources.ShouldNotBe(null); - resources.ApiResources.Count.ShouldBe(1); - resources.ApiResources.First().Name.ShouldBe("Test-ApiResource-Name-1"); - resources.IdentityResources.First().Name.ShouldBe("Test-Identity-Resource-Name-1"); - resources.IdentityResources.First().Required.ShouldBe(true); + resources.ApiResources.Count.ShouldBeGreaterThan(0); + resources.ApiResources.Any(r => r.Name == "Test-ApiResource-Name-1").ShouldBeTrue(); } } } diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs new file mode 100644 index 0000000000..f6370c10b7 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo/Abp/IdentityServer/IdentityResourceRepository_Tests.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.IdentityServer +{ + public class IdentityResourceRepository_Tests : IdentityResourceRepository_Tests + { + + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ClientRepository_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ClientRepository_Tests.cs index 8770e7969c..86f69610f5 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ClientRepository_Tests.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/ClientRepository_Tests.cs @@ -1,6 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; +using System.Linq; using System.Threading.Tasks; using Microsoft.Extensions.DependencyInjection; using Shouldly; @@ -15,7 +13,7 @@ namespace Volo.Abp.IdentityServer { protected IClientRepository clientRepository { get; } - public ClientRepository_Tests() + protected ClientRepository_Tests() { clientRepository = ServiceProvider.GetRequiredService(); } @@ -25,5 +23,12 @@ namespace Volo.Abp.IdentityServer { (await clientRepository.FindByCliendIdAsync("ClientId2")).ShouldNotBeNull(); } + + [Fact] + public async Task GetAllDistinctAllowedCorsOriginsAsync() + { + var origins = await clientRepository.GetAllDistinctAllowedCorsOriginsAsync(); + origins.Any().ShouldBeTrue(); + } } } From 077898d5b562a0b8b2e3c082e4c8ea1a519bb07e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 19 Feb 2019 15:45:54 +0300 Subject: [PATCH 067/112] Resolved #820 : Remove logger factory configuration from Startup --- abp_io/src/Volo.AbpWebSite.Web/Program.cs | 31 +++++++++++++++++-- abp_io/src/Volo.AbpWebSite.Web/Startup.cs | 10 ------ .../Volo.AbpWebSite.Web.csproj | 2 +- .../app/Volo.BloggingTestApp/Startup.cs | 9 ------ modules/docs/app/Volo.DocsTestApp/Program.cs | 31 +++++++++++++++++-- modules/docs/app/Volo.DocsTestApp/Startup.cs | 10 ------ .../Volo.DocsTestApp/Volo.DocsTestApp.csproj | 2 +- .../src/Acme.BookStore.Web/Startup.cs | 10 ------ .../Startup.cs | 10 ------ .../Startup.cs | 10 ------ 10 files changed, 58 insertions(+), 67 deletions(-) diff --git a/abp_io/src/Volo.AbpWebSite.Web/Program.cs b/abp_io/src/Volo.AbpWebSite.Web/Program.cs index 0ae7a19900..7b458c66de 100644 --- a/abp_io/src/Volo.AbpWebSite.Web/Program.cs +++ b/abp_io/src/Volo.AbpWebSite.Web/Program.cs @@ -1,13 +1,37 @@ -using System.IO; +using System; +using System.IO; using Microsoft.AspNetCore.Hosting; +using Serilog; +using Serilog.Events; namespace Volo.AbpWebSite { public class Program { - public static void Main(string[] args) + public static int Main(string[] args) { - BuildWebHostInternal(args).Run(); + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Debug() //TODO: Should be configurable! + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .Enrich.FromLogContext() + .WriteTo.File("Logs/logs.txt") + .CreateLogger(); + + try + { + Log.Information("Starting web host."); + BuildWebHostInternal(args).Run(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, "Host terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } } internal static IWebHost BuildWebHostInternal(string[] args) => @@ -16,6 +40,7 @@ namespace Volo.AbpWebSite .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() + .UseSerilog() .Build(); } } diff --git a/abp_io/src/Volo.AbpWebSite.Web/Startup.cs b/abp_io/src/Volo.AbpWebSite.Web/Startup.cs index efbfda982a..ce76e2aa8c 100644 --- a/abp_io/src/Volo.AbpWebSite.Web/Startup.cs +++ b/abp_io/src/Volo.AbpWebSite.Web/Startup.cs @@ -3,7 +3,6 @@ using System.Text; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Serilog; using Volo.Abp; namespace Volo.AbpWebSite @@ -23,15 +22,6 @@ namespace Volo.AbpWebSite public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole() - .AddDebug() - .AddSerilog(new LoggerConfiguration() - .Enrich.FromLogContext() - .WriteTo.File("Logs/logs.txt") - .CreateLogger() - ); - Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); app.InitializeApplication(); diff --git a/abp_io/src/Volo.AbpWebSite.Web/Volo.AbpWebSite.Web.csproj b/abp_io/src/Volo.AbpWebSite.Web/Volo.AbpWebSite.Web.csproj index 8fbbbfd711..f73fb7942f 100644 --- a/abp_io/src/Volo.AbpWebSite.Web/Volo.AbpWebSite.Web.csproj +++ b/abp_io/src/Volo.AbpWebSite.Web/Volo.AbpWebSite.Web.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/blogging/app/Volo.BloggingTestApp/Startup.cs b/modules/blogging/app/Volo.BloggingTestApp/Startup.cs index afeb27a51f..e4ccc31b60 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/Startup.cs +++ b/modules/blogging/app/Volo.BloggingTestApp/Startup.cs @@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Serilog; using Volo.Abp; namespace Volo.BloggingTestApp @@ -22,14 +21,6 @@ namespace Volo.BloggingTestApp public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole() - .AddDebug() - .AddSerilog(new LoggerConfiguration() - .Enrich.FromLogContext() - .WriteTo.File("Logs/logs.txt") - .CreateLogger() - ); app.InitializeApplication(); } diff --git a/modules/docs/app/Volo.DocsTestApp/Program.cs b/modules/docs/app/Volo.DocsTestApp/Program.cs index 57ff6be5ea..470b5e6a98 100644 --- a/modules/docs/app/Volo.DocsTestApp/Program.cs +++ b/modules/docs/app/Volo.DocsTestApp/Program.cs @@ -1,13 +1,37 @@ -using System.IO; +using System; +using System.IO; using Microsoft.AspNetCore.Hosting; +using Serilog; +using Serilog.Events; namespace Volo.DocsTestApp { public class Program { - public static void Main(string[] args) + public static int Main(string[] args) { - BuildWebHostInternal(args).Run(); + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Debug() //TODO: Should be configurable! + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .Enrich.FromLogContext() + .WriteTo.File("Logs/logs.txt") + .CreateLogger(); + + try + { + Log.Information("Starting web host."); + BuildWebHostInternal(args).Run(); + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, "Host terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } } public static IWebHost BuildWebHostInternal(string[] args) => @@ -16,6 +40,7 @@ namespace Volo.DocsTestApp .UseContentRoot(Directory.GetCurrentDirectory()) .UseIISIntegration() .UseStartup() + .UseSerilog() .Build(); } } diff --git a/modules/docs/app/Volo.DocsTestApp/Startup.cs b/modules/docs/app/Volo.DocsTestApp/Startup.cs index e989f904cf..e6708d26e8 100644 --- a/modules/docs/app/Volo.DocsTestApp/Startup.cs +++ b/modules/docs/app/Volo.DocsTestApp/Startup.cs @@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Serilog; using Volo.Abp; namespace Volo.DocsTestApp @@ -22,15 +21,6 @@ namespace Volo.DocsTestApp public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole() - .AddDebug() - .AddSerilog(new LoggerConfiguration() - .Enrich.FromLogContext() - .WriteTo.File("Logs/logs.txt") - .CreateLogger() - ); - app.InitializeApplication(); } } diff --git a/modules/docs/app/Volo.DocsTestApp/Volo.DocsTestApp.csproj b/modules/docs/app/Volo.DocsTestApp/Volo.DocsTestApp.csproj index d1065535b9..b24f84e537 100644 --- a/modules/docs/app/Volo.DocsTestApp/Volo.DocsTestApp.csproj +++ b/modules/docs/app/Volo.DocsTestApp/Volo.DocsTestApp.csproj @@ -11,7 +11,7 @@ - + diff --git a/samples/BookStore/src/Acme.BookStore.Web/Startup.cs b/samples/BookStore/src/Acme.BookStore.Web/Startup.cs index fffc45b3e6..0cd4c700d7 100644 --- a/samples/BookStore/src/Acme.BookStore.Web/Startup.cs +++ b/samples/BookStore/src/Acme.BookStore.Web/Startup.cs @@ -2,7 +2,6 @@ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Serilog; using Volo.Abp; namespace Acme.BookStore @@ -21,15 +20,6 @@ namespace Acme.BookStore public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole() - .AddDebug() - .AddSerilog(new LoggerConfiguration() - .Enrich.FromLogContext() - .WriteTo.File("Logs/logs.txt") - .CreateLogger() - ); - app.InitializeApplication(); } } diff --git a/templates/module/app/MyCompanyName.MyProjectName.DemoApp/Startup.cs b/templates/module/app/MyCompanyName.MyProjectName.DemoApp/Startup.cs index d77c77ba38..18fac8ac52 100644 --- a/templates/module/app/MyCompanyName.MyProjectName.DemoApp/Startup.cs +++ b/templates/module/app/MyCompanyName.MyProjectName.DemoApp/Startup.cs @@ -3,7 +3,6 @@ using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Serilog; using Volo.Abp; namespace MyCompanyName.MyProjectName.DemoApp @@ -22,15 +21,6 @@ namespace MyCompanyName.MyProjectName.DemoApp public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole() - .AddDebug() - .AddSerilog(new LoggerConfiguration() - .Enrich.FromLogContext() - .WriteTo.File("Logs/logs.txt") - .CreateLogger() - ); - app.InitializeApplication(); } } diff --git a/templates/mvc/src/MyCompanyName.MyProjectName.Web/Startup.cs b/templates/mvc/src/MyCompanyName.MyProjectName.Web/Startup.cs index 07f329bd59..2e788dc051 100644 --- a/templates/mvc/src/MyCompanyName.MyProjectName.Web/Startup.cs +++ b/templates/mvc/src/MyCompanyName.MyProjectName.Web/Startup.cs @@ -2,7 +2,6 @@ using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Serilog; using Volo.Abp; namespace MyCompanyName.MyProjectName @@ -21,15 +20,6 @@ namespace MyCompanyName.MyProjectName public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole() - .AddDebug() - .AddSerilog(new LoggerConfiguration() - .Enrich.FromLogContext() - .WriteTo.File("Logs/logs.txt") - .CreateLogger() - ); - app.InitializeApplication(); } } From 1a7eaea886cc63a8a8bb08f3c08d42c1aa53407e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 19 Feb 2019 15:52:57 +0300 Subject: [PATCH 068/112] identity server repositories: Removed GetTotalCount --- .../IdentityServer/ApiResources/IApiResourceRepository.cs | 2 -- .../Volo/Abp/IdentityServer/Clients/IClientRepository.cs | 2 -- .../IdentityResources/IIdentityResourceRepository.cs | 2 -- .../Abp/IdentityServer/ApiResources/ApiResourceRepository.cs | 5 ----- .../Volo/Abp/IdentityServer/Clients/ClientRepository.cs | 5 ----- .../IdentityResources/IdentityResourceRepository.cs | 5 ----- 6 files changed, 21 deletions(-) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs index 182a2d06ec..e229f361d5 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/ApiResources/IApiResourceRepository.cs @@ -32,7 +32,5 @@ namespace Volo.Abp.IdentityServer.ApiResources bool includeDetails = false, CancellationToken cancellationToken = default ); - - Task GetTotalCount(); } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs index d273598311..6b0e2816db 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/Clients/IClientRepository.cs @@ -24,7 +24,5 @@ namespace Volo.Abp.IdentityServer.Clients ); Task> GetAllDistinctAllowedCorsOriginsAsync(CancellationToken cancellationToken = default); - - Task GetTotalCount(); } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs index af53d12d38..0ae9754b91 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityResources/IIdentityResourceRepository.cs @@ -27,7 +27,5 @@ namespace Volo.Abp.IdentityServer.IdentityResources bool includeDetails = true, CancellationToken cancellationToken = default ); - - Task GetTotalCountAsync(); } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs index bad674f435..7b6acd495a 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs @@ -61,11 +61,6 @@ namespace Volo.Abp.IdentityServer.ApiResources .ToListAsync(GetCancellationToken(cancellationToken)); } - public virtual async Task GetTotalCount() - { - return await DbSet.CountAsync(); - } - public override async Task DeleteAsync(Guid id, bool autoSave = false, CancellationToken cancellationToken = default) { var scopeClaims = DbContext.Set().Where(sc => sc.ApiResourceId == id); diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs index a2f57370d5..e62e330029 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs @@ -46,11 +46,6 @@ namespace Volo.Abp.IdentityServer.Clients .ToListAsync(GetCancellationToken(cancellationToken)); } - public virtual async Task GetTotalCount() - { - return await DbSet.CountAsync(); - } - public override IQueryable WithDetails() { return GetQueryable().IncludeDetails(); diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceRepository.cs index a6ff62fc05..a5237a6cc8 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/IdentityResources/IdentityResourceRepository.cs @@ -56,10 +56,5 @@ namespace Volo.Abp.IdentityServer.IdentityResources .Where(x => x.Name == name) .FirstOrDefaultAsync(GetCancellationToken(cancellationToken)); } - - public virtual async Task GetTotalCountAsync() - { - return await DbSet.CountAsync(); - } } } From d31893a7098e7790cbc870ac2459cbdec559dc27 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 16:56:15 +0300 Subject: [PATCH 069/112] Resolved #826: Implement IdentityServer Cors Policy Service. --- .../Volo/Abp/Caching/CacheNameAttribute.cs | 15 +++++ .../Volo/Abp/Caching/DistributedCache.cs | 8 +-- .../Identity/AbpIdentityDomainSharedModule.cs | 3 +- .../Abp/Identity/AbpIdentityDomainModule.cs | 10 +++- ...lo.Abp.IdentityServer.Domain.Shared.csproj | 1 - .../AbpIdentityServerDomainSharedModule.cs | 7 ++- .../IdentityServer/AbpCorsPolicyService.cs | 57 +++++++++++++++++++ .../AbpIdentityServerDomainModule.cs | 1 - .../AllowedCorsOriginsCacheItem.cs | 9 +++ .../AllowedCorsOriginsCacheItemInvalidator.cs | 24 ++++++++ .../IdentityServerBuilderExtensions.cs | 3 +- .../AbpIdentityServerDomainTestBase.cs | 10 ++++ .../IdentityServer/CorsPolicyService_Tests.cs | 41 +++++++++++++ .../AbpIdentityServerMongoDbTestModule.cs | 3 +- .../AbpIdentityServerTestDataBuilder.cs | 2 +- 15 files changed, 173 insertions(+), 21 deletions(-) create mode 100644 modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpCorsPolicyService.cs create mode 100644 modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AllowedCorsOriginsCacheItem.cs create mode 100644 modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AllowedCorsOriginsCacheItemInvalidator.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/AbpIdentityServerDomainTestBase.cs create mode 100644 modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/CorsPolicyService_Tests.cs diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/CacheNameAttribute.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/CacheNameAttribute.cs index a9dbe670bb..d02bc76da5 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/CacheNameAttribute.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/CacheNameAttribute.cs @@ -15,5 +15,20 @@ namespace Volo.Abp.Caching Name = name; } + + public static string GetCacheName(Type cacheItemType) + { + var cacheNameAttribute = cacheItemType + .GetCustomAttributes(true) + .OfType() + .FirstOrDefault(); + + if (cacheNameAttribute != null) + { + return cacheNameAttribute.Name; + } + + return cacheItemType.FullName.RemovePostFix("CacheItem"); + } } } \ No newline at end of file diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs index 708633b715..835ad16ca7 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs @@ -326,13 +326,7 @@ namespace Volo.Abp.Caching protected virtual void SetDefaultOptions() { - //CacheName - var cacheNameAttribute = typeof(TCacheItem) - .GetCustomAttributes(true) - .OfType() - .FirstOrDefault(); - - CacheName = cacheNameAttribute != null ? cacheNameAttribute.Name : typeof(TCacheItem).FullName; + CacheName = CacheNameAttribute.GetCacheName(typeof(TCacheItem)); //IgnoreMultiTenancy IgnoreMultiTenancy = typeof(TCacheItem).IsDefined(typeof(IgnoreMultiTenancyAttribute), true); diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/AbpIdentityDomainSharedModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/AbpIdentityDomainSharedModule.cs index bc45febd8d..efb8a7130a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/AbpIdentityDomainSharedModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo/Abp/Identity/AbpIdentityDomainSharedModule.cs @@ -1,5 +1,4 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Identity.Localization; +using Volo.Abp.Identity.Localization; using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.Users; diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs index ac989f8f4c..0b4c5b3fac 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs @@ -7,15 +7,19 @@ using Volo.Abp.EventBus.Distributed; using Volo.Abp.Identity.Localization; using Volo.Abp.Localization; using Volo.Abp.Modularity; +using Volo.Abp.SettingManagement; using Volo.Abp.Settings; using Volo.Abp.Users; using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.Identity { - [DependsOn(typeof(AbpDddDomainModule))] - [DependsOn(typeof(AbpIdentityDomainSharedModule))] - [DependsOn(typeof(AbpUsersDomainModule))] + [DependsOn( + typeof(AbpDddDomainModule), + typeof(AbpIdentityDomainSharedModule), + typeof(AbpUsersDomainModule), + typeof(AbpSettingManagementDomainModule) + )] public class AbpIdentityDomainModule : AbpModule { public override void ConfigureServices(ServiceConfigurationContext context) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj index 8964af3fcb..6894c3f60b 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj @@ -14,7 +14,6 @@ - diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/AbpIdentityServerDomainSharedModule.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/AbpIdentityServerDomainSharedModule.cs index 77ad2c698a..141bd1a5fb 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/AbpIdentityServerDomainSharedModule.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/AbpIdentityServerDomainSharedModule.cs @@ -1,13 +1,14 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.IdentityServer.Localization; +using Volo.Abp.IdentityServer.Localization; using Volo.Abp.Localization; using Volo.Abp.Modularity; namespace Volo.Abp.IdentityServer { + [DependsOn( + typeof(AbpLocalizationModule) + )] public class AbpIdentityServerDomainSharedModule : AbpModule { - public override void ConfigureServices(ServiceConfigurationContext context) { Configure(options => diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpCorsPolicyService.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpCorsPolicyService.cs new file mode 100644 index 0000000000..9113051a4a --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpCorsPolicyService.cs @@ -0,0 +1,57 @@ +using IdentityServer4.Services; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using System; +using System.Linq; +using System.Threading.Tasks; +using Volo.Abp.Caching; +using Volo.Abp.DependencyInjection; +using Volo.Abp.IdentityServer.Clients; + +namespace Volo.Abp.IdentityServer +{ + public class AbpCorsPolicyService : ICorsPolicyService + { + public ILogger Logger { get; set; } + protected IHybridServiceScopeFactory HybridServiceScopeFactory { get; } + protected IDistributedCache Cache { get; } + + public AbpCorsPolicyService( + IDistributedCache cache, + IHybridServiceScopeFactory hybridServiceScopeFactory) + { + Cache = cache; + HybridServiceScopeFactory = hybridServiceScopeFactory; + Logger = NullLogger.Instance; + } + + public async Task IsOriginAllowedAsync(string origin) + { + var cacheItem = await Cache.GetOrAddAsync(AllowedCorsOriginsCacheItem.AllOrigins, CreateCacheItemAsync); + + var isAllowed = cacheItem.AllowedOrigins.Contains(origin, StringComparer.OrdinalIgnoreCase); + + if (!isAllowed) + { + Logger.LogWarning($"Origin is not allowed: {origin}"); + } + + return isAllowed; + } + + protected virtual async Task CreateCacheItemAsync() + { + // doing this here and not in the ctor because: https://github.com/aspnet/AspNetCore/issues/2377 + using (var scope = HybridServiceScopeFactory.CreateScope()) + { + var clientRepository = scope.ServiceProvider.GetRequiredService(); + + return new AllowedCorsOriginsCacheItem + { + AllowedOrigins = (await clientRepository.GetAllDistinctAllowedCorsOriginsAsync()).ToArray() + }; + } + } + } +} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs index 68fd77e354..9b7ea50fc1 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs @@ -12,7 +12,6 @@ namespace Volo.Abp.IdentityServer { [DependsOn( typeof(AbpIdentityServerDomainSharedModule), - typeof(AbpDddDomainModule), typeof(AbpAutoMapperModule), typeof(AbpIdentityDomainModule), typeof(AbpSecurityModule) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AllowedCorsOriginsCacheItem.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AllowedCorsOriginsCacheItem.cs new file mode 100644 index 0000000000..0f9babd1c2 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AllowedCorsOriginsCacheItem.cs @@ -0,0 +1,9 @@ +namespace Volo.Abp.IdentityServer +{ + public class AllowedCorsOriginsCacheItem + { + public const string AllOrigins = "AllOrigins"; + + public string[] AllowedOrigins { get; set; } + } +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AllowedCorsOriginsCacheItemInvalidator.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AllowedCorsOriginsCacheItemInvalidator.cs new file mode 100644 index 0000000000..92583dc4df --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AllowedCorsOriginsCacheItemInvalidator.cs @@ -0,0 +1,24 @@ +using System.Threading.Tasks; +using Volo.Abp.Caching; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Entities.Events; +using Volo.Abp.EventBus; +using Volo.Abp.IdentityServer.Clients; + +namespace Volo.Abp.IdentityServer +{ + public class AllowedCorsOriginsCacheItemInvalidator : ILocalEventHandler>, ITransientDependency + { + protected IDistributedCache Cache { get; } + + public AllowedCorsOriginsCacheItemInvalidator(IDistributedCache cache) + { + Cache = cache; + } + + public async Task HandleEventAsync(EntityChangedEventData eventData) + { + await Cache.RemoveAsync(AllowedCorsOriginsCacheItem.AllOrigins); + } + } +} \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerBuilderExtensions.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerBuilderExtensions.cs index 04ef77e652..2168b2067e 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerBuilderExtensions.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/IdentityServerBuilderExtensions.cs @@ -13,7 +13,8 @@ namespace Volo.Abp.IdentityServer return builder .AddClientStore() - .AddResourceStore(); + .AddResourceStore() + .AddCorsPolicyService(); } } } \ No newline at end of file diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/AbpIdentityServerDomainTestBase.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/AbpIdentityServerDomainTestBase.cs new file mode 100644 index 0000000000..009c6ca468 --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/AbpIdentityServerDomainTestBase.cs @@ -0,0 +1,10 @@ +namespace Volo.Abp.IdentityServer +{ + public class AbpIdentityServerDomainTestBase : AbpIntegratedTest + { + protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) + { + options.UseAutofac(); + } + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/CorsPolicyService_Tests.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/CorsPolicyService_Tests.cs new file mode 100644 index 0000000000..0aa1e835ac --- /dev/null +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo/Abp/IdentityServer/CorsPolicyService_Tests.cs @@ -0,0 +1,41 @@ +using System.Threading.Tasks; +using IdentityServer4.Services; +using Shouldly; +using Volo.Abp.IdentityServer.Clients; +using Xunit; + +namespace Volo.Abp.IdentityServer +{ + public class CorsPolicyService_Tests : AbpIdentityServerDomainTestBase + { + private readonly ICorsPolicyService _corsPolicyService; + private readonly IClientRepository _clientRepository; + + public CorsPolicyService_Tests() + { + _corsPolicyService = GetRequiredService(); + _clientRepository = GetRequiredService(); + } + + [Fact] + public async Task IsOriginAllowedAsync() + { + (await _corsPolicyService.IsOriginAllowedAsync("https://client1-origin.com")).ShouldBeTrue(); + (await _corsPolicyService.IsOriginAllowedAsync("https://unknown-origin.com")).ShouldBeFalse(); + } + + [Fact] + public async Task IsOriginAllowedAsync_Should_Invalidate_Cache_On_Update() + { + //It does not exists before + (await _corsPolicyService.IsOriginAllowedAsync("https://new-origin.com")).ShouldBeFalse(); + + var client1 = await _clientRepository.FindByCliendIdAsync("ClientId1"); + client1.AddCorsOrigin("https://new-origin.com"); + await _clientRepository.UpdateAsync(client1); + + //It does exists now + (await _corsPolicyService.IsOriginAllowedAsync("https://new-origin.com")).ShouldBeTrue(); + } + } +} diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs index cbaf71585e..b9da4bb039 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo/Abp/IdentityServer/AbpIdentityServerMongoDbTestModule.cs @@ -1,5 +1,4 @@ -using Microsoft.Extensions.DependencyInjection; -using Mongo2Go; +using Mongo2Go; using Volo.Abp.Data; using Volo.Abp.IdentityServer.MongoDB; using Volo.Abp.Modularity; diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs index 42f76d44a0..0c18e85350 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo/Abp/IdentityServer/AbpIdentityServerTestDataBuilder.cs @@ -90,7 +90,7 @@ namespace Volo.Abp.IdentityServer FrontChannelLogoutUri = nameof(Client.FrontChannelLogoutUri) }; - client.AddCorsOrigin(nameof(ClientCorsOrigin.Origin)); + client.AddCorsOrigin("https://client1-origin.com"); client.AddClaim(nameof(ClientClaim.Value), nameof(ClientClaim.Type)); client.AddGrantType(nameof(ClientGrantType.GrantType)); client.AddIdentityProviderRestriction(nameof(ClientIdPRestriction.Provider)); From c0a53b81df519393f107229dc38979aae04468d1 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 22:01:32 +0300 Subject: [PATCH 070/112] Implemente double check pattern for AspNetCoreCorrelationIdProvider --- .../AspNetCoreCorrelationIdProvider.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Tracing/AspNetCoreCorrelationIdProvider.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Tracing/AspNetCoreCorrelationIdProvider.cs index 78383d1252..e62f1ed2a4 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Tracing/AspNetCoreCorrelationIdProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Tracing/AspNetCoreCorrelationIdProvider.cs @@ -27,18 +27,21 @@ namespace Volo.Abp.AspNetCore.Tracing return CreateNewCorrelationId(); } - lock (HttpContextAccessor.HttpContext.Request.Headers) - { - string correlationId = HttpContextAccessor.HttpContext.Request.Headers[Options.HttpHeaderName]; + string correlationId = HttpContextAccessor.HttpContext.Request.Headers[Options.HttpHeaderName]; - if (correlationId.IsNullOrEmpty()) + if (correlationId.IsNullOrEmpty()) + { + lock (HttpContextAccessor.HttpContext.Request.Headers) { - correlationId = CreateNewCorrelationId(); - HttpContextAccessor.HttpContext.Request.Headers[Options.HttpHeaderName] = correlationId; + if (correlationId.IsNullOrEmpty()) + { + correlationId = CreateNewCorrelationId(); + HttpContextAccessor.HttpContext.Request.Headers[Options.HttpHeaderName] = correlationId; + } } - - return correlationId; } + + return correlationId; } protected virtual string CreateNewCorrelationId() From e3117cd7cd2d0376ac53323c5ef9d038a96428fc Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 22:01:47 +0300 Subject: [PATCH 071/112] Add log --- .../Volo/Docs/Documents/DocumentAppService.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs index 8a76afe357..4aaedd579b 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.Extensions.Caching.Distributed; +using Microsoft.Extensions.Logging; using Volo.Abp.Application.Services; using Volo.Abp.Caching; using Volo.Docs.Projects; @@ -94,9 +95,10 @@ namespace Volo.Docs.Documents cacheKey, async () => { + Logger.LogInformation($"Not found in the cache. Requesting {documentName} from the store..."); var store = _documentStoreFactory.Create(project.DocumentStoreType); var document = await store.GetDocumentAsync(project, documentName, version); - + Logger.LogInformation($"Document retrieved: {documentName}"); return CreateDocumentWithDetailsDto(project, document); }, () => new DistributedCacheEntryOptions From 9e9d85de4d1eec0b9c25afd2e7b416e69158b86b Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Tue, 19 Feb 2019 22:01:55 +0300 Subject: [PATCH 072/112] add CorrelationIdLogEventEnricher --- .../AbpWebSiteWebModule.cs | 2 ++ .../CorrelationIdLogEventEnricher.cs | 28 +++++++++++++++++++ abp_io/src/Volo.AbpWebSite.Web/Startup.cs | 3 +- 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 abp_io/src/Volo.AbpWebSite.Web/CorrelationIdLogEventEnricher.cs diff --git a/abp_io/src/Volo.AbpWebSite.Web/AbpWebSiteWebModule.cs b/abp_io/src/Volo.AbpWebSite.Web/AbpWebSiteWebModule.cs index bbbce26cee..e6d888813c 100644 --- a/abp_io/src/Volo.AbpWebSite.Web/AbpWebSiteWebModule.cs +++ b/abp_io/src/Volo.AbpWebSite.Web/AbpWebSiteWebModule.cs @@ -140,6 +140,8 @@ namespace Volo.AbpWebSite var app = context.GetApplicationBuilder(); var env = context.GetEnvironment(); + app.UseCorrelationId(); + app.UseAbpRequestLocalization(); if (env.IsDevelopment()) diff --git a/abp_io/src/Volo.AbpWebSite.Web/CorrelationIdLogEventEnricher.cs b/abp_io/src/Volo.AbpWebSite.Web/CorrelationIdLogEventEnricher.cs new file mode 100644 index 0000000000..ee7b0bd248 --- /dev/null +++ b/abp_io/src/Volo.AbpWebSite.Web/CorrelationIdLogEventEnricher.cs @@ -0,0 +1,28 @@ +using Serilog.Core; +using Serilog.Events; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Tracing; + +namespace Volo.AbpWebSite +{ + //This is for trial for now + public class CorrelationIdLogEventEnricher : ILogEventEnricher, ITransientDependency + { + private readonly ICorrelationIdProvider _correlationIdProvider; + + public CorrelationIdLogEventEnricher(ICorrelationIdProvider correlationIdProvider) + { + _correlationIdProvider = correlationIdProvider; + } + + public void Enrich(LogEvent logEvent, ILogEventPropertyFactory propertyFactory) + { + logEvent.AddOrUpdateProperty( + new LogEventProperty( + "CorrelationId", + new ScalarValue("CorrId:" + _correlationIdProvider.Get()) + ) + ); + } + } +} \ No newline at end of file diff --git a/abp_io/src/Volo.AbpWebSite.Web/Startup.cs b/abp_io/src/Volo.AbpWebSite.Web/Startup.cs index efbfda982a..92170d0786 100644 --- a/abp_io/src/Volo.AbpWebSite.Web/Startup.cs +++ b/abp_io/src/Volo.AbpWebSite.Web/Startup.cs @@ -28,7 +28,8 @@ namespace Volo.AbpWebSite .AddDebug() .AddSerilog(new LoggerConfiguration() .Enrich.FromLogContext() - .WriteTo.File("Logs/logs.txt") + .Enrich.With(app.ApplicationServices.GetRequiredService()) + .WriteTo.File("Logs/logs.txt",outputTemplate: "{Timestamp:HH:mm:ss} [{Level:u3}] [{CorrelationId}] {Message:lj}{NewLine}{Exception}") .CreateLogger() ); From d05836d9af1c277aeaacc87372f10c8c505228d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Atakan=20=C3=96zceviz?= Date: Wed, 20 Feb 2019 09:39:25 +0100 Subject: [PATCH 073/112] .dockerignore file moved to the docker-compose context --- samples/MicroserviceDemo/.dockerignore => .dockerignore | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename samples/MicroserviceDemo/.dockerignore => .dockerignore (100%) diff --git a/samples/MicroserviceDemo/.dockerignore b/.dockerignore similarity index 100% rename from samples/MicroserviceDemo/.dockerignore rename to .dockerignore From 2fda52e86527314878f8de736b947337ab9b2789 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Wed, 20 Feb 2019 13:20:14 +0300 Subject: [PATCH 074/112] Use cancellationtoken --- .../Threading/HttpContextCancellationTokenProvider.cs | 2 +- .../src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs | 2 +- .../Volo/Abp/Threading/NullCancellationTokenProvider.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Threading/HttpContextCancellationTokenProvider.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Threading/HttpContextCancellationTokenProvider.cs index 4757ce2f93..c7c961176c 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Threading/HttpContextCancellationTokenProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/Threading/HttpContextCancellationTokenProvider.cs @@ -8,7 +8,7 @@ namespace Volo.Abp.AspNetCore.Threading [Dependency(ReplaceServices = true)] public class HttpContextCancellationTokenProvider : ICancellationTokenProvider, ITransientDependency { - public CancellationToken Token => _httpContextAccessor.HttpContext?.RequestAborted ?? default; + public CancellationToken Token => _httpContextAccessor.HttpContext?.RequestAborted ?? CancellationToken.None; private readonly IHttpContextAccessor _httpContextAccessor; diff --git a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs index 835ad16ca7..477b0c764b 100644 --- a/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs +++ b/framework/src/Volo.Abp.Caching/Volo/Abp/Caching/DistributedCache.cs @@ -127,7 +127,7 @@ namespace Volo.Abp.Caching return value; } - using (AsyncLock.Lock()) + using (AsyncLock.Lock(CancellationTokenProvider.Token)) { value = Get(key, hideErrors); if (value != null) diff --git a/framework/src/Volo.Abp.Threading/Volo/Abp/Threading/NullCancellationTokenProvider.cs b/framework/src/Volo.Abp.Threading/Volo/Abp/Threading/NullCancellationTokenProvider.cs index 1d02ecb1e9..ab6320546c 100644 --- a/framework/src/Volo.Abp.Threading/Volo/Abp/Threading/NullCancellationTokenProvider.cs +++ b/framework/src/Volo.Abp.Threading/Volo/Abp/Threading/NullCancellationTokenProvider.cs @@ -6,7 +6,7 @@ namespace Volo.Abp.Threading { public static NullCancellationTokenProvider Instance { get; } = new NullCancellationTokenProvider(); - public CancellationToken Token { get; } = default; + public CancellationToken Token { get; } = CancellationToken.None; private NullCancellationTokenProvider() { From 68267c49a86ef00a94f0d14fe12c2e3c3450d5d8 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Wed, 20 Feb 2019 13:29:23 +0300 Subject: [PATCH 075/112] Temporary disable Contributors --- .../Volo/Docs/GitHub/Documents/GithubDocumentStore.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs index 59f19f6198..5baa073b9c 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/GitHub/Documents/GithubDocumentStore.cs @@ -50,7 +50,8 @@ namespace Volo.Docs.GitHub.Documents Format = project.Format, LocalDirectory = localDirectory, FileName = fileName, - Contributors = !isNavigationDocument ? await GetContributors(commitHistoryUrl, token, userAgent): new List(), + Contributors = new List(), + //Contributors = !isNavigationDocument ? await GetContributors(commitHistoryUrl, token, userAgent): new List(), Version = version, Content = await DownloadWebContentAsStringAsync(rawDocumentUrl, token, userAgent) }; From 97f3d10d51ff7ada355679c85298da0a626b6f43 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Feb 2019 13:56:54 +0300 Subject: [PATCH 076/112] =?UTF-8?q?decs:=20added=20GitHubUserAgent=20to=20?= =?UTF-8?q?u=C4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs | 2 +- .../Pages/Docs/Admin/Projects/Create.cshtml.cs | 5 +++++ .../Pages/Docs/Admin/Projects/Edit.cshtml.cs | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs index 1105fe94aa..9bf81c2140 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs +++ b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs @@ -14,7 +14,7 @@ namespace Volo.Docs.Admin CreateMap().Ignore(x => x.ExtraProperties); CreateMap () - .Ignore(x => x.GitHubAccessToken).Ignore(x => x.GitHubRootUrl); + .Ignore(x => x.GitHubAccessToken).Ignore(x => x.GitHubRootUrl).Ignore(x => x.GitHubUserAgent); } } } diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Create.cshtml.cs b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Create.cshtml.cs index 3b8f8836f2..7df02eec0c 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Create.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Create.cshtml.cs @@ -60,6 +60,7 @@ namespace Volo.Docs.Admin.Pages.Docs.Admin.Projects dto.ExtraProperties = new Dictionary { {nameof(GithubProject.GitHubRootUrl), GithubProject.GitHubRootUrl}, + {nameof(GithubProject.GitHubUserAgent), GithubProject.GitHubUserAgent}, {nameof(GithubProject.GitHubAccessToken), GithubProject.GitHubAccessToken} }; @@ -109,6 +110,10 @@ namespace Volo.Docs.Admin.Pages.Docs.Admin.Projects [DisplayOrder(10001)] [StringLength(512)] public string GitHubAccessToken { get; set; } + + [DisplayOrder(10002)] + [StringLength(64)] + public string GitHubUserAgent { get; set; } } } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Edit.cshtml.cs b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Edit.cshtml.cs index ddcda61058..77c5321ad0 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Edit.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/Edit.cshtml.cs @@ -62,6 +62,7 @@ namespace Volo.Docs.Admin.Pages.Docs.Admin.Projects dto.ExtraProperties = new Dictionary { {nameof(GithubProject.GitHubRootUrl), GithubProject.GitHubRootUrl}, + {nameof(GithubProject.GitHubUserAgent), GithubProject.GitHubUserAgent}, {nameof(GithubProject.GitHubAccessToken), GithubProject.GitHubAccessToken} }; @@ -74,6 +75,7 @@ namespace Volo.Docs.Admin.Pages.Docs.Admin.Projects GithubProject.GitHubAccessToken = (string) dto.ExtraProperties[nameof(GithubProject.GitHubAccessToken)]; GithubProject.GitHubRootUrl = (string) dto.ExtraProperties[nameof(GithubProject.GitHubRootUrl)]; + GithubProject.GitHubUserAgent = (string) dto.ExtraProperties[nameof(GithubProject.GitHubUserAgent)]; } public abstract class EditProjectViewModelBase @@ -116,6 +118,11 @@ namespace Volo.Docs.Admin.Pages.Docs.Admin.Projects [DisplayOrder(10001)] [StringLength(512)] public string GitHubAccessToken { get; set; } + + + [DisplayOrder(10002)] + [StringLength(64)] + public string GitHubUserAgent { get; set; } } } } \ No newline at end of file From 1d57d725ef2db8edcc36b6af8d1242b7f378f276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arma=C4=9Fan=20=C3=9Cnl=C3=BC?= <36102404+armgnunlu@users.noreply.github.com> Date: Wed, 20 Feb 2019 15:28:00 +0300 Subject: [PATCH 077/112] Update PermissionManagementModal.cshtml --- .../PermissionManagementModal.cshtml | 63 +++++++++++-------- 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml index c9c47d4483..c9e9ef754e 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml @@ -12,7 +12,9 @@ - + + + @@ -20,18 +22,24 @@ -
    - - -
    -
    + +

    Permissions for @Model.EntityDisplayName

    +
    + +
    + + +
    +
    + +
    @for (var i = 0; i < Model.Groups.Count; i++) { @@ -45,21 +53,22 @@ } } - - @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) - { - var hidePermissonOnProviderToggle = !Model.Groups[i].Permissions[j].AllowedProviders?.Any() ?? true; -
    - - -
    - } -
    + +

    Tab Pill's Title

    + @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) + { + var hidePermissonOnProviderToggle = !Model.Groups[i].Permissions[j].AllowedProviders?.Any() ?? true; +
    + + +
    + } +
    }
    From f33a96f7c6bc662c3e6d056c3ed924a31e38f389 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Feb 2019 15:57:45 +0300 Subject: [PATCH 078/112] permission modal: removed show only provider permissions feature --- .../PermissionManagementModal.cshtml | 47 +++---------------- .../PermissionManagementModal.cshtml.cs | 3 -- .../permission-management-modal.js | 23 --------- 3 files changed, 7 insertions(+), 66 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml index c9e9ef754e..0859cd9a76 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml @@ -12,53 +12,21 @@ - + - + - - - -

    Permissions for @Model.EntityDisplayName

    -
    - - -
    - - -
    -
    -
    -
    @for (var i = 0; i < Model.Groups.Count; i++) { - var hideTabOnProviderToggle = true; - @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) - { - if (!(!Model.Groups[i].Permissions[j].AllowedProviders?.Any() ?? true)) + +

    @Model.Groups[i].DisplayName

    + @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) { - hideTabOnProviderToggle = false; - break; - } - } - - -

    Tab Pill's Title

    - @for (var j = 0; j < Model.Groups[i].Permissions.Count; j++) - { - var hidePermissonOnProviderToggle = !Model.Groups[i].Permissions[j].AllowedProviders?.Any() ?? true; -
    -
    - } -
    + } +
    }
    diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs index 832e4bdeb9..0702c1e766 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/PermissionManagementModal.cshtml.cs @@ -20,9 +20,6 @@ namespace Volo.Abp.PermissionManagement.Web.Pages.AbpPermissionManagement [BindProperty(SupportsGet = true)] public string ProviderKey { get; set; } - [BindProperty(SupportsGet = true)] - public bool ShowOnlyProviderPermissons { get; set; } = false; - [BindProperty] public List Groups { get; set; } diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js index 900e404c09..fa4815e16e 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js @@ -35,17 +35,6 @@ }); } - function togglePermissions(radioButton) { - if (radioButton.val() == '1') { - $('.hidePermissonOnProviderToggle').slideUp(); - $('.hideTabOnProviderToggle').slideUp(); - } - else { - $('.hidePermissonOnProviderToggle').slideDown(); - $('.hideTabOnProviderToggle').slideDown(); - } - } - this.initDom = function($el) { $el.find('.tab-pane').each(function () { var $tab = $(this); @@ -60,18 +49,6 @@ }); }); }); - - var radioButton = $('input:radio[name="ShowOnlyProviderPermissonsToggle"]'); - - if ($('#ShowOnlyProviderPermissonsLabel').hasClass('active')) { - $('.hidePermissonOnProviderToggle').slideUp(); - $('.hideTabOnProviderToggle').slideUp(); - } - - radioButton.change( - function () { - togglePermissions($(this)); - }); }; }; })(jQuery); \ No newline at end of file From 7ab3f2df691be399e2e162aa77cc8abeda922e4e Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Feb 2019 15:58:27 +0300 Subject: [PATCH 079/112] Permisson modal: fixed parent & child checkbox relation --- .../permission-management-modal.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js index fa4815e16e..f32b00720e 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Pages/AbpPermissionManagement/permission-management-modal.js @@ -4,12 +4,12 @@ abp.modals.PermissionManagement = function () { function checkParents($tab, $checkBox) { - var parentName = $checkBox.closest('.form-check').attr('data-parent-name'); + var parentName = $checkBox.closest('.custom-checkbox').attr('data-parent-name'); if (!parentName) { return; } - $tab.find('.form-check') + $tab.find('.custom-checkbox') .filter('[data-permission-name="' + parentName + '"]') .find('input[type="checkbox"]') .each(function() { @@ -20,12 +20,12 @@ } function uncheckChildren($tab, $checkBox) { - var permissionName = $checkBox.closest('.form-check').attr('data-permission-name'); + var permissionName = $checkBox.closest('.custom-checkbox').attr('data-permission-name'); if (!permissionName) { return; } - $tab.find('.form-check') + $tab.find('.custom-checkbox') .filter('[data-parent-name="' + permissionName + '"]') .find('input[type="checkbox"]') .each(function () { From 46c4b1981251f349ad1a6b704c0a650c825f58a3 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Feb 2019 16:47:39 +0300 Subject: [PATCH 080/112] Resolved #829 --- .../Pages/Documents/Project/Index.cshtml | 32 ++++++++++++++----- .../Pages/Documents/Project/Index.cshtml.cs | 19 +++++++++-- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index a070bddecc..8a2f8e4574 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -45,7 +45,7 @@
    -
    - - - - -
    + + @if (Model.ProjectSelectItems.Any()) + { +
    +
    +
    +
    + +
    + + +
    +
    +
    + } @if (Model.VersionSelectItems.Any()) { @@ -88,12 +97,19 @@
    - +
    } +
    + + + + +
    + @if (Model.Navigation == null || Model.Navigation.Content.IsNullOrEmpty()) {
    diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index bd2c5e8485..a80aeb474c 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -31,6 +31,8 @@ namespace Volo.Docs.Pages.Documents.Project public List VersionSelectItems { get; private set; } + public List ProjectSelectItems { get; private set; } + public NavigationWithDetailsDto Navigation { get; private set; } public VersionInfoViewModel LatestVersionInfo { get; private set; } @@ -52,6 +54,7 @@ namespace Volo.Docs.Pages.Documents.Project public async Task OnGetAsync() { await SetProjectAsync(); + await SetProjectsAsync(); await SetVersionAsync(); await SetDocumentAsync(); await SetNavigationAsync(); @@ -62,6 +65,18 @@ namespace Volo.Docs.Pages.Documents.Project Project = await _projectAppService.GetAsync(ProjectName); } + private async Task SetProjectsAsync() + { + var projects = await _projectAppService.GetListAsync(); + + ProjectSelectItems = projects.Items.Select(p => new SelectListItem + { + Text = p.Name, + Value = p.Id != Project.Id ? "/documents/" + p.ShortName + "/" + DocsAppConsts.Latest : null, + Selected = p.Id == Project.Id + }).ToList(); + } + private async Task SetVersionAsync() { //TODO: Needs refactoring @@ -101,7 +116,7 @@ namespace Volo.Docs.Pages.Documents.Project VersionSelectItems = versions.Select(v => new SelectListItem { Text = v.DisplayText, - Value = CreateLink(LatestVersionInfo, v.Version, DocumentName), + Value = CreateVersionLink(LatestVersionInfo, v.Version, DocumentName), Selected = v.IsSelected }).ToList(); } @@ -128,7 +143,7 @@ namespace Volo.Docs.Pages.Documents.Project Navigation.ConvertItems(); } - public string CreateLink(VersionInfoViewModel latestVersion, string version, string documentName = null) + public string CreateVersionLink(VersionInfoViewModel latestVersion, string version, string documentName = null) { if (latestVersion == null || latestVersion.Version == version) { From e8e9e988b36881411e43196dfa31a4ab06902e2f Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Feb 2019 17:04:46 +0300 Subject: [PATCH 081/112] Resolved #812 --- .../Volo/Abp/IdentityServer/Clients/ClientConsts.cs | 8 ++++---- .../Abp/IdentityServer/Clients/ClientPropertyConsts.cs | 4 ++-- .../Abp/IdentityServer/Clients/ClientRedirectUriConsts.cs | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientConsts.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientConsts.cs index d83138fd2f..312a6d70ef 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientConsts.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientConsts.cs @@ -8,15 +8,15 @@ public const int ClientNameMaxLength = 200; - public const int ClientUriMaxLength = 2000; + public const int ClientUriMaxLength = 300; - public const int LogoUriMaxLength = 2000; + public const int LogoUriMaxLength = 300; public const int DescriptionMaxLength = 1000; - public const int FrontChannelLogoutUriMaxLength = 2000; + public const int FrontChannelLogoutUriMaxLength = 300; - public const int BackChannelLogoutUriMaxLength = 2000; + public const int BackChannelLogoutUriMaxLength = 300; public const int ClientClaimsPrefixMaxLength = 200; diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientPropertyConsts.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientPropertyConsts.cs index 6535304596..44ab04e517 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientPropertyConsts.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientPropertyConsts.cs @@ -2,7 +2,7 @@ { public class ClientPropertyConsts { - public const int KeyMaxLength = 250; - public const int ValueMaxLength = 2000; + public const int KeyMaxLength = 64; + public const int ValueMaxLength = 128; } } \ No newline at end of file diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientRedirectUriConsts.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientRedirectUriConsts.cs index d67bbea509..b04588fb27 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientRedirectUriConsts.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Clients/ClientRedirectUriConsts.cs @@ -2,6 +2,6 @@ { public class ClientRedirectUriConsts { - public const int RedirectUriMaxLength = 2000; + public const int RedirectUriMaxLength = 200; } } \ No newline at end of file From 7527d77d0a9c612dee4891ba23f5e828a87e4586 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Wed, 20 Feb 2019 17:16:33 +0300 Subject: [PATCH 082/112] docs module: hide project selection by project count --- .../docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index 8a2f8e4574..55c1752994 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -73,7 +73,7 @@
    - @if (Model.ProjectSelectItems.Any()) + @if (Model.ProjectSelectItems.Count > 1) {
    From 2650da4faa44bf932d7e1d83d717fe0176ed0b52 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Wed, 20 Feb 2019 20:24:12 +0300 Subject: [PATCH 083/112] Delete old build & docker folders. --- build/build.ps1 | 50 --------------------------------------- docker/docker-compose.yml | 28 ---------------------- docker/down.ps1 | 1 - docker/haproxy.cfg | 18 -------------- docker/up.ps1 | 8 ------- 5 files changed, 105 deletions(-) delete mode 100644 build/build.ps1 delete mode 100644 docker/docker-compose.yml delete mode 100644 docker/down.ps1 delete mode 100644 docker/haproxy.cfg delete mode 100644 docker/up.ps1 diff --git a/build/build.ps1 b/build/build.ps1 deleted file mode 100644 index c594ce2280..0000000000 --- a/build/build.ps1 +++ /dev/null @@ -1,50 +0,0 @@ -# COMMON PATHS - -$buildFolder = (Get-Item -Path "./" -Verbose).FullName -$slnFolder = Join-Path $buildFolder "../" -$outputFolder = Join-Path $buildFolder "outputs" -$abpDeskFolder = Join-Path $slnFolder "src/AbpDesk" -$abpDeskWebFolder = Join-Path $abpDeskFolder "AbpDesk.Web.Mvc" - -## CLEAR ###################################################################### - -Remove-Item $outputFolder -Force -Recurse -New-Item -Path $outputFolder -ItemType Directory - -## RESTORE NUGET PACKAGES ##################################################### - -Set-Location $slnFolder -dotnet restore - -## PUBLISH ASPDESK WEB ######################################################## - -Set-Location $abpDeskWebFolder -dotnet publish --output (Join-Path $outputFolder "AbpDesk/Web") - -New-Item -Path (Join-Path $outputFolder "AbpDesk/Web/PlugIns") -ItemType Directory -Copy-Item (Join-Path $abpDeskFolder "Web_PlugIns/*") (Join-Path $outputFolder "AbpDesk/Web/PlugIns/") - -## PUBLISH IDENTITY HTTP API HOST ############################################# - -Set-Location (Join-Path $slnFolder "src/Volo.Abp.Identity.HttpApi.Host") -dotnet publish --output (Join-Path $outputFolder "AbpIdentity/HttpApiHost") - -## CREATE DOCKER IMAGES ####################################################### - -Set-Location (Join-Path $outputFolder "AbpDesk/Web") - -docker rmi abpdesk/web -f -docker build -t abpdesk/web . - -Set-Location (Join-Path $outputFolder "AbpIdentity/HttpApiHost") - -docker rmi abpidentity/httpapihost -f -docker build -t abpidentity/httpapihost . - -## DOCKER COMPOSE FILES ####################################################### - -Copy-Item (Join-Path $slnFolder "docker/*.*") $outputFolder - -## FINALIZE ################################################################### - -Set-Location $outputFolder \ No newline at end of file diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml deleted file mode 100644 index 314feb5709..0000000000 --- a/docker/docker-compose.yml +++ /dev/null @@ -1,28 +0,0 @@ -version: '2' - -services: - - mongodb: - image: tutum/mongodb - environment: - - AUTH=no - ports: - - "27017:27017" - - "28017:28017" - - abpidentity_httpapihost: - image: abpidentity/httpapihost - environment: - - ASPNETCORE_ENVIRONMENT=Staging - - abpdesk_web: - image: abpdesk/web - environment: - - ASPNETCORE_ENVIRONMENT=Staging - - load_balancer: - image: haproxy:1.7.1 - volumes: - - "./haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg" - ports: - - "9005:8080" \ No newline at end of file diff --git a/docker/down.ps1 b/docker/down.ps1 deleted file mode 100644 index 508a7c4d74..0000000000 --- a/docker/down.ps1 +++ /dev/null @@ -1 +0,0 @@ -docker-compose down -v --rmi local \ No newline at end of file diff --git a/docker/haproxy.cfg b/docker/haproxy.cfg deleted file mode 100644 index 276ad980c8..0000000000 --- a/docker/haproxy.cfg +++ /dev/null @@ -1,18 +0,0 @@ -global - maxconn 4096 - -defaults - mode http - timeout connect 5s - timeout client 50s - timeout server 50s - -listen http-in - bind *:8080 - - server web-1 outputs_abpdesk_web_1:80 - server web-2 outputs_abpdesk_web_2:80 - - stats enable - stats uri /haproxy - stats refresh 1s \ No newline at end of file diff --git a/docker/up.ps1 b/docker/up.ps1 deleted file mode 100644 index 49ee1ee616..0000000000 --- a/docker/up.ps1 +++ /dev/null @@ -1,8 +0,0 @@ -docker rm $(docker ps -aq) -docker-compose up -d mongodb -docker-compose up -d abpidentity_httpapihost -docker-compose up -d abpdesk_web -sleep 2 -docker-compose scale abpdesk_web=2 -sleep 2 -docker-compose up -d load_balancer \ No newline at end of file From 4b7ecc9a0b1f724178e86c81d3b40f325a1b1a19 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Wed, 20 Feb 2019 21:14:37 +0300 Subject: [PATCH 084/112] #804: Add option to skip external lookup where local user does exists --- .../Volo/Abp/Users/UserLookupService.cs | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/UserLookupService.cs b/modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/UserLookupService.cs index 7333434fc1..09979f00e1 100644 --- a/modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/UserLookupService.cs +++ b/modules/users/src/Volo.Abp.Users.Domain/Volo/Abp/Users/UserLookupService.cs @@ -12,6 +12,8 @@ namespace Volo.Abp.Users where TUser : class, IUser where TUserRepository : IUserRepository { + protected bool SkipExternalLookupIfLocalUserExists { get; set; } = true; + public IExternalUserLookupServiceProvider ExternalUserLookupServiceProvider { get; set; } public ILogger> Logger { get; set; } @@ -30,9 +32,16 @@ namespace Volo.Abp.Users public async Task FindByIdAsync(Guid id, CancellationToken cancellationToken = default) { + var localUser = await _userRepository.FindAsync(id, cancellationToken: cancellationToken); + if (ExternalUserLookupServiceProvider == null) { - return await _userRepository.FindAsync(id, cancellationToken: cancellationToken); + return localUser; + } + + if (SkipExternalLookupIfLocalUserExists && localUser != null) + { + return localUser; } IUserData externalUser; @@ -42,8 +51,11 @@ namespace Volo.Abp.Users externalUser = await ExternalUserLookupServiceProvider.FindByIdAsync(id, cancellationToken); if (externalUser == null) { - //TODO: Instead of deleting, should be make it inactive or something like that? - await WithNewUowAsync(() => _userRepository.DeleteAsync(id, cancellationToken: cancellationToken)); + if (localUser != null) + { + //TODO: Instead of deleting, should be make it inactive or something like that? + await WithNewUowAsync(() => _userRepository.DeleteAsync(localUser, cancellationToken: cancellationToken)); + } return null; } @@ -51,14 +63,12 @@ namespace Volo.Abp.Users catch (Exception ex) { Logger.LogException(ex); - return await _userRepository.FindAsync(id, cancellationToken: cancellationToken); + return localUser; } - var localUser = await _userRepository.FindAsync(id, cancellationToken: cancellationToken); if (localUser == null) { await WithNewUowAsync(() => _userRepository.InsertAsync(CreateUser(externalUser), cancellationToken: cancellationToken)); - return await _userRepository.FindAsync(id, cancellationToken: cancellationToken); } @@ -76,9 +86,16 @@ namespace Volo.Abp.Users public async Task FindByUserNameAsync(string userName, CancellationToken cancellationToken = default) { + var localUser = await _userRepository.FindByUserNameAsync(userName, cancellationToken); + if (ExternalUserLookupServiceProvider == null) { - return await _userRepository.FindByUserNameAsync(userName, cancellationToken); + return localUser; + } + + if (SkipExternalLookupIfLocalUserExists && localUser != null) + { + return localUser; } IUserData externalUser; @@ -88,11 +105,10 @@ namespace Volo.Abp.Users externalUser = await ExternalUserLookupServiceProvider.FindByUserNameAsync(userName, cancellationToken); if (externalUser == null) { - var localExistingUser = await _userRepository.FindByUserNameAsync(userName, cancellationToken); - if (localExistingUser != null) + if (localUser != null) { //TODO: Instead of deleting, should be make it passive or something like that? - await WithNewUowAsync(() => _userRepository.DeleteAsync(localExistingUser.Id, cancellationToken: cancellationToken)); + await WithNewUowAsync(() => _userRepository.DeleteAsync(localUser, cancellationToken: cancellationToken)); } return null; @@ -101,10 +117,9 @@ namespace Volo.Abp.Users catch (Exception ex) { Logger.LogException(ex); - return await _userRepository.FindByUserNameAsync(userName, cancellationToken); + return localUser; } - var localUser = await _userRepository.FindByUserNameAsync(userName, cancellationToken); if (localUser == null) { await WithNewUowAsync(() => _userRepository.InsertAsync(CreateUser(externalUser), cancellationToken: cancellationToken)); From 28eacfa3f89d31427218bcb57d230f2cd280365c Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Wed, 20 Feb 2019 21:14:53 +0300 Subject: [PATCH 085/112] Implement IUpdateUserData for BlogUser --- .../Volo/Blogging/Users/BlogUser.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUser.cs b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUser.cs index 0ae80c8d42..fe4ce41e6a 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUser.cs +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUser.cs @@ -4,7 +4,7 @@ using Volo.Abp.Users; namespace Volo.Blogging.Users { - public class BlogUser : AggregateRoot, IUser + public class BlogUser : AggregateRoot, IUser, IUpdateUserData { public virtual Guid? TenantId { get; protected set; } @@ -40,8 +40,19 @@ namespace Volo.Blogging.Users TenantId = user.TenantId; } - public void Update(IUserData user) + public bool Update(IUserData user) { + if (UserName == user.UserName && + Name == user.Name && + Surname == user.Surname && + Email == user.Email && + EmailConfirmed == user.EmailConfirmed && + PhoneNumber == user.PhoneNumber && + PhoneNumberConfirmed == user.PhoneNumberConfirmed) + { + return false; + } + Email = user.Email; Name = user.Name; Surname = user.Surname; @@ -49,6 +60,8 @@ namespace Volo.Blogging.Users PhoneNumber = user.PhoneNumber; PhoneNumberConfirmed = user.PhoneNumberConfirmed; UserName = user.UserName; + + return true; } } } From cb61c0be9352653e402683674acaf9d365afb0bc Mon Sep 17 00:00:00 2001 From: Nokecy Date: Thu, 21 Feb 2019 10:39:44 +0800 Subject: [PATCH 086/112] Add administrative user name value --- .../Volo/Abp/Identity/IdentityDataSeeder.cs | 1 + .../Volo/Abp/Identity/IdentityDataSeeder_Tests.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs index 1aa90b8b5f..681dcca7f2 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDataSeeder.cs @@ -56,6 +56,7 @@ namespace Volo.Abp.Identity } adminUser = new IdentityUser(_guidGenerator.Create(), adminUserName, "admin@abp.io", tenantId); + adminUser.Name = adminUserName; CheckIdentityErrors(await _userManager.CreateAsync(adminUser, adminUserPassword)); //"admin" role diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityDataSeeder_Tests.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityDataSeeder_Tests.cs index 515b335fc8..a8e31dd6e5 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityDataSeeder_Tests.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityDataSeeder_Tests.cs @@ -28,6 +28,7 @@ namespace Volo.Abp.Identity await _identityDataSeeder.SeedAsync("1q2w3E*"); (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("admin"))).ShouldNotBeNull(); + (await _userRepository.FindByNormalizedUserNameAsync(_lookupNormalizer.Normalize("admin"))).Name.ShouldBe("admin"); (await _roleRepository.FindByNormalizedNameAsync(_lookupNormalizer.Normalize("admin"))).ShouldNotBeNull(); } } From 535c6329d4a7236c5e8a47b9197bbd23e3ecb02f Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 21 Feb 2019 09:09:08 +0300 Subject: [PATCH 087/112] BlogUser refactored. --- .../Volo/Blogging/Users/BlogUser.cs | 49 ++++++++++++------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUser.cs b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUser.cs index fe4ce41e6a..9bdbb2fc0d 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUser.cs +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUser.cs @@ -30,29 +30,46 @@ namespace Volo.Blogging.Users public BlogUser(IUserData user) : base(user.Id) { - Email = user.Email; - Name = user.Name; - Surname = user.Surname; - EmailConfirmed = user.EmailConfirmed; - PhoneNumber = user.PhoneNumber; - PhoneNumberConfirmed = user.PhoneNumberConfirmed; - UserName = user.UserName; TenantId = user.TenantId; + UpdateInternal(user); } - public bool Update(IUserData user) + public virtual bool Update(IUserData user) { - if (UserName == user.UserName && - Name == user.Name && - Surname == user.Surname && - Email == user.Email && - EmailConfirmed == user.EmailConfirmed && - PhoneNumber == user.PhoneNumber && - PhoneNumberConfirmed == user.PhoneNumberConfirmed) + if (Id != user.Id) + { + throw new ArgumentException($"Given User's Id '{user.Id}' does not match to this User's Id '{Id}'"); + } + + if (TenantId != user.TenantId) + { + throw new ArgumentException($"Given User's TenantId '{user.TenantId}' does not match to this User's TenantId '{TenantId}'"); + } + + if (Equals(user)) { return false; } + UpdateInternal(user); + return true; + } + + protected virtual bool Equals(IUserData user) + { + return Id == user.Id && + TenantId == user.TenantId && + UserName == user.UserName && + Name == user.Name && + Surname == user.Surname && + Email == user.Email && + EmailConfirmed == user.EmailConfirmed && + PhoneNumber == user.PhoneNumber && + PhoneNumberConfirmed == user.PhoneNumberConfirmed; + } + + protected virtual void UpdateInternal(IUserData user) + { Email = user.Email; Name = user.Name; Surname = user.Surname; @@ -60,8 +77,6 @@ namespace Volo.Blogging.Users PhoneNumber = user.PhoneNumber; PhoneNumberConfirmed = user.PhoneNumberConfirmed; UserName = user.UserName; - - return true; } } } From eb2e956e500b0407c05da49d11dce06653d97050 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 21 Feb 2019 09:36:28 +0300 Subject: [PATCH 088/112] Code cleanup and added todo --- .../Volo/Blogging/Users/BlogUserLookupService.cs | 1 + .../blogging/src/Volo.Blogging.Web/Pages/Blog/BloggingPage.cs | 2 +- modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/edit.js | 2 -- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUserLookupService.cs b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUserLookupService.cs index 7ef29a026d..9bf0025570 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUserLookupService.cs +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo/Blogging/Users/BlogUserLookupService.cs @@ -12,6 +12,7 @@ namespace Volo.Blogging.Users userRepository, unitOfWorkManager) { + } protected override BlogUser CreateUser(IUserData externalUser) diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/BloggingPage.cs b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/BloggingPage.cs index 90395d763a..03214d1ee3 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/BloggingPage.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/BloggingPage.cs @@ -28,7 +28,7 @@ namespace Volo.Blogging.Pages.Blog return title; } - public string GetShortContent(string content) + public string GetShortContent(string content) //TODO: This should be moved to its own place! { var openingTag = "

    "; var closingTag = "

    "; diff --git a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/edit.js b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/edit.js index 2d646de304..32bd7873ca 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/edit.js +++ b/modules/blogging/src/Volo.Blogging.Web/Pages/Blog/Posts/edit.js @@ -52,7 +52,6 @@ }); }; - console.log($form.find("input[name='Post.Content']").val() + "asda"); var newPostEditor = $editorContainer.tuiEditor({ usageStatistics: false, initialEditType: 'markdown', @@ -82,7 +81,6 @@ var postText = newPostEditor.getMarkdown(); $postTextInput.val(postText); - console.log(postText); $submitButton.buttonBusy(); $(this).off('submit').submit(); From 129cd2dc006d5dedbbfd15aa08b92d3d778c53fe Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 21 Feb 2019 09:36:40 +0300 Subject: [PATCH 089/112] added Authorize for DeleteAsync --- .../Volo/Blogging/Posts/PostAppService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs index 69e325f0c7..c5113ae630 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs @@ -135,6 +135,7 @@ namespace Volo.Blogging.Posts return postDto; } + [Authorize(BloggingPermissions.Posts.Delete)] public async Task DeleteAsync(Guid id) { var post = await _postRepository.GetAsync(id); From 53a8666827150c5d1a6dbb685ef4521c13400d42 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 21 Feb 2019 10:03:25 +0300 Subject: [PATCH 090/112] Basic theme #830 : added partialview for recursion --- .../Basic/Components/Menu/Default.cshtml | 36 ++++++++---------- .../Basic/Components/Menu/_MenuItem.cshtml | 37 +++++++++++++++++++ 2 files changed, 53 insertions(+), 20 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/_MenuItem.cshtml diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/Default.cshtml b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/Default.cshtml index 2e7e7f3f4c..bddc2dcea5 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/Default.cshtml +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/Default.cshtml @@ -1,43 +1,39 @@ @using Volo.Abp.UI.Navigation @model ApplicationMenu + @foreach (var menuItem in Model.Items) { var elementId = string.IsNullOrEmpty(menuItem.ElementId) ? string.Empty : $"id=\"{menuItem.ElementId}\""; var cssClass = string.IsNullOrEmpty(menuItem.CssClass) ? string.Empty : menuItem.CssClass; var disabled = menuItem.IsDisabled ? "disabled" : string.Empty; - if (menuItem.IsLeaf) { - if (menuItem.Url == null) + @if (menuItem.Url != null) { - continue; - } - -
    + @menuItem.DisplayName + + + } } else { - + } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/_MenuItem.cshtml b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/_MenuItem.cshtml new file mode 100644 index 0000000000..60dab4fd76 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Themes/Basic/Components/Menu/_MenuItem.cshtml @@ -0,0 +1,37 @@ +@using Volo.Abp.UI.Navigation +@model ApplicationMenuItem +@{ + var elementId = string.IsNullOrEmpty(Model.ElementId) ? string.Empty : $"id=\"{Model.ElementId}\""; + var cssClass = string.IsNullOrEmpty(Model.CssClass) ? string.Empty : Model.CssClass; + var disabled = Model.IsDisabled ? "disabled" : string.Empty; +} +@if (Model.IsLeaf) +{ + @if (Model.Url != null) + { + + @Model.DisplayName + + } +} +else +{ + @**@ + +} From 50dd44d1d00edacc8f4dfab9f7e6f1d53b4994ba Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 21 Feb 2019 10:51:47 +0300 Subject: [PATCH 091/112] Resolved #810: Blog Module's FilesController should support N-tier deployment. --- .../BloggingTestAppModule.cs | 7 ++ .../Volo/Blogging/Files/BloggingWebConsts.cs | 14 ++++ .../Volo/Blogging/Files/FileUploadInputDto.cs | 13 ++++ .../Blogging/Files/FileUploadOutputDto.cs | 7 ++ .../Volo/Blogging/Files/IFileAppService.cs | 10 +++ .../Volo.Blogging.Application.csproj | 1 + .../Volo/Blogging/CommonOperations.cs | 5 +- .../Volo/Blogging/Files/BlogFileOptions.cs | 13 ++++ .../Volo/Blogging/Files/FileAppService.cs | 65 +++++++++++++++++ .../Volo/Blogging/Files/FileUploadConsts.cs | 20 ++++++ .../Volo/Blogging/Files}/ImageFormatHelper.cs | 0 .../Areas/Blog/Controllers/FilesController.cs | 36 ++++++++-- .../Volo.Blogging.Web/BloggingWebConsts.cs | 30 -------- .../Volo.Blogging.Web/Hosting/FileService.cs | 72 ------------------- .../Hosting/FormFileExtensions.cs | 42 ++--------- .../Volo.Blogging.Web/Hosting/IFileService.cs | 16 ----- .../Volo.Blogging.Web.csproj | 1 - 17 files changed, 185 insertions(+), 167 deletions(-) create mode 100644 modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/BloggingWebConsts.cs create mode 100644 modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/FileUploadInputDto.cs create mode 100644 modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/FileUploadOutputDto.cs create mode 100644 modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/IFileAppService.cs create mode 100644 modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/BlogFileOptions.cs create mode 100644 modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileAppService.cs create mode 100644 modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileUploadConsts.cs rename modules/blogging/src/{Volo.Blogging.Web/Areas/Blog/Helpers => Volo.Blogging.Application/Volo/Blogging/Files}/ImageFormatHelper.cs (100%) delete mode 100644 modules/blogging/src/Volo.Blogging.Web/BloggingWebConsts.cs delete mode 100644 modules/blogging/src/Volo.Blogging.Web/Hosting/FileService.cs delete mode 100644 modules/blogging/src/Volo.Blogging.Web/Hosting/IFileService.cs diff --git a/modules/blogging/app/Volo.BloggingTestApp/BloggingTestAppModule.cs b/modules/blogging/app/Volo.BloggingTestApp/BloggingTestAppModule.cs index 6a7ca9ec6d..1945c6ac31 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/BloggingTestAppModule.cs +++ b/modules/blogging/app/Volo.BloggingTestApp/BloggingTestAppModule.cs @@ -31,6 +31,7 @@ using Volo.Abp.Threading; using Volo.Abp.UI; using Volo.Abp.VirtualFileSystem; using Volo.Blogging; +using Volo.Blogging.Files; using Volo.BloggingTestApp.EntityFrameworkCore; using Volo.BloggingTestApp.MongoDb; @@ -109,6 +110,12 @@ namespace Volo.BloggingTestApp { options.DefaultThemeName = BasicTheme.Name; }); + + Configure(options => + { + options.FileUploadLocalFolder = Path.Combine(hostingEnvironment.WebRootPath, "files"); + options.FileUploadUrlRoot = "/files/"; + }); } public override void OnApplicationInitialization(ApplicationInitializationContext context) diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/BloggingWebConsts.cs b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/BloggingWebConsts.cs new file mode 100644 index 0000000000..ae4eb32dff --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/BloggingWebConsts.cs @@ -0,0 +1,14 @@ +using System; + +namespace Volo.Blogging +{ + public class BloggingWebConsts + { + public class FileUploading + { + public const int MaxFileSize = 5242880; //5MB + + public static int MaxFileSizeAsMegabytes => Convert.ToInt32((MaxFileSize / 1024f) / 1024f); + } + } +} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/FileUploadInputDto.cs b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/FileUploadInputDto.cs new file mode 100644 index 0000000000..c0686835fd --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/FileUploadInputDto.cs @@ -0,0 +1,13 @@ +using System.ComponentModel.DataAnnotations; + +namespace Volo.Blogging.Files +{ + public class FileUploadInputDto + { + [Required] + public byte[] Bytes { get; set; } + + [Required] + public string Name { get; set; } + } +} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/FileUploadOutputDto.cs b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/FileUploadOutputDto.cs new file mode 100644 index 0000000000..1c3b1a1a94 --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/FileUploadOutputDto.cs @@ -0,0 +1,7 @@ +namespace Volo.Blogging.Files +{ + public class FileUploadOutputDto + { + public string Url { get; set; } + } +} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/IFileAppService.cs b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/IFileAppService.cs new file mode 100644 index 0000000000..6fed8bc62f --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Files/IFileAppService.cs @@ -0,0 +1,10 @@ +using System.Threading.Tasks; +using Volo.Abp.Application.Services; + +namespace Volo.Blogging.Files +{ + public interface IFileAppService : IApplicationService + { + Task UploadAsync(FileUploadInputDto input); + } +} diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj index a769735b31..95682a2a9e 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj +++ b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj @@ -10,6 +10,7 @@ + diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/CommonOperations.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/CommonOperations.cs index 855b504ae4..01e3fefd36 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/CommonOperations.cs +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/CommonOperations.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Microsoft.AspNetCore.Authorization.Infrastructure; +using Microsoft.AspNetCore.Authorization.Infrastructure; namespace Volo.Blogging { diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/BlogFileOptions.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/BlogFileOptions.cs new file mode 100644 index 0000000000..a06bdafc8d --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/BlogFileOptions.cs @@ -0,0 +1,13 @@ +namespace Volo.Blogging.Files +{ + /* TODO: + * - It is not to have different options for all different modules. We should find a more generic way. + * - Actually, it is not good to assume to save to a local folder. Instead, use file storage once implemented. + */ + public class BlogFileOptions + { + public string FileUploadLocalFolder { get; set; } + + public string FileUploadUrlRoot { get; set; } + } +} diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileAppService.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileAppService.cs new file mode 100644 index 0000000000..8f18608080 --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileAppService.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.IO; +using System.Threading.Tasks; +using Microsoft.Extensions.Options; +using Volo.Abp; +using Volo.Abp.Application.Services; +using Volo.Abp.Validation; +using Volo.Blogging.Areas.Blog.Helpers; + +namespace Volo.Blogging.Files +{ + public class FileAppService : ApplicationService, IFileAppService + { + public BlogFileOptions Options { get; } + + public FileAppService(IOptions options) + { + Options = options.Value; + } + + public virtual Task UploadAsync(FileUploadInputDto input) + { + if (input.Bytes.IsNullOrEmpty()) + { + ThrowValidationException("Bytes can not be null or empty!", "Bytes"); + } + + if (input.Bytes.Length > BloggingWebConsts.FileUploading.MaxFileSize) + { + throw new UserFriendlyException($"File exceeds the maximum upload size ({BloggingWebConsts.FileUploading.MaxFileSizeAsMegabytes} MB)!"); + } + + if (!ImageFormatHelper.IsValidImage(input.Bytes, FileUploadConsts.AllowedImageUploadFormats)) + { + throw new UserFriendlyException("Not a valid image format!"); + } + + var uniqueFileName = GenerateUniqueFileName(Path.GetExtension(input.Name)); + var filePath = Path.Combine(Options.FileUploadLocalFolder, uniqueFileName); + + File.WriteAllBytes(filePath, input.Bytes); //TODO: Previously was using WriteAllBytesAsync, but it's only in .netcore. + + return Task.FromResult(new FileUploadOutputDto + { + Url = Options.FileUploadUrlRoot.EnsureEndsWith('/') + uniqueFileName + }); + } + + private static void ThrowValidationException(string message, string memberName) + { + throw new AbpValidationException(message, + new List + { + new ValidationResult(message, new[] {memberName}) + }); + } + + protected virtual string GenerateUniqueFileName(string extension, string prefix = null, string postfix = null) + { + return prefix + GuidGenerator.Create().ToString("N") + postfix + extension; + } + } +} diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileUploadConsts.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileUploadConsts.cs new file mode 100644 index 0000000000..28cb3491f3 --- /dev/null +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/FileUploadConsts.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Drawing.Imaging; +using System.Linq; + +namespace Volo.Blogging.Files +{ + public class FileUploadConsts + { + public static readonly ICollection AllowedImageUploadFormats = new Collection + { + ImageFormat.Jpeg, + ImageFormat.Png, + ImageFormat.Gif, + ImageFormat.Bmp + }; + + public static string AllowedImageFormatsJoint => string.Join(",", AllowedImageUploadFormats.Select(x => x.ToString())); + } +} diff --git a/modules/blogging/src/Volo.Blogging.Web/Areas/Blog/Helpers/ImageFormatHelper.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs similarity index 100% rename from modules/blogging/src/Volo.Blogging.Web/Areas/Blog/Helpers/ImageFormatHelper.cs rename to modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Files/ImageFormatHelper.cs diff --git a/modules/blogging/src/Volo.Blogging.Web/Areas/Blog/Controllers/FilesController.cs b/modules/blogging/src/Volo.Blogging.Web/Areas/Blog/Controllers/FilesController.cs index 1f8b932a83..7d3e12f3cd 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Areas/Blog/Controllers/FilesController.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Areas/Blog/Controllers/FilesController.cs @@ -1,31 +1,55 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; +using Volo.Abp; using Volo.Abp.AspNetCore.Mvc; using Volo.Blogging.Areas.Blog.Models; +using Volo.Blogging.Files; using Volo.Blogging.Hosting; namespace Volo.Blogging.Areas.Blog.Controllers { + //TODO: This may be moved to HttpApi project since it may be needed by a SPA too. [Area("Blog")] [Route("Blog/[controller]/[action]")] public class FilesController : AbpController { - private readonly IFileService _fileService; + private readonly IFileAppService _fileAppService; - public FilesController(IFileService fileService) + public FilesController(IFileAppService fileAppService) { - _fileService = fileService; + _fileAppService = fileAppService; } [HttpPost] public async Task UploadImage(IFormFile file) { - file.ValidateImage(out var fileBytes); + //TODO: localize exception messages - var fileUrl = await _fileService.SaveFileAsync(fileBytes, file.FileName); + if (file == null) + { + throw new UserFriendlyException("No file found!"); + } - return Json(new FileUploadResult(fileUrl)); + if (file.Length <= 0) + { + throw new UserFriendlyException("File is empty!"); + } + + if (!file.ContentType.Contains("image")) + { + throw new UserFriendlyException("Not a valid image!"); + } + + var output = await _fileAppService.UploadAsync( + new FileUploadInputDto + { + Bytes = file.AsBytes(), + Name = file.FileName + } + ); + + return Json(new FileUploadResult(output.Url)); } } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/BloggingWebConsts.cs b/modules/blogging/src/Volo.Blogging.Web/BloggingWebConsts.cs deleted file mode 100644 index 491ea9d67b..0000000000 --- a/modules/blogging/src/Volo.Blogging.Web/BloggingWebConsts.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Drawing.Imaging; -using System.Linq; - -namespace Volo.Blogging -{ - public class BloggingWebConsts - { - public class FileUploading - { - public const string DefaultFileUploadFolderName = "files"; - - public static readonly ICollection AllowedImageUploadFormats = new Collection - { - ImageFormat.Jpeg, - ImageFormat.Png, - ImageFormat.Gif, - ImageFormat.Bmp - }; - - public static string AllowedImageFormatsJoint => string.Join(",", AllowedImageUploadFormats.Select(x => x.ToString())); - - public const int MaxFileSize = 5242880; //5MB - - public static int MaxFileSizeAsMegabytes => Convert.ToInt32((MaxFileSize / 1024f) / 1024f); - } - } -} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Hosting/FileService.cs b/modules/blogging/src/Volo.Blogging.Web/Hosting/FileService.cs deleted file mode 100644 index accb424215..0000000000 --- a/modules/blogging/src/Volo.Blogging.Web/Hosting/FileService.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System.IO; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; -using Volo.Abp; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Guids; - -namespace Volo.Blogging.Hosting -{ - public class FileService : IFileService, ITransientDependency - { - private readonly IHostingEnvironment _hostingEnvironment; - private readonly IGuidGenerator _guidGenerator; - - public FileService(IHostingEnvironment hostingEnvironment, IGuidGenerator guidGenerator) - { - _hostingEnvironment = hostingEnvironment; - _guidGenerator = guidGenerator; - } - - public string FileUploadDirectory - { - get - { - var uploadDirectory = Path.Combine(_hostingEnvironment.WebRootPath, BloggingWebConsts.FileUploading.DefaultFileUploadFolderName); - if (!Directory.Exists(uploadDirectory)) - { - Directory.CreateDirectory(uploadDirectory); - } - - return uploadDirectory; - } - } - - public string GenerateUniqueFileName(string extension, string prefix = null, string postfix = null) - { - return prefix + _guidGenerator.Create().ToString("N") + postfix + extension; - } - - public async Task SaveFormFileAndGetUrlAsync(IFormFile file) - { - var uniqueFileName = await SaveFileInternalAsync(file.FileName, file.AsBytes()); - return GetFileUrl(uniqueFileName); - } - - public async Task SaveFileAsync(byte[] fileBytes, string originalFileName) - { - if (fileBytes == null || fileBytes.Length == 0) - { - throw new UserFriendlyException("File is empty!"); - } - - var uniqueFileName = await SaveFileInternalAsync(originalFileName, fileBytes); - return GetFileUrl(uniqueFileName); - } - - private static string GetFileUrl(string uniqueFileName) - { - return "/" + BloggingWebConsts.FileUploading.DefaultFileUploadFolderName + "/" + uniqueFileName; - } - - private async Task SaveFileInternalAsync(string originalFileName, byte[] fileBytes) - { - var uniqueFileName = GenerateUniqueFileName(Path.GetExtension(originalFileName)); - var filePath = Path.Combine(FileUploadDirectory, uniqueFileName); - File.WriteAllBytes(filePath, fileBytes); //TODO: Previously was using WriteAllBytesAsync, but it's only in .netcore. - return uniqueFileName; - } - - } -} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Hosting/FormFileExtensions.cs b/modules/blogging/src/Volo.Blogging.Web/Hosting/FormFileExtensions.cs index 669958d086..aab0832bbf 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Hosting/FormFileExtensions.cs +++ b/modules/blogging/src/Volo.Blogging.Web/Hosting/FormFileExtensions.cs @@ -2,56 +2,22 @@ using JetBrains.Annotations; using Microsoft.AspNetCore.Http; using Volo.Abp; -using Volo.Blogging.Areas.Blog.Helpers; namespace Volo.Blogging.Hosting { public static class FormFileExtensions { - public static byte[] AsBytes(this IFormFile file) + public static byte[] AsBytes(this IFormFile file) //TODO: Move to the framework (rename to GetBytes) { - byte[] fileBytes; using (var stream = file.OpenReadStream()) { - fileBytes = stream.GetAllBytes(); + return stream.GetAllBytes(); } - - return fileBytes; } - public static void ValidateImage([CanBeNull] this IFormFile file, out byte[] fileBytes) + public static void ValidateImage([CanBeNull] this IFormFile file) { - fileBytes = null; - - if (file == null) - { - throw new UserFriendlyException("No file found!"); - } - - if (file.Length <= 0) - { - throw new UserFriendlyException("File is empty!"); - } - - if (!file.ContentType.Contains("image")) - { - throw new UserFriendlyException("Not a valid image!"); - } - - using (var stream = file.OpenReadStream()) - { - fileBytes = stream.GetAllBytes(); - } - - if (!ImageFormatHelper.IsValidImage(fileBytes, BloggingWebConsts.FileUploading.AllowedImageUploadFormats)) - { - throw new UserFriendlyException("Not a valid image format!"); - } - - if (file.Length > BloggingWebConsts.FileUploading.MaxFileSize) - { - throw new UserFriendlyException($"File exceeds the maximum upload size ({BloggingWebConsts.FileUploading.MaxFileSizeAsMegabytes} MB)!"); - } + } } } \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Hosting/IFileService.cs b/modules/blogging/src/Volo.Blogging.Web/Hosting/IFileService.cs deleted file mode 100644 index 66516135bd..0000000000 --- a/modules/blogging/src/Volo.Blogging.Web/Hosting/IFileService.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Threading.Tasks; -using Microsoft.AspNetCore.Http; - -namespace Volo.Blogging.Hosting -{ - public interface IFileService - { - string FileUploadDirectory { get; } - - string GenerateUniqueFileName(string extension, string prefix = null, string postfix = null); - - Task SaveFormFileAndGetUrlAsync(IFormFile file); - - Task SaveFileAsync(byte[] fileBytes, string originalFileName); - } -} \ No newline at end of file diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj index 6000771e97..8feb2057d7 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj @@ -19,7 +19,6 @@ - From cfb5e6cace620ebd960405a84a8c04ecdd860d90 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 21 Feb 2019 11:24:57 +0300 Subject: [PATCH 092/112] Configure BlogFileOptions and refactor --- .../AbpWebSiteWebModule.cs | 43 ++++++++++++------- .../BloggingServiceHostModule.cs | 9 ++++ 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/abp_io/src/Volo.AbpWebSite.Web/AbpWebSiteWebModule.cs b/abp_io/src/Volo.AbpWebSite.Web/AbpWebSiteWebModule.cs index e6d888813c..e1c30e0a26 100644 --- a/abp_io/src/Volo.AbpWebSite.Web/AbpWebSiteWebModule.cs +++ b/abp_io/src/Volo.AbpWebSite.Web/AbpWebSiteWebModule.cs @@ -29,6 +29,7 @@ using Volo.Abp.UI; using Volo.Abp.VirtualFileSystem; using Volo.AbpWebSite.Bundling; using Volo.Blogging; +using Volo.Blogging.Files; using Volo.Docs; namespace Volo.AbpWebSite @@ -55,24 +56,34 @@ namespace Volo.AbpWebSite var hostingEnvironment = context.Services.GetHostingEnvironment(); var configuration = context.Services.GetConfiguration(); - ConfigureLanguages(context.Services); - ConfigureDatabaseServices(context.Services, configuration); - ConfigureVirtualFileSystem(context.Services, hostingEnvironment); - ConfigureBundles(context.Services); - ConfigureTheme(context.Services); + ConfigureLanguages(); + ConfigureDatabaseServices(configuration); + ConfigureVirtualFileSystem(hostingEnvironment); + ConfigureBundles(); + ConfigureTheme(); + ConfigureBlogging(hostingEnvironment); } - private static void ConfigureLanguages(IServiceCollection services) + private void ConfigureBlogging(IHostingEnvironment hostingEnvironment) { - services.Configure(options => + Configure(options => + { + options.FileUploadLocalFolder = Path.Combine(hostingEnvironment.WebRootPath, "files"); + options.FileUploadUrlRoot = "/files/"; + }); + } + + private void ConfigureLanguages() + { + Configure(options => { options.Languages.Add(new LanguageInfo("en-US", "en-US", "English")); }); } - private static void ConfigureBundles(IServiceCollection services) + private void ConfigureBundles() { - services.Configure(options => + Configure(options => { options .StyleBundles @@ -95,24 +106,24 @@ namespace Volo.AbpWebSite }); } - private static void ConfigureDatabaseServices(IServiceCollection services, IConfigurationRoot configuration) + private void ConfigureDatabaseServices(IConfigurationRoot configuration) { - services.Configure(options => + Configure(options => { options.ConnectionStrings.Default = configuration.GetConnectionString("Default"); }); - services.Configure(options => + Configure(options => { options.UseSqlServer(); }); } - private static void ConfigureVirtualFileSystem(IServiceCollection services, IHostingEnvironment hostingEnvironment) + private void ConfigureVirtualFileSystem(IHostingEnvironment hostingEnvironment) { if (hostingEnvironment.IsDevelopment()) { - services.Configure(options => + Configure(options => { options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}framework{0}src{0}Volo.Abp.UI", Path.DirectorySeparatorChar))); options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, string.Format("..{0}..{0}..{0}framework{0}src{0}Volo.Abp.AspNetCore.Mvc.UI", Path.DirectorySeparatorChar))); @@ -126,9 +137,9 @@ namespace Volo.AbpWebSite } } - private void ConfigureTheme(IServiceCollection services) + private void ConfigureTheme() { - services.Configure(options => + Configure(options => { options.Themes.Add(); options.DefaultThemeName = AbpIoTheme.Name; diff --git a/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingServiceHostModule.cs b/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingServiceHostModule.cs index cd4fec848f..da076cf6e0 100644 --- a/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingServiceHostModule.cs +++ b/samples/MicroserviceDemo/microservices/BloggingService.Host/BloggingServiceHostModule.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; @@ -23,6 +24,7 @@ using Volo.Abp.SettingManagement.EntityFrameworkCore; using Volo.Abp.Threading; using Volo.Blogging; using Volo.Blogging.Blogs; +using Volo.Blogging.Files; using Volo.Blogging.MongoDB; namespace BloggingService.Host @@ -45,6 +47,7 @@ namespace BloggingService.Host public override void ConfigureServices(ServiceConfigurationContext context) { var configuration = context.Services.GetConfiguration(); + var hostingEnvironment = context.Services.GetHostingEnvironment(); context.Services.AddAuthentication("Bearer") .AddIdentityServerAuthentication(options => @@ -79,6 +82,12 @@ namespace BloggingService.Host options.UseSqlServer(); }); + Configure(options => + { + options.FileUploadLocalFolder = Path.Combine(hostingEnvironment.WebRootPath, "files"); + options.FileUploadUrlRoot = "/files/"; + }); + context.Services.AddDistributedRedisCache(options => { options.Configuration = configuration["Redis:Configuration"]; From ce66211c87a0a2b0a08b790bd6ab3619821c18a3 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 21 Feb 2019 11:25:10 +0300 Subject: [PATCH 093/112] Added TODO --- .../applications/AuthServer.Host/AuthServerHostModule.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs index d147a49254..56d6c4900c 100644 --- a/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs +++ b/samples/MicroserviceDemo/applications/AuthServer.Host/AuthServerHostModule.cs @@ -70,6 +70,7 @@ namespace AuthServer.Host options.ApplicationName = "AuthServer"; }); + //TODO: ConnectionMultiplexer.Connect call has problem since redis may not be ready when this service has started! var redis = ConnectionMultiplexer.Connect(configuration["Redis:Configuration"]); context.Services.AddDataProtection() .PersistKeysToStackExchangeRedis(redis, "MsDemo-DataProtection-Keys"); From 601143394f746f4a0a82c7e9e964e8d54f1352e6 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 21 Feb 2019 13:26:12 +0300 Subject: [PATCH 094/112] Update PostAppService.cs --- .../Volo/Blogging/Posts/PostAppService.cs | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs index c5113ae630..6d7b23e8c6 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs +++ b/modules/blogging/src/Volo.Blogging.Application/Volo/Blogging/Posts/PostAppService.cs @@ -79,24 +79,6 @@ namespace Volo.Blogging.Posts return new ListResultDto(postDtos); } - private async Task> FilterPostsByTag(List allPostDtos, Tag tag) - { - var filteredPostDtos = new List(); - var posts = await _postRepository.GetListAsync(); - - foreach (var postDto in allPostDtos) - { - if (!postDto.Tags.Any(p=> p.Id == tag.Id)) - { - continue; - } - - filteredPostDtos.Add(postDto); - } - - return filteredPostDtos; - } - public async Task GetForReadingAsync(GetPostInput input) { var post = await _postRepository.GetPostByUrl(input.BlogId, input.Url); @@ -273,5 +255,23 @@ namespace Volo.Blogging.Posts } return new List(tags.Split(",").Select(t => t.Trim())); } + + private async Task> FilterPostsByTag(List allPostDtos, Tag tag) + { + var filteredPostDtos = new List(); + var posts = await _postRepository.GetListAsync(); + + foreach (var postDto in allPostDtos) + { + if (!postDto.Tags.Any(p => p.Id == tag.Id)) + { + continue; + } + + filteredPostDtos.Add(postDto); + } + + return filteredPostDtos; + } } } From bb3ef544ea7e7a8f6c032dfda2df2b5b9c1022a6 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 21 Feb 2019 13:26:57 +0300 Subject: [PATCH 095/112] Add consent screen to account module --- .../AbpAccountWebIdentityServerModule.cs | 9 +- .../Pages/Consent.cshtml | 113 +++++++++ .../Pages/Consent.cshtml.cs | 240 ++++++++++++++++++ ...Volo.Abp.Account.Web.IdentityServer.csproj | 4 +- 4 files changed, 364 insertions(+), 2 deletions(-) create mode 100644 modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml create mode 100644 modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml.cs diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/AbpAccountWebIdentityServerModule.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/AbpAccountWebIdentityServerModule.cs index 132d7a81db..6a68ebc91a 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/AbpAccountWebIdentityServerModule.cs +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/AbpAccountWebIdentityServerModule.cs @@ -1,5 +1,6 @@ using Volo.Abp.IdentityServer; using Volo.Abp.Modularity; +using Volo.Abp.VirtualFileSystem; namespace Volo.Abp.Account.Web { @@ -9,6 +10,12 @@ namespace Volo.Abp.Account.Web )] public class AbpAccountWebIdentityServerModule : AbpModule { - + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded("Volo.Abp.Account.Web"); + }); + } } } diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml new file mode 100644 index 0000000000..fa3efda621 --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml @@ -0,0 +1,113 @@ +@page +@using Volo.Abp.Account.Web.Pages +@using Volo.Abp.Account.Web.Pages.Account +@model ConsentModel + + +
    +
    +

    + @if (Model.ClientInfo.ClientLogoUrl != null) + { + + } + + @Model.ClientInfo.ClientName + is requesting your permission +

    +
    +
    +
    + +
    + + + +
    Uncheck the permissions you do not wish to grant.
    + + @if (Model.ConsentInput.IdentityScopes.Any()) + { +

    Personal Information

    + +
      + @for (var i = 0; i < Model.ConsentInput.IdentityScopes.Count; i++) + { +
    • +
      + +
      + @* TODO: Use attributes on the view model instead of using hidden here *@ + @if (Model.ConsentInput.IdentityScopes[i].Description != null) + { + + } +
    • + } +
    + } + + @if (Model.ConsentInput.ApiScopes.Any()) + { +

    Application Access

    + +
      + @for (var i = 0; i < Model.ConsentInput.ApiScopes.Count; i++) + { +
    • +
      + +
      + @* TODO: Use attributes on the view model instead of using hidden here *@ + @if (Model.ConsentInput.ApiScopes[i].Description != null) + { + + } +
    • + } +
    + } + + @if (Model.ClientInfo.AllowRememberConsent) + { +
    + +
    + } + +
    + + + @if (Model.ClientInfo.ClientUrl != null) + { + + @Model.ClientInfo.ClientName + + } +
    + +
    + +
    +
    +
    \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml.cs b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml.cs new file mode 100644 index 0000000000..3fb68feaca --- /dev/null +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Pages/Consent.cshtml.cs @@ -0,0 +1,240 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Linq; +using System.Threading.Tasks; +using IdentityServer4.Models; +using IdentityServer4.Services; +using IdentityServer4.Stores; +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.Abp.UI; + +namespace Volo.Abp.Account.Web.Pages +{ + //TODO: Move this into the Account folder!!! + public class ConsentModel : AbpPageModel + { + [HiddenInput] + [BindProperty(SupportsGet = true)] + public string ReturnUrl { get; set; } + + [HiddenInput] + [BindProperty(SupportsGet = true)] + public string ReturnUrlHash { get; set; } + + [BindProperty] + public ConsentModel.ConsentInputModel ConsentInput { get; set; } + + public ClientInfoModel ClientInfo { get; set; } + + private readonly IIdentityServerInteractionService _interaction; + private readonly IClientStore _clientStore; + private readonly IResourceStore _resourceStore; + + public ConsentModel( + IIdentityServerInteractionService interaction, + IClientStore clientStore, + IResourceStore resourceStore) + { + _interaction = interaction; + _clientStore = clientStore; + _resourceStore = resourceStore; + } + + public virtual async Task OnGet() + { + var request = await _interaction.GetAuthorizationContextAsync(ReturnUrl); + if (request == null) + { + throw new ApplicationException($"No consent request matching request: {ReturnUrl}"); + } + + var client = await _clientStore.FindEnabledClientByIdAsync(request.ClientId); + if (client == null) + { + throw new ApplicationException($"Invalid client id: {request.ClientId}"); + } + + var resources = await _resourceStore.FindEnabledResourcesByScopeAsync(request.ScopesRequested); + if (resources == null || (!resources.IdentityResources.Any() && !resources.ApiResources.Any())) + { + throw new ApplicationException($"No scopes matching: {request.ScopesRequested.Aggregate((x, y) => x + ", " + y)}"); + } + + ClientInfo = new ClientInfoModel(client); + ConsentInput = new ConsentInputModel + { + RememberConsent = true, + IdentityScopes = resources.IdentityResources.Select(x => CreateScopeViewModel(x, true)).ToList(), + ApiScopes = resources.ApiResources.SelectMany(x => x.Scopes).Select(x => CreateScopeViewModel(x, true)).ToList() + }; + + if (resources.OfflineAccess) + { + ConsentInput.ApiScopes.Add(GetOfflineAccessScope(true)); + } + } + + public virtual async Task OnPost(string userDecision) + { + var result = await ProcessConsentAsync(); + + if (result.IsRedirect) + { + return Redirect(result.RedirectUri); + } + + if (result.HasValidationError) + { + //ModelState.AddModelError("", result.ValidationError); + throw new ApplicationException("Error: " + result.ValidationError); + } + + throw new ApplicationException("Unknown Error!"); + } + + protected virtual async Task ProcessConsentAsync() + { + var result = new ConsentModel.ProcessConsentResult(); + + ConsentResponse grantedConsent; + + if (ConsentInput.UserDecision == "no") + { + grantedConsent = ConsentResponse.Denied; + } + else + { + if (ConsentInput.IdentityScopes.Any() || ConsentInput.ApiScopes.Any()) + { + grantedConsent = new ConsentResponse + { + RememberConsent = ConsentInput.RememberConsent, + ScopesConsented = ConsentInput.GetAllowedScopeNames() + }; + } + else + { + throw new UserFriendlyException("You must pick at least one permission"); //TODO: How to handle this + } + } + + if (grantedConsent != null) + { + var request = await _interaction.GetAuthorizationContextAsync(ReturnUrl); + if (request == null) + { + return result; + } + + await _interaction.GrantConsentAsync(request, grantedConsent); + + result.RedirectUri = ReturnUrl; //TODO: ReturnUrlHash? + } + + return result; + } + + protected virtual ConsentModel.ScopeViewModel CreateScopeViewModel(IdentityResource identity, bool check) + { + return new ConsentModel.ScopeViewModel + { + Name = identity.Name, + DisplayName = identity.DisplayName, + Description = identity.Description, + Emphasize = identity.Emphasize, + Required = identity.Required, + Checked = check || identity.Required + }; + } + + protected virtual ConsentModel.ScopeViewModel CreateScopeViewModel(Scope scope, bool check) + { + return new ConsentModel.ScopeViewModel + { + Name = scope.Name, + DisplayName = scope.DisplayName, + Description = scope.Description, + Emphasize = scope.Emphasize, + Required = scope.Required, + Checked = check || scope.Required + }; + } + + protected virtual ConsentModel.ScopeViewModel GetOfflineAccessScope(bool check) + { + return new ConsentModel.ScopeViewModel + { + Name = IdentityServer4.IdentityServerConstants.StandardScopes.OfflineAccess, + DisplayName = "Offline Access", //TODO: Localize + Description = "Access to your applications and resources, even when you are offline", + Emphasize = true, + Checked = check + }; + } + + public class ConsentInputModel + { + public List IdentityScopes { get; set; } + + public List ApiScopes { get; set; } + + [Required] + public string UserDecision { get; set; } + + public bool RememberConsent { get; set; } + + public List GetAllowedScopeNames() + { + return IdentityScopes.Union(ApiScopes).Where(s => s.Checked).Select(s => s.Name).ToList(); + } + } + + public class ScopeViewModel + { + [Required] + [HiddenInput] + public string Name { get; set; } + + public bool Checked { get; set; } + + public string DisplayName { get; set; } + + public string Description { get; set; } + + public bool Emphasize { get; set; } + + public bool Required { get; set; } + } + + public class ProcessConsentResult + { + public bool IsRedirect => RedirectUri != null; + public string RedirectUri { get; set; } + + public bool HasValidationError => ValidationError != null; + public string ValidationError { get; set; } + } + + public class ClientInfoModel + { + public string ClientName { get; set; } + + public string ClientUrl { get; set; } + + public string ClientLogoUrl { get; set; } + + public bool AllowRememberConsent { get; set; } + + public ClientInfoModel(Client client) + { + //TODO: Automap + ClientName = client.ClientId; + ClientUrl = client.ClientUri; + ClientLogoUrl = client.LogoUri; + AllowRememberConsent = client.AllowRememberConsent; + } + } + } +} \ No newline at end of file diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj index 6c81672b40..724ecc38ef 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj @@ -20,8 +20,10 @@
    + + + - From 5b3b91c94f5cef467ca8f28ce08e41585615a4a5 Mon Sep 17 00:00:00 2001 From: Halil ibrahim Kalkan Date: Thu, 21 Feb 2019 13:27:04 +0300 Subject: [PATCH 096/112] Update MsDemo_Identity.zip --- .../databases/MsDemo_Identity.zip | Bin 460985 -> 468306 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/samples/MicroserviceDemo/databases/MsDemo_Identity.zip b/samples/MicroserviceDemo/databases/MsDemo_Identity.zip index 6b3bab8b1d446ed88ffdc5e28483216deaedac7d..f31c9e4f3d4ed56a0beaa60872a9386712c0c91f 100644 GIT binary patch literal 468306 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

    w4X zGbQ&??(Dp*r8p#)o-^^a;vQy|EP$QoocOKc zzKYS87$OSL*VEvE*_(i&^lxT*@~YAX&6$(}8wn20xet;c9)+RxybroX?AozyU~3EB z!($~lxPL3(u>}&oWo;}|=KAq^%@z}d=Cz2|;TXgv00?OJad)?9fw@K&g!aXJ7P+a| zt?Bz@_2#_k-&O0?34DUc{nkz3OAH>3u?-RA-mx5!JyH0-Zln7WJfneEKF58z!HA0i zST~TnM}3)rB_VMz29~tj6#Gn}cH0C8Q%DX9ad*XnUYnDdBexolfX?=&eu7fI=O+kW zuX|r#D!q47>O1I*y?gz5E~ftDE}9zsERCQ0OMad0xlB)AYV=byn4~W34n#h?UXour zHTEXD@Eo=yxEv;r1=2Mf`YX7q$|>hja>vX&y+S64c0$VD|8BcH*1boH`Rm-nG&t{j z24`{yQs;Ua%XsYLER2!In(jmJYUq1mP{pRp)pXd4fi!;-QK{{_et*uke8M!^fdr3l zWH(*lrJ7JMe*BF0u6@m8+pb`2%ZZIsLpJ=%Lvl6e3`b1yy-)1ZW(Pv>+go}4c4Tv) zP3pLxj=+jI_s*3`mVo1<(=@b~h0x_0mL)xtJZe-6<|VKgpts@Pm^h&`r(ZZ`nDG{X zu)elo#>N%hMbG*?(8Dclk}tr8whL&R3m!NUF7i2}DLTllMotRZi;sBQVXnF}|9xUe zu3(A-_hcZZtb2MCg6=M@d2<)leMkEtVj6Z^$>J<~{k8$C+RgZe$yyswVmx`J_$*DP z=8xst1M!;bi^Yx%6U>L1`A+Tu{#yn~5&O2I;YS1w6oYgTXU`?hs-x-|t$pSh0$%fv zh`V^id+4(tL%Ia5^36#2TQebM22>&4iB2u#DSF}Q0&`%BMn|n`i4{V2_z`e4FIu05 z-`OL`)pB6oKsG-^sQw9W>^KXx)x^bIZ-fe)AMnv;RPEZPr6M=~rA)IxTug9xPdASr z$mT1y{PasFxi-3YSTfSC#2pDts0|(FcPbP4D;jGqbummzJ$9?Da=;ys64?3j zkMgxfz!?q?YBJ6=MqE~CPC?}F?}rk#a&of_fyuYv773l1FS#(?Fz+bfFC~{Dh{}V{ zQ|ZQfx2hNXsf00r^Z)V=|4i?Qv65G{8`?`B!UcPcCcNxy*txa%rSY;i{3{c zToU;7g&3h5#~1sV=Z4x)l#es0qjw^R+J}KjVQQ{3{99A2c@_7^U1vMZvA`MfAWVAW zO}On*>KI{XdxLQ{dfM^9l%B5))!iA)NP zJ8K%HXB*3l#Y}5*QlK!4jD`v(A(9L^(m%Jm*-b0wi1-#FhOf^OS zj2Wd>^NVcM3gs<50!}WGZs%f5NpHU;-mTTX9il&)S$kbhiajt!S>!bj7CHR!)+E}WUBiqf+=(Z? zSD?%H7zR|kYln;dk2_jUcgljYPf4$1LWvoL{o(1)VSVw&=+?Rl&#bM%7^}}=|0|G4 zfJwj;$p2Gv(h>B6zwJ==f^R2o`i9R#mceL$5gW5hs&x6ephhFd&L))|G!nRyhl`Yx zXXzywf+`hU*^bCx&jTIKzzOA4BLU~iK=5bv&yW|lX&oRMe>Z+eNo%vxHb#>~p9WHe zo}hjeZct>QsgE?uoeOWeu+tf+i-h!K=ZgtBbnaw39 zKNQVz)YwM+LY##2@Je9?y}&Ae(hP|%t^c}B*4UnAw2w3z(8eMAm#zVjOB>@jx?h^* zf(|B1b-ejKoWb4nmK#hGTpkwqBFgB3|3Br843I{vIHy~Li(!?R-F^ipNiq%-fHPMz zXmcc$q49%s` z(#9=f-!g2Lwv=Rr7R4nyxGokovz&da>p3j_5g$bC zLqjs6XMHK&kYz=5@q%~9eL|nYBr?V-v54W)O5dY>b?X`R->;5rS&V(eFPPc_?gu%^ zB}pR9K9|s?aGid{#&AQ*V3EfUq6|$AMjX_)2EqMZ_BI|sm#cu3ux(Ty4%6%_wTK_W z8pIkDA<_E18n%j6L&cgSf@L!5_QH!$Hzy1|LlSMGOj0LiFC}ohsq~ZIqZCGRkd3@q zRRbN1yje}dj*~n#wo&qHRe}Y~Fp?TSwwnA1pfp2KUS<+dYA(V(w*QOZy}{TpX-Gzk zKS)c_ZFylUJJ}+t7Wl+X7P-boDZ(;C63ODr5@b4NZ2yrZ;vr{zrOX?Bl`=TLFFv=G zU4CURoH@GRYCT14F$mW-DQ_vPm1U|99KTX1QwP#YW~Dd}my=9Iu+`(7TS#V^rJzi{ zddUi;7Ug(0lFx&W=H63YVkQ=kMF5s=%vg+dh)k9LBR9VN=3psjxpNw0V{y8QWiggw zlq3g>i{Lz-eWKU%12T_z_}OVvzBjK~L|dtn0=ihaLL^wmhs=JK6?E815~xklDuLgr z4>NK&1u#Wm3Nu?Y$5U%YJzmE|jXS=9gmK(V9}!9GHx)|98+Du<=00XcyN_tB^wJiJ zl&KROl9p{b_4I&hmQcRN1LZU1`?RZJ}F^fnY`cq@*h!exrYb0EopQ594zt+^`7wHNb=|w zaEG)oyPXCnWo_d5^pi&4JC|G_gflRX?t^DPgPSBS>;(0#?5rjK3RFIONyww|4~h7R zkhC^wun+jb-6c`=`|o%8-=0`)IN0DGm>F6IP)72CT5w_`C(>vdr-Wj=;8yxQ;*UR1 zG7u}BS-#EL2qrsO51VZ)YwRT6pG?I!AZi;e_su^n)bk&kZEB`u*Y-)dMc16#7T$uq zKk7G@SU47As4YA2`?0ogZ2@DGS=##*AWD!RwGZ{Mr$1T~yYLG_* zl89o$Vr06|(X3+bzR~+kc-ML%y!U%C{v6mOY%_6IaTeg=dy;)DzkpcdXh5$QG9{YG z%3Pyli?^Ee{nO3o=j(m{uiuLL!~1M~F{sQ<*`>%|K`@yQALt%l?0x5L;58T``kjrp!PzX%fbK)>?eg#DL~`z>5W{b~ zdvSY1f5^U}r;ez3y4JlmrT%XD4QOY+`JBv{N4lPX7lVDO)E-@3q;lezv30_!&YHsB zUEpCw%n#bhJ39uYT0Xykq?C`IKpG{eKTg_rWy>SIb3g&yr^g^0%l`(yi4OF>3xRg- zu0UK~9^3b>5hD`U`XKXZh$*S$mRsl{ec#}IDd1p@c@f@;`+Zg;E2@NHM2dkzUSu8a zusie6rmN9ANL4g$$q-v~wA3AMK|?j3W(jJ%xB zMM(e-jM_eoPuf%Pf#*%pu1_yhpb(VQ?9ZuP`x|($BB>)J4#MDTH~Krnv&jwduB1!a zF)S0pHclu0v-Hi&?nW>87tI$CJfrpiKXNN^CxoZPjnRLUOCiLtU?mbbrreo4SQo$5P?1j52zo4~XTx%f-uZDq4^iH0kOtzpk`k-9r&bHo6xz4r( zu9<%D$_S|Cb#L3*md)jH1BC1JQrPC_a>xniniyMY)fM{y2rU`(90M`fl;PNV=mhvMj5gG^F5P!qZjEGihEA_ zsZxDS0LE?hyDdVLbg40UcQiGEo-a&04kxps;4z*LRof}C0fL%G9j>dBfzaILc7`Rx zis*w|orZo{G}nGgW#MJcUN!Fd)on^8DF13sZaHA!kDI9|>$BF>;S{Gs>@ASnLE#R_ z?l64^$A5GbHdht8tWOL2*WghQOWp{e%Z}ST|=m&EBOq%kh zlmiteS8^FuOYD0Cea(j&>_ZE(l`6UDB*gtNXeJehUOD3GC8ydeRoLPXZGd$~;9LEB znxnw+mHZnlR*ZC`3rLkod7mCHfi(@3%P;siX>AxWEDRLB$Z(|3^P}x{zY|JiFCe!O zHj(tdb&`3qa%)VBv@X(UcUN`nv?Lp%|Lg(wx?9X*ook*5)qxO1Ks_-tu4a4C1C+wOb?mW^N<)HS zeMur|)S?TdzvQZXm-(dvaE_-y^&;a>`645Z!~kc zs}d0{dkLg+X=wz8cPrYTh;3^nC}qoNF0xRfYB<_|jtwN>8{9I;1iCryzwkIgmJ3k} z_<>cj7$W;NunCbA1zp;vq-D;^IUas?+)RC3FYoQdyeDl zO$cOWmpPGeWJ{%JWz%CK`}pVu+{)5?xM#x@ueF080*bsPjTTl_^Y4^k|9ZFE`{_fc zLrc;37?=AS;0;?PnC^f|<+KVE+RpSIfdFU!l6OOY^MzsgX!fH_K?mQzxBbH(_*|A* z@gVXi?W>ecxHdxPiR0m8|Ecb*E*2kK_l*l-_vVYA>Da6*X0hY8$)^*Irrke&j}%W~9FAB<^5xSGRpy#jEo&QF?m&^pN@)cZH?L z!RxX3yW4EXDA)Mfw#IbEDDk7+t-`H3@Heo>f=~Eb2)X_00Q3Mt>9y(JW`FhozfiMP`yIYK~ z*+>wxyE@b&m~Kr1Peiwe@#IW?;2CgF<>)+<$f5;{&$q%!6^bV#dD59kdjH%rSqQQxa;1Bxx-P&q z$)72}@z-spvGKe58d5V(kKSX5-P&~>TrB*jrsm6DT!h)-`}k`g(-lJ4j>*IAp2qRD zljhryO{0Onm+!OKIkM27+yL=M6N7&$O~h||$5H|j{&ibqY9mZE6UYIYZ+*mY8wPqp z&jaTgswv3+W-q%MPfYK7A3Dm!#Gf|@T)j2cpfJ1xsY2&~XQ{TH>xS~P9aVCWmi2R{ zP2593~bJifi~slCip+Y>(z zymX5=y1TOt^aP&=CRU2J|3l#v-XY+5>EXN_&)~BB16wf_`Sa%0t>P(M z$QKkj{;@}V^ci)J;Q#QvT=*X*d@K}Z8SEin3xV_KFgN<%#2E*uy)odl`v(fKgKqAR ze?C@2HG7f48}Or9l*rJAVtvCO*EbVe^|@Y~{S1Y)qXn47)jn6C;f#Y z`c2}ZD-=aEV&bS{qQRsCLhc(}kAa*2i_ggfsD(cx|7_7L`J1X=f<{#xiW z(C1oc<)IO|wZyMiU;}wG;1lAitq1a|OGs;G!GAaB5$dU#xV7g4-*Xvxv%`P)^TFX{ z40$t?xK$`%?0X@f|@QW5qcSP#!it z2-OEO&W!*)mR1gyo%#ud`323J0 zRfp-l9yefZ&DYHuKWO4Nxtvd^ZIKsy;y3S)b>ys+pL{nW*Wkvr1hBvcj0Z7oK=c^A zS93|dr9PY+?1u8}+X&`<>Mbh;)FVDI^%NWULe2Oz5qtLK?raG4midK6e+UTP)^&P- zz`Tu9Q`)Zie1XexirjheeRr5<=}9O2=TNiq9`k&WWAd&78q&MCzO~vhzB;J%b{UVx~O4L+iXawF`eu@L@=?`&}7S@GnUdY6e_!BoMLvKu3el_ zW;&j(T%2ZmPOO??`djBt45neNPWz?GabVa-aSDv63Y*+v3@MD(07(|Og* zOo3a2x%yO;mTqgOqFdj1aMMf0ed^R7E%tORE^Eo9QXI2FQw&7&#fJ?2C3kGtv5c;V{-1>|t+Q^lqhng{f~fv^xLlN3ea{&xW=zjOzL zjVx)+ooTAUJWO_h*31Cv$G___)0E?UyYE%nunEs9D)TCa^_3E zKB+o7|6I9KRLspiY=n0Z6=i#paEaF`Zl5EC5M69*c8Jc8xzhT;LfASeugir3w_boU z?9j_Gge|0Y<8@og&5jWOX<)@6<4&QXhk>uYw$vkwyq_y2+l?hu0X|dJOOJ&wAtGD? zI?wI{TAbVs-r+|B)CFGq{O)ns7W?8`5NeJ$~rc7OC9hEZIf_D79T!C>1sfB}R_R>;fIAZj8LZj_34 z5)aL>L>6O+x#$*La37~9@t!V^W>Vu6Uw9U8DLm_2WBeVCGS!`S&hfH;m|Cf~N;@FG zP|UYkI8ET4aEuM%IS&%`7#`#3S;VhBZ`xQrua0a>etdx}=djC&=|Sy){utyl&gNd! zx)%k2LQx)Kj=JzETc3?$U85%9gnjFhr>3U#HLD(F*9~sEtx?0 zp;$5VM0?a(Y6)u-lD(${7M+yu@A+BhIFZ`r8bj?qjhZ?Vlg7)x^f&z)A?0UzJ+JeS zgQzag@3}!-lSuY^v}$DhS#rE}xEblw%z6n;^^{1cU>RI1+T^k1kl&vZS!!Rkn zUzxrC%-4O#&kWuE)Kr{?vV~We(29 z!3B;_7j)B;vbR(ux3!H(%c5>u45|-v$EPph6@MG&mKx*C4DoIaU(XIBCU2L^m2##x zf@`guoi*cXA7fM5+R7d{+;TXF*i+l~p1k9n3e^@2ruv6uT&S=W+V#{ut2tO{2qMtq|)B!eNQ9kLTn}>**J-i z=GCEo@8|F5zM(Agr25Knm^Z!7s0Mo_WN`<*l9{|;JK2hP#XXqp%2KuNL=*)NIF|8m zUyNIVF|lZF%{TO5EeCZzGf?UKYtzn4P=jQdM0^Mvx(5GD+dPn;G`+$zehzARBL|31 zs+|DJ3lrU7Dsif2Z*Eu=otgAKfhWU1cy^7^r`sQI18s;8IyF9oryk!bg$wNcV3Qsh zUZ=yf;V}<>X`ZdB3>2ct%yxjJZtG2q{SP{TN4mbj4fcW%1uETEM#q(D8$tNxPl3d= zo?gVF1LslSEEl&BgiTDl`?x4$w2nz4b?iK5QX1YYBr0WmbI{aHu19933J@19pe`Ki z3U?1?s&Vx{!ZdpJmaco8AKqf>y3(URQ2f|lo2}BJfSJP~KnY;NoV9D@N%Ndfj8mcn zHfJoe-~tniJJ)v;z=4xi#C@8P1K_=~XawtC-Abyov*uSK(~1x~pG=XpXJ#yb5q)bxeB;x))$ZM$84j zqh!`4lgG@6NsQX}3F<$Kes89H*|Dz!-rz2$$5#Y={`lB8o$uONPL}~alo6E z8Y-6Pi^NJ4*MXtX7DcnejJKpcE&PB&18gy0M5t7KUQI{Pf~W0%Ac`CKhxA zIf@;5)LCC-b23&D6q?-%1w6_c$$Ix%#3)dfER($wjwAqFs`a z`@{t%bY(V{qRbX-6-nF%Vi8gS)=5a_k|@@hN#+_UwCVEV%qiyPAtGawru8{V=9J{4 zgV71M2*~;(V-v6tzf$n3qXDqvPrk}DiV7E?X9~hAxc*ruf~6>zE=Yz%%ijDxx+`8H z9j%Te?ONVwnI2dO`YzLGEgU^<%L(9~)0*N2XJ~G;Yzh=VmM!1_=b(;+fkM-x@v*B4 z6vyTO^V8L-VI>${j|`yAM>1#j$8sxBJXNmX0TNA**2gX+P+a4Gkeb%Tzf!cTquF7^ zpTL|J%0r@Ut%CWj)P%d%7ikaP*9e8SMd#P(C0wwPfdx(7-gR2IEACN>e*h7ArQD(k zP6b3ZgDV+Fu}(!Y*ClTOOWpocyU|X#;0?@QYHvmDMnB<#aEdvkU!??Agd=2=M>-Ln z_;Uk)ETv8&`?U`|Yq_t;V!LQoLuR1Ap`wc;OBY;z8ZA_7d6tA$h34v?jE1Ufo+N(S zym?&3J*~XPp6S$GFF@DmIHp3QBM3J1&LLDb_F8nUJYB74Uii6xng9*FK4*OFPu8la zm+m)xN2XiGeGOc9R=a#W+TULKokGsaoz=PJHHDzktujO_fpz?Z1+sHVe`Alb zchCv!A5ehS@+2q#74*Beu1E65jmz})(++ku>(1j2WIz&&9eqH#?`d@qQTcTx@?dJ; zlkY;?26b4L;s4K6Tk$h@e-spVy_WbK`{4?nW^eM}8(tav&gkz3K%ovV|3--=?%w`0 zMH-^RqJz|BCZ5u0mCScy$Vq$0EnFjY27vA=D@Jmz7q)>YYjRXUc!>x!x6~UIqH&)7 zNuK%rpX(4A>&6df*Q^*w%9pTsE_u@?>>p7^{$&j~>n!8u@oxxtUF8CHcz*@7ib4sD zs~>@Xmjf%7gJctd&Ug-oPGsru`Eym;;g#%+%`+wM-w2V<5tM6Awsng8B^1COu$!@W z!_HuLW4w`4Eq@ezP>{nj$5qk`qcm~Nnd!i8aXiug zU=jiZx8Ux3QAnZO!!Sp7()J_Rvi59Wv~&3#u3orJxlIS|iaI-@%RRu)K&*a()XBn;_C*?Uz}* zMM@k)~7VC?v zg5g@5@Qxf~_Zj>&?(y3LrT*3>(tV9LGttd@hSRZ}-uLR@^-*1=CMJ#_Wn@TVaA-N1z7{wIk3mej*TE+kl@=N7~w% zFpQ7bjEo;Ie=|cEL#8~0qT>rDhpMBgh7qY(IV!@`UMNJmiIsz57#9@hWg)goXh%nQ zOC(TmZ-=r$=5_MxXc!@ctiOUk_=sS*%$PS2bP5vsdF1jemN*)VfW|RG`E>J<7;Ejl zJ%itlB3w%*cvjv>nuk_LI7qK>V(K@p9P~@Hj%ECVMOI8+`PrwHRRFBCd*9ekN(j9R zJ6YJnqm^Z(F7;Q=>YrWxYs~BkyTztjz4R__MjzU3ADyGj(S+GC-OSs~Jj*dI^Abws zz$&>IPGk4)w~N9gOz$~D6{EZe{z+M|ws+ui!%eG89;I^Tn9tpSSzZJiy}j0G(mRK8ULEDLH0d-otuEv^W+s%PK&7P6-XL!B%5l{Th zsH&kBBuIz|*Kw$T#?or;*wh$B?}Q?T^=j>UlbD8+sc^y#m)w?z+17+>s`OwwJC4^f zEX33nl};BkgH;2Z)8|&Al0ina=IS+JSl*)yCAk{Z5J~b$1~-#oT{{-dl%xYz{(47! zVW#^8BhuD*spX$*DlC>valXmmcC|A2q=iD%`g-`5jQw_aB2&7+LXfj>7xEA0AJrY1 zHGtne;Wy!WZ#ya~zwO7a7@?vMsJAVpiub&bz55D2L2l0uI8BJa)8HsEDdi427!9ux zW!%C7DyMoQ8>4+7bJ-2Rc)$X>riOlkI}$V*KlPq;>a~EQ5od|}BEi;i8%U?W`ET#* za=`Nup{tw6TzY?G;3_58&?DV^6=k5R!Ia*;xYq7(fZE|^>J*V*n(cg4iFTwpalepY z*Uc=OaeOw}Fr%nLv{tSuXSnC6GQflkHOJSqoFRuq)e@D`EIoQJ{mb7wXz7Qed+Eg-C>HigLg@!euL*p#>}(f) z#?!rLht_YH3y6of(^pfvMY(bg8M^F^4yOkzlFbIu9x)kCtxmD*_O|xSW(58CkI=`L zNA1V7_GXbhi)->akGg?6o4W0{H~v0ssMYEcMglK&qm*LwF(F~}4s}QM{Nl@T`Q9BY zVeScLwNQ}g zV8&)|h2|+tU;SsI?Q@1*M_BN>L;IhQs^h0ttOXDK`6+`@r-Ap-%Q2Q1+?Prm16`A{ zPbQ6xbsl)@te4#H))Tm!!Un5)P&bM5C~u%o&(UeBPV@cc?b(LMU3l99$Df`*Z17c{ z(-Rl=zS^f$o=W>(NJQ3z>CnzQ*P8*hb!nYxBZNnL{`M=L1wL!7+2i+6y9YwucGZ=mA07fQx|KWuRdHAtjS-zz>J^IK8NNa1Pi%9#Bf~vU>$$frwP7| z@vo`q_U-HUsOzoM>GfUdud27LzrdR_MhhVdHkEcxUCaJvcmF5kz@OVjO21yr+mxSr z4y=0bIlTKaqpqJju08u8f#$1(WjXcq1KslAgzN*h`llQs()Y&x)cz8lGRafN3k0?| zQSb8*e2X=~KbkW=EEbVywgb(=A~})Y(Fl2U!emZ0YXSsLSt<{j+=-$&$uWtk@U9$7CFS#ocl~^ z_UWFpPAj}HCqKWm)U5Y=*x+yfUY@8?$ zJ_I~@!!@<;ep}uCprv->pj)PqAi(aBt-iP+ux5glw#(mIvCSjDZ97^v*14SnBH+@K zUKcpQ;t0}t$-#psay#6-`4ykVhU57`t{i8AVp1_D8L_Br>L8ydCVc8$*(C>;4C*&H z2hH+*5HPvz30-RxbS7u-8wOIYYKOCbxYi$XK}~%&CjECfB~I+sh@H0f+Aul!N4Qh} z2|cZ3No@bKCEt3~AEJZYA9@ypKZMqw*8d6%j(?Gkhg#wk-`x{^kXpZAQ_CaF$TrsN zJ?F|qkQ4g!`|1NVlxB^wb2=1zUIwA~c2sskY-NKV5?V#Klyegz*kie?+{k zp|}ku+_8(-(J!^gn>|R!YE^8U$9d{RDWwy%w-^#!Bfw0n53Yd zhvTsnzL4sf(SHyf?kEkT@!h5>8txgXXe7!vngBlqj*XX72KFnofDw~MxL)BWqW%k? z(=#a}HY=|)T1}H6Vm^-%Px^Q6@8>@w`sU777A*H8`KFTUv^xyEqhIUxVYy}WY#|p( zXi?s06qS%-b2Y9^c=!7_>E!Iw`{H?HASA31%OZDey90O!)plmx~ZU(=D98aa=Kpp(Ar`u9+cl=fU6BteUXd>Whg zTrSpJNsmPtWecG$5^JHPZ%1q+Xhj%7fBhcrv^Eo7tZEM8 zG?Ed1gvLRi;JK|T=jQfez21Cly^toPomQSDPjh&5t?W69LAo5L_A7HWBdEAhm3xfb`Ogx}~H2SjSY}R2TpI7v>ocFDOYyD7}M4gaI z^Rf;vZJF=gpVoS~wAT7>!WH_(bu~7p#VujAh7_dUA><`m0}}P zI!B!^;p!p~277seovsZHzhsk8*UTSWomxoWMc9+-Gh~GOk$O=&OYiIqI+{KWS|wt=g~vl#2*5a|Kh8W>J$X5{JF&Vo)oonAvLJSe>EK$MyO-QL?#Cx; zB~G<&DWF}`iguWD)O-eoGNAEt>m~AiVdt)K+qw@0Z~fgY>Ahen9ta~MyE51oT@u~M zJv_UHVG9b+VMF@tBgZ0yiKCu6>HxK;_2c#E)q6Tn?d-YH6b2Rpu8t`Zhh{;3S}%K5 zAup{JDY;cW6bU!5Fe;s z2fu=E1Kkl{{9rP6-$pFut&C1kE){|-Iech3>3qCu^V`-mkk)r^#HGS)wnU<8Yzx56XJObSw5lV~B%R$xe1VzU zcWFTv()MiG7~0r4yPzwdihR6Xak8LG8+|C{v^>&7hsV%6WGek7RM4R0Ckbz-kV4~6 zxKr7`DcDU|DahPZgHwAMj;f<38MYPzEgaZB5BU@S_8W&)v+Ti zMx?2_-2$xmTk{tt@MA`#Vey05b54M8$ZD*5Gjuz1JLG<4>;_NlR4>Ijs?r%S7(C5SX>?`_2v_j}lS_H8+d9HA68_?t(Ru z=z9!;$uRWs1Ze6^EO&oWU0a<`ZuE5p1unz42Gwjx2ZX^rbiM{uz>UCn2i%Y4J>drT zdB(5(8*YrX4FgudzUe5V?>&u`!T#~%$J-y{qSHZl7d(7^)JCu_lqU?plz$Fy^J}Jk z&J|?;RtZ})XI}CZWg8JdB6@y#Z$}kP?rHSg`5$A&|NQdR;b=3r|B8EWz?}QK@m~`D zVy?Qlf0=+6#?!{`#j1`adE2Onr+z79ACX6|jdDH={qn4kjc|Q==3w33?c4|E%F6~N z_srqcf3;(?C2#xsx?%PJUvG0r0@;(_;w0U+={@4gR81;9GxPlC3$doRGP_nk6fytmd zq&-nj3%}+2#ZB6aO|NWFRjb$8+a>Gd0b#I%sLa%RSeG=GJfC0ZNI#5YCpN3EM?aLxhCS%Ag-s`fpvy=ks{pZ1fyZNmSJ zJLh?j5I-SuU;CpY>}86_B(^;qzX1c_>WjceOwJoz6=%uqsqG_r+`^|bcj0}I+8~~^ zh#2>}dAubF#erl3<`K`kZ;;vmJ))bBsDQTDU;8gOb&#k1s|}X%%D#(2wAByL5esNeq@K^a;q{M)?=M!FuQR%f}_UH(s6A zf{3Tl(?;LJdo~h-4ccv+OAU+O;Mah8v)s5lVYtPR#{ohzAL@Z8y=T-K-*e|DPtP9*u$FmnOM7(3%Q7PG?+f`VuQ4f( z*DPwqRjq#M91%lRLVrhj*d9lFT}fGV$JGR+A@yQJ=(RhR*?3pq( zYl3OJm<#oG(ISf<7DX3rX+Mk9;01^`AyT)9o}$Psk{)SmD1V_~aYu*1>>VpSl(MGd!{X@A!OUWX>n zH>N$zP4lVtDT;6kTIJ)@XA@m@O~X;Lkdv-v32EG40-dDax(ZscHSDS^s?jAYCaC4J ztZOLXB|ez4${IH}*y^(DgzptJTk>Q?6cx~9JMUY`tAp@i%C2u3al=xvNi9{0y^A!5!iY&N3cm$(=9^e7_zCXX- zL|`W0PP-kO&rBlHDhW|j%gbO~kLf6^rJDIX!_8FFvpX!MVDYIo`KC)b;@{}v#;{w- z&oNXVGj7&K`#+;@`9yOh8U~i}$59!+tfE_H4}~k2Z6pTEg9*!-vu9;T+S1y!nX)S0 z;j^EF$7#K*AB$V#;me1yT=DkGTiqBd8U@%{<;7w(%6ComZ^l=#KC2h$gg056-*QyO zq4MET;J5>2%^GNRleA4qYZ0vp9s0J~@V11@%6n#eq14p>29RRQ_Pyq@MC++pkxJIjgMYGNIRAOm@a59kMvx-YHP~;4gM=~0VCH97 z*6sp>W`;O==N0=eH`5<#7H#T3z0gn%3f&3RweQTS5nA-xb-oPLAEiq5z8jfmv2~fJ zI~LD!H)1(Oi5M?EYVAqhYR(G;4(~blGz@-1WA~(WOi?~i*z$j*y zc=MiFG|AKbfrH$!AJv+%VDIX_be^@c97R!!9={C|WYPTYta5ajwLA)Cyw#eGuS%{p z2}{50`8{MG=Zs1$=jN^}jOHPSd61WY)!FukBNfV;jRXAGThF<$vYY2^6Egyx+Li#r zp1_(9Yn-+6E>MOJ3&>QZQ2yGN8?)##3(fSx=9}d8Dn!&&Hh{?KbplwBT;0A4`8Mr6 zvAc6bD`AF{9+<*NV;?*ER7*t?9{0kt2$LmJH%nQ18KW+eX_taBGJ_eKPm0_rWTx{FYk}#s{*p@=3BbvIz>)1(2xxJ zie1OWqrcJ(4CGDIhLv8&?`*S=(ee-XkA3yoyT+>^fvqybwQdi~53uN>0IRp6W4+!$ zq`~j14q#}_U#ic;&4hjK6IrIH71rvYz;^_W>MK)VIs5FIXV?gDYZ$K0CpS55^v3EpuR__+JT&X^ zMDo@3kOK9Xp4$f26CbsE*^efW*E3J$Smvq#(PGjT%JbP@{8PgxK}>9fTOz8p%>qY> zs=NN5|0l_5(a#Y^4XnkAd|B#A<*%WG#0g?MwSzSYUI~N=r!uNLPv=aV z#N7j7Vcno^rjY4PHu0+9Q{-Lou+Y5_^WYY-h>5$d#vlxMHWV^a5@h@Dxp@vquh?G@ z$dL4~`Gme=E>L}C!Nl;f>oAANk1FWRRZDcsk>q$bZcc`pB#qFY{qT!#YdkD0!pW53 zNX|&gN~z7rRU9i=uNxp139p)}20SO+r(bwEff#0+zfQ+VL)mJ{nxEZ*~m&e_1xm8|kQq zNkeg=0H~`Cn~g4$35z*=1%?mg(f%U)fcSFkvSKH5=V{1inK?}}T{;uIr?Y3gr}Q?v zSnW6Kuj!9xpH4IW7^8GOa1FhFxvsdedZc-gKT$qWv&(5nNttM;Ws7eeymY)qjWc7 zJusfMPepE+|9|bkhrn3y@|zl;pJDk#YcFIL*|SfuyqmR9(0R=B)^&YhM=xeA=sSV= zkpYXs|Hz#Svp^V(xV~YMjLm_x9Wek$Y3+ee8kJu*N!}g zHo7W_XW+y|SGC$*rI7UW0bwtxH(@cSsi6z#1{=A4!;Q2?=zz z>rw0CRq*y~QZ|Xlz{E{NSv7hNR4|}E7;7q6`|DV$fu_gQtCnXmvYk`zmL}+0sJFE4 zE~V7D*5gUbja>&W>!tk{nMcvS?;uw#ws4$ouAIAtdN`I#@tGBP#{q#I_?!P1_ZL66Ba zRwdX?{H~>K>*3i*67J!XZ{ef@glWQG@K4T{v3E)NE#-8?6{v%|jvg7ytIEr6!LPBA zuH$~B1?n8C%Gn+O{j2cbdy@w7KM-Mgwy|Rc`zu!m25CRI#hEM)(9}6y?NX-4Q1g;#pH--L&M{xjeut&zz+^n?@a#nzvNCn6<<$P>PV2&F1~x5?VjzsI-76e@&3*oQ zxc@r_s0+wE{(eg*uI3f&Kpy9!nAz|5Nq|lP17~^>^iObl{sYG_;rXPd2QM@N!k*{t zZpgaWH`^j4lm!uD1psD^S^=Z}QxTXDJX zqrxAJNev~5;Pt;oT7INAe+NNxK@htkT8Jkk$UlkO!ou+UV0CgA7s(C>1Q!?!q(_A* z4^#KJC!Rm-Pt@hotx7G*%~lf`dmZfm9;>ab5GNFEO`dnt*^l8;WJVb8-1~h4OfEsR z{TVZHyDAm^7&A%2LMFn>V!U)KY3r| zuaR!gdT;9yWaSx<(WX&gaChllDX3DAc2s7%_wqF_$a7twakn;ywYJ3DGT=4x&}eMMMfuL}ASdknwiPyK2lgpKnC z)ZAo0XCnSNM0OGW+E_n$r=AtBxhpPHjkr3Rd?q*QQOsVihFGqa&+?q6iH)1)2RTEKYKmGMtXzzJTh*& zR|Hjh)K+J#X!ie=ZI?$?CY3gUYtRts|1qe3PG-h>dD7OuK$(v)*Xvdv z;^_8u450kJDh6sRSP$@=w_GsO*GpZN!4Na|QbM;%{3BA?Q^EJPY5tUGt7SPnV{qTc zxwyqD8fwl7NK#&#@vXzMiOj6k{Zjcyr7_*Vq6XndG@3E;V83&Jt~5hW3#~nMqjL7- zyy3r+3MW#POM%7E_uPGPrJ#^4f#qQr1kGnghHib`75fcNM16u|a;(?eCN~`=K4s`6 z)?J1h>E;#%&li3z%tlH<$&ZArFk;Qij^FF5A{y-q4~=Gx$tRi(3X2wnn#rf?EqT}5 ziDh!3a(KUe^n4^Q0DUO<{(5zew>_g~>Din%g|BiVzq4d3v)cYxR{aTy6d4C3kPgn7 zk||&mfeuquq>J|$H7lO$xAG$km^8}n*_{lG>1xEbn4ajod+i%V>sV`U>+ovVOj2vW zX}fB-TAA6Bv&=^G(|35lSA)ez>E*(I?Kns5nb?Ir2cWPkIF{rLF!X3oUgQXbtBxgofTN(9nLIR}qUg%y+To z8HlS^ifp+8qD=(~G0)S!7mmZao}xqNv4Rw_RD0f@lG>V-{Z^V-{Nu{#l4WyOuq2j? z2b}T4&O|s!+T{C|G^|}5{4dFM{+|bh*1954bn~y8jn+b7DEz^%eaVu3WwIIfuEU1P?1>t4AWkH|Z9Bm9tFsy6h7J1j1{Om0FSe zoC7)HL|Y0UFWtBMHALqxefEeP|74eKE8@875$^Nziy! zIx4-G3ewEiX%2|{X{&6LfSAJJ0W2tMXt-f52O_J8d(>n-VX^=R=nE= z;&5ZxOk~Lo3&T5y{uz?~8Y9*RAc6{455$J8Er^mxevZ2Tl{dz*JN|Q_MIxGKD3j^A#N8Zfuw`W}vePS{arjO1>54%vrl-Ab ziY|pqz`H5MI65Og``Lzw8a23r7&1XGu@2eB;?1t^mJ!)eCLt9b)u~o|*p9Iu=#6NV zFSicVv0RhLT_SZw zY(b-!gS$Nqp2z)Oy{z3zHm=uni=T4gi}&MR#qtk!#TywWN5bqh|D<9pCr|?)?zQvM zlkS}ug<1r~T@u&ajm#9Mbln-=Naq9+m&6<$wG}3$N*34LPdrf%t+sUv^;&x6P|LVK z24V-3$dVm@!}Xg^OHWkZP+*8gysecHUcUv8Pr!at3O_TSK$I-iDFG=L9?UbBVm_`T zB2B(;(H?GmY)NAcDPL2f#(ja;j3>H=V4p8{Hx0sar%)EnpUwsj&Bn1Saeoq9D~(*P z{OgxpeHXS$S)Cm)%7O{LyPEO;)fx0ita-wlAGRTB_6cPA?TxP&RAwX8n$fjNaop7P zaHC7&{xYtWc$-!&|4FbIacG*k@*3_nv0G8dsCSm|CgGohT(4w94?3|%fG}4je>Eq` zhJncx{W9t__kG%c*`Kp--!pGC!3-Lo$Vl?-iM=&sVNWQbLdeI661Gsqx58!gvH?`CM`Kl<8F>; z1?%r2*^_;QIu9*`EU7ocE_4Tyah-Gw%cE1pbz~o)P7pfWj1WiO&p@nA4S>Ih(u5D3 zzLdoJqNFnMWNI3B9}ah~`>;u2+U@4Fp%b@)uy7PR-;akes3b6+s-H!T%;!s3@({B;t?m>$|-{_p|-#Q~;+g&zZ?2TjzZ1BY7T(m+^8^1d_z z0lRT;I2N^3^#3OTBgQ&|HKzC3B9wI9Sp#1?ESFK{cBj^19eTqHjEQl&w+^fpS27v0 zD&pf)*Xw&13$Ms$GXh&`yowh~>}vLiSyaLxl48NF&o8;~ndSXp)yxSDx96rn4{Ntg zKf5zEoh+RJ!TNZ<`bv*dr7RtY;4F(`#aXs>9?@kce*m^zE9 z_*9-Cr5kNEu5*lAkz0pbaD8rlk{gqE zpnmU~A$_fqc4mE>y73Q?0T==ko%8;<7PY_TcKr-n+Z&(3ow|bIoPSVLQalD4twCT_ zJ0gTOlx%oD$>NQX*CqDSS5-8&2a<%z99CBaED5=sQ6imT0nbkkm2osUo)6+UgMyy# z7v=heI8c1kddt*4daa@}Q~1A(-6WVIv!S!z$?U?z`#W>s$`(Dalg=s*l4mJMCldON z2AeP~X@B%h8>K=fYYr7l`A$w3wb3XmKKCC1#z38{ySnShPaT~5hF&A&{Es_coH>rf zI@$TtpP^uh&k-bn64!Egz+?&ZT?+YpP1&8F=(X6ukl)VXR*#_n;UCIqnNiE`#K*IS z90vku6U6zKnyIFDeU)#6OPXuk)`Q9aQ(_Yo{M z2LJYbT$=k{l{nZ=Vk&&i7;!u@IsV_RhudknO`~|8?IgNfXxEM&#U4NvSNgvQUM3VT&Ie`0%lxp|W8@%w{%^SO9 zkv&DMDlt4>qLRSm6q?Wzg)=9TJ1|5P<1=`5XL3A%XkBxX3v;8WRwtXQp|3pO8U*qhD#2vfKauBm{zCel%E64I zpS50dSXWpZ11vUtN5G9`{R==@*k(5w&+=wRzZ?BKAHRgy#tkkf!!3F=;EFzJq=4d* zEM$`{OR7bi7eyBBB%p;LsA76QpPdOi!^I~+X9AYw=ikOJ6Cb-I2nMH za&SI2OGQ6r_)cZz(Jxc)1=$ixu!Pj9 z^{GsYW~CMTfTlQG!sL7#UIPDsg@|jd|1O zseEvRm%CYxK9=?dh^b$3+&;ZxtUa}v1EgerI2w0|I4xa-uW$L{>hxGY^H8#?nq9({ z*hp`Y=qsDz!|J3%b-&yY(cc?(TYu|!>wL>LS1?yI*RRohL)Xgp7W)SGJ}2*$&_Og? zKjOJu{2G#K4eSDBjy^q$#+)H)z{AvD8PDd055u6N>(#{n+b2uN;QM2lvon}oDB^h; zhh{_JK8%zW+A!e)d}difC+v^iUmsA3-WhU%vYK7V6mH`{o-6d*7olHJ(0PSu-&VI5 zy7ul5t#7%@D15n1q;*+W`9xQT$Y>ukzpm~~^BlM-p-&;r9o=sfoiMH*Pg!W5bh?^p zf)JOpx8HBp>b~Nx9!n}3ZX0j9~YHG(YuHIH1xaT$q z>y&sUvPdYnG_8`dX0N!R>1w(sp2#ahKTV^&wQ@N9m^QDvKT}PY3|J_f=W~7tt~^$0 z;9`#o8#&F$Wi=VW1WBX;dJ8-5OPR;MEe{|ZQZ;a(>7R-h;@?;)yVIb-UDL5eqOjFhKss(x;wOIW zQZ1|RxT1ksflVxXXjl2f$U|M_@kg{!+6O~`LSd@MVJgN`wG6ME%CQg8y4j}k6sKsm zIq%T{u8$6H)#CNg+pbQk6y-x)eF3*!;y(Ct6Q(gGw$U7#$FQ%f&}sPcK&IB~42X!P zN~b`>@Utt6ch$+`Di0fIc$;^;1t*HUp7`!HYWRAgMIKnZYFVsjjkv zMMF+OIc=@8&_i%%MoxcG@_3V*w1`E);lAo1#z#lA%5B0LlfBCBcxoTuu9jT+7P5oX zPPWl_j1fH4@rU=uN`FkXJUea9v6a{5P*~-T4HKHC;?6EulWp{k;d+nN_Z6GhV^6XX z8yq6v@p^j2bhKm#IT5Yf-e zJc$Ba*+=1a-13r5==DX2+F^T2zT6FJ{=Eedx%4V8;HsLoHdn~Tf4IUDc#WXq&t@a& zs+qPnUN{1Hixov-CtqL+#2WLn^G+2hb@C)m56wGzcE@K{Mat^Un+j;Lw$++9 z(RRQ55C))DI6IwkAg{RyZ||7@;(mbJb4|wTd#tJdg#YdAaBAe(^vA(rGLDe7ve(+# z)S1v#*I(9o?79-�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

    ^}ssz_(q1e_zKfrJg9gf{qpOf{wSI;7XyIk?xlj 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