From 68478c7c29be67f71a24b162f19f8d614ed1e0c5 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Mon, 7 Jul 2025 23:12:56 +0800 Subject: [PATCH] Add new BlazorWebassembly example --- README.BlazorWebAssembly.md | 22 +- README.md | 6 +- samples/WebAppBlazorWebAssembly/.editorconfig | 2 + .../WebAppBlazorWebAssembly/.gitattributes | 1 + samples/WebAppBlazorWebAssembly/.gitignore | 274 ++++++++++++ .../WebAppBlazorWebAssembly/BookStore.abpmdl | 109 +++++ .../WebAppBlazorWebAssembly/BookStore.abpsln | 53 +++ samples/WebAppBlazorWebAssembly/BookStore.sln | 137 ++++++ .../BookStore.sln.DotSettings | 23 ++ samples/WebAppBlazorWebAssembly/NuGet.Config | 13 + samples/WebAppBlazorWebAssembly/README.md | 59 +++ samples/WebAppBlazorWebAssembly/common.props | 19 + .../run-profiles/Default.abprun.json | 28 ++ .../BookStore.Application.Contracts.abppkg | 3 + ....Application.Contracts.abppkg.analyze.json | 118 ++++++ .../BookStore.Application.Contracts.csproj | 24 ++ .../BookStoreApplicationContractsModule.cs | 26 ++ .../BookStoreDtoExtensions.cs | 28 ++ .../BookStorePermissionDefinitionProvider.cs | 22 + .../Permissions/BookStorePermissions.cs | 11 + .../BookStore.Application.abppkg | 3 + .../BookStore.Application.abppkg.analyze.json | 123 ++++++ .../BookStore.Application.csproj | 25 ++ .../BookStoreAppService.cs | 14 + .../BookStoreApplicationAutoMapperProfile.cs | 13 + .../BookStoreApplicationModule.cs | 31 ++ .../Properties/AssemblyInfo.cs | 2 + .../BookStore.Blazor.Client.abppkg | 3 + .../BookStore.Blazor.Client.csproj | 38 ++ .../BookStoreBlazorAutoMapperProfile.cs | 11 + .../BookStoreBlazorClientModule.cs | 112 +++++ .../BookStoreBrandingProvider.cs | 21 + .../BookStoreComponentBase.cs | 12 + .../Navigation/BookStoreMenuContributor.cs | 81 ++++ .../Navigation/BookStoreMenus.cs | 8 + .../BookStore.Blazor.Client/Pages/Index.razor | 17 + .../Pages/Index.razor.cs | 6 + .../Pages/Index.razor.css | 17 + .../src/BookStore.Blazor.Client/Program.cs | 23 ++ .../src/BookStore.Blazor.Client/Routes.razor | 14 + .../BookStore.Blazor.Client/_Imports.razor | 16 + .../wwwroot/appsettings.Development.json | 3 + .../wwwroot/appsettings.json | 18 + .../wwwroot/favicon.ico | Bin 0 -> 38078 bytes .../wwwroot/icon-192.png | Bin 0 -> 2626 bytes .../wwwroot/icon-512.png | Bin 0 -> 6311 bytes .../wwwroot/images/getting-started/bg-01.png | Bin 0 -> 27830 bytes .../wwwroot/images/getting-started/book.png | Bin 0 -> 337312 bytes .../images/getting-started/discord.svg | 7 + .../images/getting-started/img-blog.png | Bin 0 -> 42029 bytes .../images/getting-started/img-community.png | Bin 0 -> 65374 bytes .../images/getting-started/img-support.png | Bin 0 -> 33989 bytes .../images/getting-started/instagram.svg | 23 ++ .../images/getting-started/stack-overflow.svg | 4 + .../images/getting-started/x-white.svg | 3 + .../images/getting-started/youtube.svg | 11 + .../logo/leptonxlite/logo-dark-thumbnail.png | Bin 0 -> 10695 bytes .../images/logo/leptonxlite/logo-dark.png | Bin 0 -> 38171 bytes .../logo/leptonxlite/logo-light-thumbnail.png | Bin 0 -> 9230 bytes .../images/logo/leptonxlite/logo-light.png | Bin 0 -> 33228 bytes .../BookStore.Blazor.Client/wwwroot/main.css | 45 ++ .../wwwroot/manifest.json | 21 + .../wwwroot/service-worker.js | 4 + .../wwwroot/service-worker.published.js | 48 +++ .../BookStore.Blazor/BookStore.Blazor.abppkg | 3 + .../BookStore.Blazor/BookStore.Blazor.csproj | 27 ++ .../BookStore.Blazor/BookStoreBlazorModule.cs | 76 ++++ .../BookStoreScriptBundleContributor.cs | 11 + .../BookStoreStyleBundleContributor.cs | 11 + .../src/BookStore.Blazor/Components/App.razor | 38 ++ .../src/BookStore.Blazor/Dockerfile | 5 + .../src/BookStore.Blazor/Dockerfile.local | 8 + .../src/BookStore.Blazor/Program.cs | 56 +++ .../Properties/launchSettings.json | 29 ++ .../src/BookStore.Blazor/_Imports.razor | 9 + .../BookStore.DbMigrator.abppkg | 1 + .../BookStore.DbMigrator.csproj | 46 +++ .../BookStoreDbMigratorModule.cs | 14 + .../DbMigratorHostedService.cs | 51 +++ .../src/BookStore.DbMigrator/Dockerfile | 5 + .../src/BookStore.DbMigrator/Dockerfile.local | 6 + .../src/BookStore.DbMigrator/Program.cs | 39 ++ .../src/BookStore.DbMigrator/appsettings.json | 19 + .../appsettings.secrets.json | 2 + .../BookStore.Domain.Shared.abppkg | 3 + ...ookStore.Domain.Shared.abppkg.analyze.json | 118 ++++++ .../BookStore.Domain.Shared.csproj | 37 ++ .../BookStoreDomainErrorCodes.cs | 6 + .../BookStoreDomainSharedModule.cs | 82 ++++ .../BookStoreGlobalFeatureConfigurator.cs | 20 + .../BookStoreModuleExtensionConfigurator.cs | 71 ++++ .../Localization/BookStore/ar.json | 42 ++ .../Localization/BookStore/cs.json | 9 + .../Localization/BookStore/de-DE.json | 42 ++ .../Localization/BookStore/en-GB.json | 9 + .../Localization/BookStore/en.json | 9 + .../Localization/BookStore/es.json | 42 ++ .../Localization/BookStore/fi.json | 42 ++ .../Localization/BookStore/fr.json | 42 ++ .../Localization/BookStore/hi.json | 42 ++ .../Localization/BookStore/hu.json | 42 ++ .../Localization/BookStore/is.json | 9 + .../Localization/BookStore/it.json | 42 ++ .../Localization/BookStore/pt-BR.json | 42 ++ .../Localization/BookStore/ro-RO.json | 9 + .../Localization/BookStore/ru.json | 42 ++ .../Localization/BookStore/sk.json | 42 ++ .../Localization/BookStore/sv.json | 42 ++ .../Localization/BookStore/tr.json | 42 ++ .../Localization/BookStore/zh-Hans.json | 42 ++ .../Localization/BookStore/zh-Hant.json | 9 + .../Localization/BookStoreResource.cs | 9 + .../MultiTenancy/MultiTenancyConsts.cs | 10 + .../BookStore.Domain/BookStore.Domain.abppkg | 3 + .../BookStore.Domain.abppkg.analyze.json | 138 +++++++ .../BookStore.Domain/BookStore.Domain.csproj | 33 ++ .../src/BookStore.Domain/BookStoreConsts.cs | 11 + .../BookStore.Domain/BookStoreDomainModule.cs | 52 +++ .../Data/BookStoreDbMigrationService.cs | 110 +++++ .../Data/IBookStoreDbSchemaMigrator.cs | 8 + .../Data/NullBookStoreDbSchemaMigrator.cs | 15 + ...PasswordPolicySettingDefinitionProvider.cs | 34 ++ .../OpenIddictDataSeedContributor.cs | 390 ++++++++++++++++++ .../Properties/AssemblyInfo.cs | 3 + .../BookStoreSettingDefinitionProvider.cs | 12 + .../Settings/BookStoreSettings.cs | 9 + .../BookStore.HttpApi.Client.abppkg | 3 + ...okStore.HttpApi.Client.abppkg.analyze.json | 118 ++++++ .../BookStore.HttpApi.Client.csproj | 32 ++ .../BookStoreHttpApiClientModule.cs | 38 ++ .../BookStore.HttpApi.Host.abppkg | 3 + .../BookStore.HttpApi.Host.csproj | 52 +++ .../BookStoreBrandingProvider.cs | 19 + .../BookStoreHttpApiHostModule.cs | 271 ++++++++++++ .../src/BookStore.HttpApi.Host/Dockerfile | 5 + .../BookStore.HttpApi.Host/Dockerfile.local | 18 + .../BookStore.HttpApi.Host/Pages/Index.cshtml | 127 ++++++ .../Pages/Index.cshtml.cs | 35 ++ .../Pages/_ViewImports.cshtml | 4 + .../src/BookStore.HttpApi.Host/Program.cs | 63 +++ .../Properties/launchSettings.json | 27 ++ .../abp.resourcemapping.js | 11 + .../appsettings.Development.json | 2 + .../BookStore.HttpApi.Host/appsettings.json | 20 + .../src/BookStore.HttpApi.Host/package.json | 8 + .../src/BookStore.HttpApi.Host/web.config | 18 + .../wwwroot/global-scripts.js | 1 + .../wwwroot/global-styles.css | 7 + .../wwwroot/images/clients/angular.svg | 1 + .../wwwroot/images/clients/aspnetcore.svg | 1 + .../wwwroot/images/clients/blazor.svg | 1 + .../wwwroot/images/clients/swagger.svg | 8 + .../logo/leptonxlite/logo-dark-thumbnail.png | Bin 0 -> 10695 bytes .../images/logo/leptonxlite/logo-dark.png | Bin 0 -> 38171 bytes .../logo/leptonxlite/logo-light-thumbnail.png | Bin 0 -> 9230 bytes .../images/logo/leptonxlite/logo-light.png | Bin 0 -> 33228 bytes .../src/BookStore.HttpApi.Host/yarn.lock | 306 ++++++++++++++ .../BookStore.HttpApi.abppkg | 3 + .../BookStore.HttpApi.abppkg.analyze.json | 118 ++++++ .../BookStore.HttpApi.csproj | 27 ++ .../BookStoreHttpApiModule.cs | 41 ++ .../Controllers/BookStoreController.cs | 14 + .../Models/Test/TestModel.cs | 10 + .../BookStore.MongoDB.abppkg | 3 + .../BookStore.MongoDB.abppkg.analyze.json | 145 +++++++ .../BookStore.MongoDB.csproj | 30 ++ .../MongoDb/BookStoreMongoDbContext.cs | 24 ++ .../MongoDb/BookStoreMongoDbModule.cs | 43 ++ .../MongoDbBookStoreDbSchemaMigrator.cs | 52 +++ .../Properties/AssemblyInfo.cs | 2 + .../BookStore.Application.Tests.abppkg | 3 + .../BookStore.Application.Tests.csproj | 20 + .../BookStoreApplicationTestBase.cs | 9 + .../BookStoreApplicationTestModule.cs | 12 + .../Samples/SampleAppServiceTests.cs | 34 ++ .../BookStore.Domain.Tests.abppkg | 3 + .../BookStore.Domain.Tests.csproj | 20 + .../BookStoreDomainTestBase.cs | 10 + .../BookStoreDomainTestModule.cs | 12 + .../Samples/SampleDomainTests.cs | 46 +++ ...Store.HttpApi.Client.ConsoleTestApp.abppkg | 3 + ...Store.HttpApi.Client.ConsoleTestApp.csproj | 36 ++ .../BookStoreConsoleApiClientModule.cs | 30 ++ .../ClientDemoService.cs | 38 ++ .../Program.cs | 33 ++ .../appsettings.json | 17 + .../appsettings.secrets.json | 2 + .../BookStore.MongoDB.Tests.abppkg | 3 + .../BookStore.MongoDB.Tests.csproj | 24 ++ .../MongoDBSampleAppServiceTests.cs | 11 + .../MongoDb/BookStoreMongoCollection.cs | 9 + .../BookStoreMongoDbCollectionFixtureBase.cs | 9 + .../MongoDb/BookStoreMongoDbFixture.cs | 34 ++ .../MongoDb/BookStoreMongoDbTestBase.cs | 6 + .../MongoDb/BookStoreMongoDbTestModule.cs | 21 + .../Domains/MongoDBSampleDomainTests.cs | 10 + .../MongoDb/Samples/SampleRepositoryTests.cs | 40 ++ .../BookStore.TestBase.abppkg | 3 + .../BookStore.TestBase.csproj | 45 ++ .../BookStore.TestBase/BookStoreTestBase.cs | 67 +++ .../BookStoreTestBaseModule.cs | 47 +++ .../BookStore.TestBase/BookStoreTestConsts.cs | 6 + .../BookStoreTestDataBuilder.cs | 26 ++ .../Security/FakeCurrentPrincipalAccessor.cs | 26 ++ .../test/BookStore.TestBase/appsettings.json | 3 + .../appsettings.secrets.json | 2 + 206 files changed, 6454 insertions(+), 4 deletions(-) create mode 100644 samples/WebAppBlazorWebAssembly/.editorconfig create mode 100644 samples/WebAppBlazorWebAssembly/.gitattributes create mode 100644 samples/WebAppBlazorWebAssembly/.gitignore create mode 100644 samples/WebAppBlazorWebAssembly/BookStore.abpmdl create mode 100644 samples/WebAppBlazorWebAssembly/BookStore.abpsln create mode 100644 samples/WebAppBlazorWebAssembly/BookStore.sln create mode 100644 samples/WebAppBlazorWebAssembly/BookStore.sln.DotSettings create mode 100644 samples/WebAppBlazorWebAssembly/NuGet.Config create mode 100644 samples/WebAppBlazorWebAssembly/README.md create mode 100644 samples/WebAppBlazorWebAssembly/common.props create mode 100644 samples/WebAppBlazorWebAssembly/etc/abp-studio/run-profiles/Default.abprun.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.abppkg.analyze.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStoreApplicationContractsModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStoreDtoExtensions.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/Permissions/BookStorePermissionDefinitionProvider.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/Permissions/BookStorePermissions.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.abppkg.analyze.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreAppService.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreApplicationAutoMapperProfile.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreApplicationModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Application/Properties/AssemblyInfo.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorAutoMapperProfile.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBrandingProvider.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreComponentBase.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Navigation/BookStoreMenuContributor.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Navigation/BookStoreMenus.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor.css create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Program.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Routes.razor create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/_Imports.razor create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/appsettings.Development.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/appsettings.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/favicon.ico create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/icon-192.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/icon-512.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/bg-01.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/book.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/discord.svg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/img-blog.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/img-community.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/img-support.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/instagram.svg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/stack-overflow.svg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/x-white.svg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/youtube.svg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-dark-thumbnail.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-dark.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-light-thumbnail.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-light.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/main.css create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/manifest.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/service-worker.js create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/service-worker.published.js create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStore.Blazor.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStore.Blazor.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreBlazorModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreScriptBundleContributor.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreStyleBundleContributor.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Components/App.razor create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Dockerfile create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Dockerfile.local create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Program.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Properties/launchSettings.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/_Imports.razor create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStore.DbMigrator.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStore.DbMigrator.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStoreDbMigratorModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/DbMigratorHostedService.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Dockerfile create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Dockerfile.local create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Program.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.secrets.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.abppkg.analyze.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreDomainErrorCodes.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreDomainSharedModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreGlobalFeatureConfigurator.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreModuleExtensionConfigurator.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ar.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/cs.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/de-DE.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/en-GB.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/en.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/es.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/fi.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/fr.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/hi.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/hu.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/is.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/it.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/pt-BR.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ro-RO.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ru.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/sk.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/sv.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/tr.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/zh-Hans.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/zh-Hant.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStoreResource.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.abppkg.analyze.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStoreConsts.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStoreDomainModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/BookStoreDbMigrationService.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/IBookStoreDbSchemaMigrator.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/NullBookStoreDbSchemaMigrator.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Identity/ChangeIdentityPasswordPolicySettingDefinitionProvider.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/OpenIddict/OpenIddictDataSeedContributor.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Properties/AssemblyInfo.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Settings/BookStoreSettingDefinitionProvider.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Settings/BookStoreSettings.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.abppkg.analyze.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStoreHttpApiClientModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreBrandingProvider.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Dockerfile create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Dockerfile.local create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/Index.cshtml create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/Index.cshtml.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/_ViewImports.cshtml create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Program.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Properties/launchSettings.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/abp.resourcemapping.js create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.Development.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/package.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/web.config create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/global-scripts.js create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/global-styles.css create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/angular.svg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/aspnetcore.svg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/blazor.svg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/swagger.svg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-dark-thumbnail.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-dark.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-light-thumbnail.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-light.png create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/yarn.lock create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.abppkg.analyze.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStoreHttpApiModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/Controllers/BookStoreController.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/Models/Test/TestModel.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.abppkg.analyze.json create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.csproj create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/BookStoreMongoDbContext.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/BookStoreMongoDbModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs create mode 100644 samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/Properties/AssemblyInfo.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStore.Application.Tests.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStore.Application.Tests.csproj create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStoreApplicationTestBase.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStoreApplicationTestModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/Samples/SampleAppServiceTests.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStore.Domain.Tests.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStore.Domain.Tests.csproj create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStoreDomainTestBase.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStoreDomainTestModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/Samples/SampleDomainTests.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStore.HttpApi.Client.ConsoleTestApp.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStore.HttpApi.Client.ConsoleTestApp.csproj create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStoreConsoleApiClientModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/Program.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/appsettings.json create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/appsettings.secrets.json create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/BookStore.MongoDB.Tests.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/BookStore.MongoDB.Tests.csproj create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Applications/MongoDBSampleAppServiceTests.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoCollection.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbCollectionFixtureBase.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbFixture.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestBase.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Domains/MongoDBSampleDomainTests.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStore.TestBase.abppkg create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStore.TestBase.csproj create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestBase.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestBaseModule.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestConsts.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestDataBuilder.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/Security/FakeCurrentPrincipalAccessor.cs create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/appsettings.json create mode 100644 samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/appsettings.secrets.json diff --git a/README.BlazorWebAssembly.md b/README.BlazorWebAssembly.md index 303decc..3b63d66 100644 --- a/README.BlazorWebAssembly.md +++ b/README.BlazorWebAssembly.md @@ -7,9 +7,11 @@ The first step is to use ABP CLI to create a new project. **Replace LeptonXLiteTheme with AntBlazorTheme packages** * Replace `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme` with `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme` +* Replace `Volo.Abp.AspNetCore.Components.WebAssembly.LeptonXLiteTheme.Bundling` with `Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling` * Replace `Volo.Abp.Identity.Blazor.WebAssembly` with `Lsw.Abp.IdentityManagement.Blazor.WebAssembly.AntDesignUI` * Replace `Volo.Abp.SettingManagement.Blazor.WebAssembly` with `Lsw.Abp.SettingManagement.Blazor.WebAssembly.AntDesignUI` * Replace `Volo.Abp.TenantManagement.Blazor.WebAssembly` with `Lsw.Abp.TenantManagement.Blazor.WebAssembly.AntDesignUI` +* Replace `Volo.Abp.FeatureManagement.Blazor.WebAssembly` with `Lsw.Abp.FeatureManagement.Blazor.WebAssembly.AntDesignUI` ``` @@ -23,7 +25,7 @@ The first step is to use ABP CLI to create a new project. @using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Bundling ``` -**Open `BookStoreBlazorModule` make the following changes:** +**Open `BookStoreBlazorClientModule` make the following changes:** * Remove the `ConfigureBlazorise` method * Fix wrong using namespace @@ -55,7 +57,25 @@ The first step is to use ABP CLI to create a new project. +``` + +**Open `Routes.razor` and replace with the following:** +```csharp +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Routing +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme +@using Microsoft.Extensions.Options +@using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp + + + + + + + + + + ``` Run the `dotnet build` & `abp bundle` command in the `BookStore.Blazor` folder. diff --git a/README.md b/README.md index 0c1c2a6..657bba9 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,9 @@ ## Quick Start -[Change the theme of the ABP project to AntBlazorTheme for Blazor WebApp.](./README.WebApp.md) - -[Change the theme of the ABP project to AntBlazorTheme for Blazor Server.](./README.BlazorServer.md) +* [Change the theme of the ABP project to AntBlazorTheme for Blazor WebApp.](./README.WebApp.md) +* [Change the theme of the ABP project to AntBlazorTheme for Blazor Server.](./README.BlazorServer.md) +* [Change the theme of the ABP project to AntBlazorTheme for Blazor WebAssembly.](./README.BlazorWebAssembly.md) ## Road map diff --git a/samples/WebAppBlazorWebAssembly/.editorconfig b/samples/WebAppBlazorWebAssembly/.editorconfig new file mode 100644 index 0000000..3aa69ea --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/.editorconfig @@ -0,0 +1,2 @@ +[*.csproj] +indent_size = 2 \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/.gitattributes b/samples/WebAppBlazorWebAssembly/.gitattributes new file mode 100644 index 0000000..c941e52 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/.gitattributes @@ -0,0 +1 @@ +**/wwwroot/libs/** linguist-vendored diff --git a/samples/WebAppBlazorWebAssembly/.gitignore b/samples/WebAppBlazorWebAssembly/.gitignore new file mode 100644 index 0000000..042c08a --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/.gitignore @@ -0,0 +1,274 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignoreable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +**/.idea/ +*.sln.iml + +# ABP Studio +**/.abpstudio/ + +# BookStore +src/BookStore.Web/Logs/* +src/BookStore.Web.Host/Logs/* +src/BookStore.Web.Public/Logs/* +src/BookStore.Web.Public.Host/Logs/* +src/BookStore.AuthServer/Logs/* +src/BookStore.HttpApi.Host/Logs/* +src/BookStore.HttpApi.Host/Logs/* +src/BookStore.DbMigrator/Logs/* +src/BookStore.Blazor.Server/Logs/* +src/BookStore.Blazor.Server.Tiered/Logs/* + +# Use abp install-libs to restore. +**/wwwroot/libs/* + +# IdentityServer temp files +tempkey.rsa +tempkey.jwk \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/BookStore.abpmdl b/samples/WebAppBlazorWebAssembly/BookStore.abpmdl new file mode 100644 index 0000000..e4aff21 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/BookStore.abpmdl @@ -0,0 +1,109 @@ +{ + "template": "app", + "imports": { + "Volo.Abp.LeptonXLiteTheme": { + "version": "4.2.0", + "isInstalled": true + }, + "Volo.Abp.Account": { + "version": "9.2.0", + "isInstalled": true + }, + "Volo.Abp.OpenIddict": { + "version": "9.2.0", + "isInstalled": true + }, + "Volo.Abp.Identity": { + "version": "9.2.0", + "isInstalled": true + }, + "Volo.Abp.TenantManagement": { + "version": "9.2.0", + "isInstalled": true + }, + "Volo.Abp.SettingManagement": { + "version": "9.2.0", + "isInstalled": true + }, + "Volo.Abp.PermissionManagement": { + "version": "9.2.0", + "isInstalled": true + }, + "Volo.Abp.FeatureManagement": { + "version": "9.2.0", + "isInstalled": true + } + }, + "folders": { + "items": { + "src": {}, + "test": {} + } + }, + "packages": { + "BookStore.Application": { + "path": "src/BookStore.Application/BookStore.Application.abppkg", + "folder": "src" + }, + "BookStore.Application.Tests": { + "path": "test/BookStore.Application.Tests/BookStore.Application.Tests.abppkg", + "folder": "test" + }, + "BookStore.MongoDB": { + "path": "src/BookStore.MongoDB/BookStore.MongoDB.abppkg", + "folder": "src" + }, + "BookStore.MongoDB.Tests": { + "path": "test/BookStore.MongoDB.Tests/BookStore.MongoDB.Tests.abppkg", + "folder": "test" + }, + "BookStore.Domain.Shared": { + "path": "src/BookStore.Domain.Shared/BookStore.Domain.Shared.abppkg", + "folder": "src" + }, + "BookStore.Application.Contracts": { + "path": "src/BookStore.Application.Contracts/BookStore.Application.Contracts.abppkg", + "folder": "src" + }, + "BookStore.HttpApi": { + "path": "src/BookStore.HttpApi/BookStore.HttpApi.abppkg", + "folder": "src" + }, + "BookStore.HttpApi.Client": { + "path": "src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.abppkg", + "folder": "src" + }, + "BookStore.TestBase": { + "path": "test/BookStore.TestBase/BookStore.TestBase.abppkg", + "folder": "test" + }, + "BookStore.Domain.Tests": { + "path": "test/BookStore.Domain.Tests/BookStore.Domain.Tests.abppkg", + "folder": "test" + }, + "BookStore.HttpApi.Client.ConsoleTestApp": { + "path": "test/BookStore.HttpApi.Client.ConsoleTestApp/BookStore.HttpApi.Client.ConsoleTestApp.abppkg", + "folder": "test" + }, + "BookStore.DbMigrator": { + "path": "src/BookStore.DbMigrator/BookStore.DbMigrator.abppkg", + "folder": "src" + }, + "BookStore.HttpApi.Host": { + "path": "src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.abppkg", + "folder": "src" + }, + "BookStore.Blazor": { + "path": "src/BookStore.Blazor/BookStore.Blazor.abppkg", + "folder": "src" + }, + "BookStore.Blazor.Client": { + "path": "src/BookStore.Blazor.Client/BookStore.Blazor.Client.abppkg", + "folder": "src" + }, + "BookStore.Domain": { + "path": "src/BookStore.Domain/BookStore.Domain.abppkg", + "folder": "src" + } + } +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/BookStore.abpsln b/samples/WebAppBlazorWebAssembly/BookStore.abpsln new file mode 100644 index 0000000..3b76ef0 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/BookStore.abpsln @@ -0,0 +1,53 @@ +{ + "id": "9776757a-16f5-4a1a-8449-62909978bb39", + "template": "app", + "versions": { + "AbpFramework": "9.2.0", + "AbpStudio": "1.0.1", + "TargetDotnetFramework": "net9.0" + }, + "modules": { + "BookStore": { + "path": "BookStore.abpmdl" + } + }, + "runProfiles": { + "Default": { + "path": "etc/abp-studio/run-profiles/Default.abprun.json" + } + }, + "options": { + "httpRequests": { + "ignoredUrls": [ + + ] + } + }, + "creatingStudioConfiguration": { + "template": "app", + "createdAbpStudioVersion": "1.0.1", + "tiered": "false", + "runInstallLibs": "true", + "runBundling": "true", + "useLocalReferences": "false", + "multiTenancy": "true", + "includeTests": "true", + "kubernetesConfiguration": "false", + "uiFramework": "blazor", + "mobileFramework": "none", + "distributedEventBus": "none", + "databaseProvider": "mongodb", + "runDbMigrator": "true", + "theme": "leptonx-lite", + "themeStyle": "", + "themeMenuPlacement": "", + "mobileFramework": "none", + "progressiveWebApp": "false", + "runProgressiveWebAppSupport": "false", + "publicWebsite": "false", + "socialLogin": "true", + "selectedLanguages": ["English", "English (United Kingdom)", "简体中文", "Español", "العربية", "हिन्दी", "Português (Brasil)", "Français", "Русский", "Deutsch (Deuthschland)", "Türkçe", "Italiano", "Čeština", "Magyar", "Română (România)", "Svenska", "Suomi", "Slovenčina", "Íslenska", "繁體中z文", ], + "defaultLanguage": "English", + "createCommand": "abp new BookStore -t app --ui-framework blazor --database-provider mongodb --theme leptonx-lite --skip-migration --without-cms-kit -no-file-management" + } +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/BookStore.sln b/samples/WebAppBlazorWebAssembly/BookStore.sln new file mode 100644 index 0000000..c5a1f62 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/BookStore.sln @@ -0,0 +1,137 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.3.32611.2 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.Domain", "src\BookStore.Domain\BookStore.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.Application", "src\BookStore.Application\BookStore.Application.csproj", "{1A94A50E-06DC-43C1-80B5-B662820EC3EB}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CA9AC87F-097E-4F15-8393-4BC07735A5B0}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{04DBDB01-70F4-4E06-B468-8F87850B22BE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.Application.Tests", "test\BookStore.Application.Tests\BookStore.Application.Tests.csproj", "{50B2631D-129C-47B3-A587-029CCD6099BC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.MongoDB", "src\BookStore.MongoDB\BookStore.MongoDB.csproj", "{E3444355-D47E-431E-BDD0-DD3A7113B2AE}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.Domain.Shared", "src\BookStore.Domain.Shared\BookStore.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.Application.Contracts", "src\BookStore.Application.Contracts\BookStore.Application.Contracts.csproj", "{520659C8-C734-4298-A3DA-B539DB9DFC0B}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.HttpApi", "src\BookStore.HttpApi\BookStore.HttpApi.csproj", "{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.HttpApi.Client", "src\BookStore.HttpApi.Client\BookStore.HttpApi.Client.csproj", "{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.TestBase", "test\BookStore.TestBase\BookStore.TestBase.csproj", "{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.Domain.Tests", "test\BookStore.Domain.Tests\BookStore.Domain.Tests.csproj", "{E512F4D9-9375-480F-A2F6-A46509F9D824}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.MongoDB.Tests", "test\BookStore.MongoDB.Tests\BookStore.MongoDB.Tests.csproj", "{6015D17B-104B-4EC2-A9B7-D8A40C891458}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.HttpApi.Client.ConsoleTestApp", "test\BookStore.HttpApi.Client.ConsoleTestApp\BookStore.HttpApi.Client.ConsoleTestApp.csproj", "{EF480016-9127-4916-8735-D2466BDBC582}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.DbMigrator", "src\BookStore.DbMigrator\BookStore.DbMigrator.csproj", "{70680696-BB1E-4383-BCB2-42C3767171FB}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.HttpApi.Host", "src\BookStore.HttpApi.Host\BookStore.HttpApi.Host.csproj", "{96E5259E-59A3-4FAF-BCD1-5BF8E74EF82C}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.Blazor", "src\BookStore.Blazor\BookStore.Blazor.csproj", "{2DC842B5-1705-4097-AD37-E889C1B97950}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BookStore.Blazor.Client", "src\BookStore.Blazor.Client\BookStore.Blazor.Client.csproj", "{9df63919-581a-488b-bfe3-0622a500a56c}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.Build.0 = Release|Any CPU + {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Release|Any CPU.Build.0 = Release|Any CPU + {50B2631D-129C-47B3-A587-029CCD6099BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {50B2631D-129C-47B3-A587-029CCD6099BC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {50B2631D-129C-47B3-A587-029CCD6099BC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {50B2631D-129C-47B3-A587-029CCD6099BC}.Release|Any CPU.Build.0 = Release|Any CPU + {E3444355-D47E-431E-BDD0-DD3A7113B2AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E3444355-D47E-431E-BDD0-DD3A7113B2AE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E3444355-D47E-431E-BDD0-DD3A7113B2AE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E3444355-D47E-431E-BDD0-DD3A7113B2AE}.Release|Any CPU.Build.0 = Release|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.ActiveCfg = Release|Any CPU + {42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.Build.0 = Release|Any CPU + {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Release|Any CPU.Build.0 = Release|Any CPU + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Release|Any CPU.Build.0 = Release|Any CPU + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Release|Any CPU.Build.0 = Release|Any CPU + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.Build.0 = Release|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.Build.0 = Release|Any CPU + {6015D17B-104B-4EC2-A9B7-D8A40C891458}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6015D17B-104B-4EC2-A9B7-D8A40C891458}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6015D17B-104B-4EC2-A9B7-D8A40C891458}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6015D17B-104B-4EC2-A9B7-D8A40C891458}.Release|Any CPU.Build.0 = Release|Any CPU + {EF480016-9127-4916-8735-D2466BDBC582}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EF480016-9127-4916-8735-D2466BDBC582}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EF480016-9127-4916-8735-D2466BDBC582}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EF480016-9127-4916-8735-D2466BDBC582}.Release|Any CPU.Build.0 = Release|Any CPU + {70680696-BB1E-4383-BCB2-42C3767171FB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70680696-BB1E-4383-BCB2-42C3767171FB}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70680696-BB1E-4383-BCB2-42C3767171FB}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70680696-BB1E-4383-BCB2-42C3767171FB}.Release|Any CPU.Build.0 = Release|Any CPU + {96E5259E-59A3-4FAF-BCD1-5BF8E74EF82C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {96E5259E-59A3-4FAF-BCD1-5BF8E74EF82C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {96E5259E-59A3-4FAF-BCD1-5BF8E74EF82C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {96E5259E-59A3-4FAF-BCD1-5BF8E74EF82C}.Release|Any CPU.Build.0 = Release|Any CPU + {2DC842B5-1705-4097-AD37-E889C1B97950}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2DC842B5-1705-4097-AD37-E889C1B97950}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2DC842B5-1705-4097-AD37-E889C1B97950}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2DC842B5-1705-4097-AD37-E889C1B97950}.Release|Any CPU.Build.0 = Release|Any CPU + {9df63919-581a-488b-bfe3-0622a500a56c}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9df63919-581a-488b-bfe3-0622a500a56c}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9df63919-581a-488b-bfe3-0622a500a56c}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9df63919-581a-488b-bfe3-0622a500a56c}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {554AD327-6DBA-4F8F-96F8-81CE7A0C863F} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {1A94A50E-06DC-43C1-80B5-B662820EC3EB} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {50B2631D-129C-47B3-A587-029CCD6099BC} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {E3444355-D47E-431E-BDD0-DD3A7113B2AE} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {42F719ED-8413-4895-B5B4-5AB56079BC66} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {520659C8-C734-4298-A3DA-B539DB9DFC0B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {4164BDF7-F527-4E85-9CE6-E3C2D7426A27} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {3B5A0094-670D-4BB1-BFDD-61B88A8773DC} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {91853F21-9CD9-4132-BC29-A7D5D84FFFE7} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {E512F4D9-9375-480F-A2F6-A46509F9D824} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {6015D17B-104B-4EC2-A9B7-D8A40C891458} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {EF480016-9127-4916-8735-D2466BDBC582} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} + {70680696-BB1E-4383-BCB2-42C3767171FB} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {96E5259E-59A3-4FAF-BCD1-5BF8E74EF82C} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {2DC842B5-1705-4097-AD37-E889C1B97950} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {9df63919-581a-488b-bfe3-0622a500a56c} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {28315BFD-90E7-4E14-A2EA-F3D23AF4126F} + EndGlobalSection +EndGlobal diff --git a/samples/WebAppBlazorWebAssembly/BookStore.sln.DotSettings b/samples/WebAppBlazorWebAssembly/BookStore.sln.DotSettings new file mode 100644 index 0000000..cb0b2c9 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/BookStore.sln.DotSettings @@ -0,0 +1,23 @@ + + True + WARNING + WARNING + WARNING + WARNING + WARNING + WARNING + WARNING + WARNING + Required + Required + Required + Required + False + True + False + False + True + False + False + SQL + \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/NuGet.Config b/samples/WebAppBlazorWebAssembly/NuGet.Config new file mode 100644 index 0000000..5107236 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/NuGet.Config @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/README.md b/samples/WebAppBlazorWebAssembly/README.md new file mode 100644 index 0000000..215b2d2 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/README.md @@ -0,0 +1,59 @@ +# BookStore + +## About this solution + +This is a layered startup solution based on [Domain Driven Design (DDD)](https://abp.io/docs/latest/framework/architecture/domain-driven-design) practises. All the fundamental ABP modules are already installed. Check the [Application Startup Template](https://abp.io/docs/latest/solution-templates/layered-web-application) documentation for more info. + +### Pre-requirements + +* [.NET9.0+ SDK](https://dotnet.microsoft.com/download/dotnet) +* [Node v18 or 20](https://nodejs.org/en) + +### Configurations + +The solution comes with a default configuration that works out of the box. However, you may consider to change the following configuration before running your solution: + +* Check the `ConnectionStrings` in `appsettings.json` files under the `BookStore.HttpApi.Host` and `BookStore.DbMigrator` projects and change it if you need. + +### Before running the application + +* Run `abp install-libs` command on your solution folder to install client-side package dependencies. This step is automatically done when you create a new solution, if you didn't especially disabled it. However, you should run it yourself if you have first cloned this solution from your source control, or added a new client-side package dependency to your solution. +* Run `BookStore.DbMigrator` to create the initial database. This step is also automatically done when you create a new solution, if you didn't especially disabled it. This should be done in the first run. It is also needed if a new database migration is added to the solution later. + +#### Generating a Signing Certificate + +In the production environment, you need to use a production signing certificate. ABP Framework sets up signing and encryption certificates in your application and expects an `openiddict.pfx` file in your application. + +To generate a signing certificate, you can use the following command: + +```bash +dotnet dev-certs https -v -ep openiddict.pfx -p 2dae3a4f-9e73-4cb7-b7b9-7ec95c44e1a3 +``` + +> `2dae3a4f-9e73-4cb7-b7b9-7ec95c44e1a3` is the password of the certificate, you can change it to any password you want. + +It is recommended to use **two** RSA certificates, distinct from the certificate(s) used for HTTPS: one for encryption, one for signing. + +For more information, please refer to: [OpenIddict Certificate Configuration](https://documentation.openiddict.com/configuration/encryption-and-signing-credentials.html#registering-a-certificate-recommended-for-production-ready-scenarios) + +> Also, see the [Configuring OpenIddict](https://abp.io/docs/latest/Deployment/Configuring-OpenIddict#production-environment) documentation for more information. + +### Solution structure + +This is a layered monolith application that consists of the following applications: + +* `BookStore.DbMigrator`: A console application which applies the migrations and also seeds the initial data. It is useful on development as well as on production environment. +* `BookStore.HttpApi.Host`: ASP.NET Core API application that is used to expose the APIs to the clients. +* `BookStore.Blazor`: ASP.NET Core Blazor Server application that is the essential web application of the solution. + + +## Deploying the application + +Deploying an ABP application follows the same process as deploying any .NET or ASP.NET Core application. However, there are important considerations to keep in mind. For detailed guidance, refer to ABP's [deployment documentation](https://abp.io/docs/latest/Deployment/Index). + +### Additional resources + +You can see the following resources to learn more about your solution and the ABP Framework: + +* [Web Application Development Tutorial](https://abp.io/docs/latest/tutorials/book-store/part-1) +* [Application Startup Template](https://abp.io/docs/latest/startup-templates/application/index) diff --git a/samples/WebAppBlazorWebAssembly/common.props b/samples/WebAppBlazorWebAssembly/common.props new file mode 100644 index 0000000..22d34c4 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/common.props @@ -0,0 +1,19 @@ + + + latest + 1.0.0 + $(NoWarn);CS1591 + app + + + + + $(NoWarn);0436 + + + + + + + + \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/etc/abp-studio/run-profiles/Default.abprun.json b/samples/WebAppBlazorWebAssembly/etc/abp-studio/run-profiles/Default.abprun.json new file mode 100644 index 0000000..1adf2f3 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/etc/abp-studio/run-profiles/Default.abprun.json @@ -0,0 +1,28 @@ +{ + "applications": { + "BookStore.HttpApi.Host": { + "type": "dotnet-project", + "launchUrl": "https://localhost:44318", + "path": "../../../src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj", + "kubernetesService": ".*-httpapihost$", + "healthCheckEndpoint": "/health-status", + "healthUiEndpoint": "/health-ui", + "execution": { + "order": 4 + } + }, + "BookStore.Blazor": { + "type": "dotnet-project", + "launchUrl": "https://localhost:44376", + "path": "../../../src/BookStore.Blazor/BookStore.Blazor.csproj", + "healthCheckEndpoint": "/", + "kubernetesService": ".*-blazor$", + "execution": { + "order": 2 + } + } + }, + "containers": { + "serviceName": "BookStore-Containers", + } +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.abppkg new file mode 100644 index 0000000..4903279 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.application-contracts" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.abppkg.analyze.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.abppkg.analyze.json new file mode 100644 index 0000000..060ef71 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.abppkg.analyze.json @@ -0,0 +1,118 @@ +{ + "name": "BookStore.Application.Contracts", + "hash": "", + "contents": [ + { + "namespace": "BookStore", + "dependsOnModules": [ + { + "declaringAssemblyName": "BookStore.Domain.Shared", + "namespace": "BookStore", + "name": "BookStoreDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Application.Contracts", + "namespace": "Volo.Abp.FeatureManagement", + "name": "AbpFeatureManagementApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.Application.Contracts", + "namespace": "Volo.Abp.SettingManagement", + "name": "AbpSettingManagementApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Identity.Pro.Application.Contracts", + "namespace": "Volo.Abp.Identity", + "name": "AbpIdentityApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Account.Pro.Public.Application.Contracts", + "namespace": "Volo.Abp.Account", + "name": "AbpAccountPublicApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Account.Pro.Admin.Application.Contracts", + "namespace": "Volo.Abp.Account", + "name": "AbpAccountAdminApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AuditLogging.Application.Contracts", + "namespace": "Volo.Abp.AuditLogging", + "name": "AbpAuditLoggingApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.OpenIddict.Pro.Application.Contracts", + "namespace": "Volo.Abp.OpenIddict", + "name": "AbpOpenIddictProApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.TextTemplateManagement.Application.Contracts", + "namespace": "Volo.Abp.TextTemplateManagement", + "name": "TextTemplateManagementApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.LanguageManagement.Application.Contracts", + "namespace": "Volo.Abp.LanguageManagement", + "name": "LanguageManagementApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Gdpr.Application.Contracts", + "namespace": "Volo.Abp.Gdpr", + "name": "AbpGdprApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Application.Contracts", + "namespace": "Volo.Abp.PermissionManagement", + "name": "AbpPermissionManagementApplicationContractsModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "BookStoreApplicationContractsModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.csproj new file mode 100644 index 0000000..1041e77 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStore.Application.Contracts.csproj @@ -0,0 +1,24 @@ + + + + + + net9.0 + enable + BookStore + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStoreApplicationContractsModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStoreApplicationContractsModule.cs new file mode 100644 index 0000000..7bab31b --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStoreApplicationContractsModule.cs @@ -0,0 +1,26 @@ +using Volo.Abp.Account; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.TenantManagement; + +namespace BookStore; + +[DependsOn( + typeof(BookStoreDomainSharedModule), + typeof(AbpFeatureManagementApplicationContractsModule), + typeof(AbpSettingManagementApplicationContractsModule), + typeof(AbpIdentityApplicationContractsModule), + typeof(AbpAccountApplicationContractsModule), + typeof(AbpTenantManagementApplicationContractsModule), + typeof(AbpPermissionManagementApplicationContractsModule) +)] +public class BookStoreApplicationContractsModule : AbpModule +{ + public override void PreConfigureServices(ServiceConfigurationContext context) + { + BookStoreDtoExtensions.Configure(); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStoreDtoExtensions.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStoreDtoExtensions.cs new file mode 100644 index 0000000..7030268 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/BookStoreDtoExtensions.cs @@ -0,0 +1,28 @@ +using Volo.Abp.Identity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.Threading; + +namespace BookStore; + +public static class BookStoreDtoExtensions +{ + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + OneTimeRunner.Run(() => + { + /* You can add extension properties to DTOs + * defined in the depended modules. + * + * Example: + * + * ObjectExtensionManager.Instance + * .AddOrUpdateProperty("Title"); + * + * See the documentation for more: + * https://docs.abp.io/en/abp/latest/Object-Extensions + */ + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/Permissions/BookStorePermissionDefinitionProvider.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/Permissions/BookStorePermissionDefinitionProvider.cs new file mode 100644 index 0000000..25b8f87 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/Permissions/BookStorePermissionDefinitionProvider.cs @@ -0,0 +1,22 @@ +using BookStore.Localization; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Localization; +using Volo.Abp.MultiTenancy; + +namespace BookStore.Permissions; + +public class BookStorePermissionDefinitionProvider : PermissionDefinitionProvider +{ + public override void Define(IPermissionDefinitionContext context) + { + var myGroup = context.AddGroup(BookStorePermissions.GroupName); + + //Define your own permissions here. Example: + //myGroup.AddPermission(BookStorePermissions.MyPermission1, L("Permission:MyPermission1")); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/Permissions/BookStorePermissions.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/Permissions/BookStorePermissions.cs new file mode 100644 index 0000000..01445cb --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application.Contracts/Permissions/BookStorePermissions.cs @@ -0,0 +1,11 @@ +namespace BookStore.Permissions; + +public static class BookStorePermissions +{ + public const string GroupName = "BookStore"; + + + + //Add your own permission names. Example: + //public const string MyPermission1 = GroupName + ".MyPermission1"; +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.abppkg new file mode 100644 index 0000000..412567a --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.application" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.abppkg.analyze.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.abppkg.analyze.json new file mode 100644 index 0000000..db859aa --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.abppkg.analyze.json @@ -0,0 +1,123 @@ +{ + "name": "BookStore.Application", + "hash": "", + "contents": [ + { + "namespace": "BookStore", + "dependsOnModules": [ + { + "declaringAssemblyName": "BookStore.Domain", + "namespace": "BookStore", + "name": "BookStoreDomainModule" + }, + { + "declaringAssemblyName": "BookStore.Application.Contracts", + "namespace": "BookStore", + "name": "BookStoreApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Application", + "namespace": "Volo.Abp.PermissionManagement", + "name": "AbpPermissionManagementApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Application", + "namespace": "Volo.Abp.FeatureManagement", + "name": "AbpFeatureManagementApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Identity.Pro.Application", + "namespace": "Volo.Abp.Identity", + "name": "AbpIdentityApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Account.Pro.Public.Application", + "namespace": "Volo.Abp.Account", + "name": "AbpAccountPublicApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Account.Pro.Admin.Application", + "namespace": "Volo.Abp.Account", + "name": "AbpAccountAdminApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AuditLogging.Application", + "namespace": "Volo.Abp.AuditLogging", + "name": "AbpAuditLoggingApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.TextTemplateManagement.Application", + "namespace": "Volo.Abp.TextTemplateManagement", + "name": "TextTemplateManagementApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.OpenIddict.Pro.Application", + "namespace": "Volo.Abp.OpenIddict", + "name": "AbpOpenIddictProApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.LanguageManagement.Application", + "namespace": "Volo.Abp.LanguageManagement", + "name": "LanguageManagementApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Gdpr.Application", + "namespace": "Volo.Abp.Gdpr", + "name": "AbpGdprApplicationModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.Application", + "namespace": "Volo.Abp.SettingManagement", + "name": "AbpSettingManagementApplicationModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "BookStoreApplicationModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.csproj new file mode 100644 index 0000000..b0ae1c8 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStore.Application.csproj @@ -0,0 +1,25 @@ + + + + + + net9.0 + enable + BookStore + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreAppService.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreAppService.cs new file mode 100644 index 0000000..2f12e97 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreAppService.cs @@ -0,0 +1,14 @@ +using BookStore.Localization; +using Volo.Abp.Application.Services; + +namespace BookStore; + +/* Inherit your application services from this class. + */ +public abstract class BookStoreAppService : ApplicationService +{ + protected BookStoreAppService() + { + LocalizationResource = typeof(BookStoreResource); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreApplicationAutoMapperProfile.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreApplicationAutoMapperProfile.cs new file mode 100644 index 0000000..8c6108c --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreApplicationAutoMapperProfile.cs @@ -0,0 +1,13 @@ +using AutoMapper; + +namespace BookStore; + +public class BookStoreApplicationAutoMapperProfile : Profile +{ + public BookStoreApplicationAutoMapperProfile() + { + /* You can configure your AutoMapper mapping configuration here. + * Alternatively, you can split your mapping configurations + * into multiple profile classes for a better organization. */ + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreApplicationModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreApplicationModule.cs new file mode 100644 index 0000000..add2aeb --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/BookStoreApplicationModule.cs @@ -0,0 +1,31 @@ +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.Account; +using Volo.Abp.Identity; +using Volo.Abp.AutoMapper; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Modularity; +using Volo.Abp.TenantManagement; + +namespace BookStore; + +[DependsOn( + typeof(BookStoreDomainModule), + typeof(BookStoreApplicationContractsModule), + typeof(AbpPermissionManagementApplicationModule), + typeof(AbpFeatureManagementApplicationModule), + typeof(AbpIdentityApplicationModule), + typeof(AbpAccountApplicationModule), + typeof(AbpTenantManagementApplicationModule), + typeof(AbpSettingManagementApplicationModule) + )] +public class BookStoreApplicationModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.AddMaps(); + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Application/Properties/AssemblyInfo.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..35a2447 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Application/Properties/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using System.Runtime.CompilerServices; +[assembly:InternalsVisibleToAttribute("BookStore.Application.Tests")] diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.abppkg new file mode 100644 index 0000000..6a7cb4b --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.blazor-wasm-client" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj new file mode 100644 index 0000000..384a08c --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStore.Blazor.Client.csproj @@ -0,0 +1,38 @@ + + + + + + net9.0 + enable + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorAutoMapperProfile.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorAutoMapperProfile.cs new file mode 100644 index 0000000..058f1fb --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorAutoMapperProfile.cs @@ -0,0 +1,11 @@ +using AutoMapper; + +namespace BookStore.Blazor.Client; + +public class BookStoreBlazorAutoMapperProfile : Profile +{ + public BookStoreBlazorAutoMapperProfile() + { + //Define your AutoMapper configuration here for the Blazor project. + } +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs new file mode 100644 index 0000000..c0f0e94 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBlazorClientModule.cs @@ -0,0 +1,112 @@ +using System; +using System.Net.Http; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using BookStore.Blazor.Client.Navigation; +using Localization.Resources.AbpUi; +using Volo.Abp.Localization; +using BookStore.Localization; +using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Routing; +using Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme; +using Lsw.Abp.FeatureManagement.Blazor.WebAssembly.AntDesignUI; +using Lsw.Abp.IdentityManagement.Blazor.WebAssembly.AntDesignUI; +using Lsw.Abp.SettingManagement.Blazor.WebAssembly.AntDesignUI; +using Lsw.Abp.TenantManagement.Blazor.WebAssembly.AntDesignUI; +using OpenIddict.Abstractions; +using Volo.Abp.Autofac.WebAssembly; +using Volo.Abp.AutoMapper; +using Volo.Abp.Modularity; +using Volo.Abp.UI.Navigation; + +namespace BookStore.Blazor.Client; + +[DependsOn( + typeof(AbpAutofacWebAssemblyModule), + typeof(AbpIdentityBlazorWebAssemblyAntDesignModule), + typeof(AbpSettingManagementBlazorWebAssemblyAntDesignModule), + typeof(AbpFeatureManagementBlazorWebAssemblyAntDesignModule), + typeof(AbpTenantManagementBlazorWebAssemblyAntDesignModule), + typeof(AbpAspNetCoreComponentsWebAssemblyAntDesignThemeModule), + typeof(BookStoreHttpApiClientModule) +)] +public class BookStoreBlazorClientModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + var environment = context.Services.GetSingletonInstance(); + var builder = context.Services.GetSingletonInstance(); + + ConfigureLocalization(); + ConfigureAuthentication(builder); + ConfigureHttpClient(context, environment); + //ConfigureBlazorise(context); + ConfigureRouter(context); + ConfigureMenu(context); + ConfigureAutoMapper(context); + } + + private void ConfigureLocalization() + { + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes(typeof(AbpUiResource)); + }); + } + + private void ConfigureRouter(ServiceConfigurationContext context) + { + Configure(options => + { + options.AppAssembly = typeof(BookStoreBlazorClientModule).Assembly; + }); + } + + private void ConfigureMenu(ServiceConfigurationContext context) + { + Configure(options => + { + options.MenuContributors.Add(new BookStoreMenuContributor(context.Services.GetConfiguration())); + }); + } + + // private void ConfigureBlazorise(ServiceConfigurationContext context) + // { + // context.Services + // .AddBootstrap5Providers() + // .AddFontAwesomeIcons(); + // } + + private static void ConfigureAuthentication(WebAssemblyHostBuilder builder) + { + builder.Services.AddOidcAuthentication(options => + { + builder.Configuration.Bind("AuthServer", options.ProviderOptions); + options.UserOptions.NameClaim = OpenIddictConstants.Claims.Name; + options.UserOptions.RoleClaim = OpenIddictConstants.Claims.Role; + + options.ProviderOptions.DefaultScopes.Add("BookStore"); + options.ProviderOptions.DefaultScopes.Add("roles"); + options.ProviderOptions.DefaultScopes.Add("email"); + options.ProviderOptions.DefaultScopes.Add("phone"); + }); + } + + private static void ConfigureHttpClient(ServiceConfigurationContext context, IWebAssemblyHostEnvironment environment) + { + context.Services.AddTransient(sp => new HttpClient + { + BaseAddress = new Uri(environment.BaseAddress) + }); + } + + private void ConfigureAutoMapper(ServiceConfigurationContext context) + { + Configure(options => + { + options.AddMaps(); + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBrandingProvider.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBrandingProvider.cs new file mode 100644 index 0000000..4a47f52 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreBrandingProvider.cs @@ -0,0 +1,21 @@ +using Microsoft.Extensions.Localization; +using BookStore.Localization; +using Microsoft.Extensions.Localization; +using BookStore.Localization; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Ui.Branding; + +namespace BookStore.Blazor.Client; + +[Dependency(ReplaceServices = true)] +public class BookStoreBrandingProvider : DefaultBrandingProvider +{ + private IStringLocalizer _localizer; + + public BookStoreBrandingProvider(IStringLocalizer localizer) + { + _localizer = localizer; + } + + public override string AppName => _localizer["AppName"]; +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreComponentBase.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreComponentBase.cs new file mode 100644 index 0000000..3857592 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/BookStoreComponentBase.cs @@ -0,0 +1,12 @@ +using BookStore.Localization; +using Volo.Abp.AspNetCore.Components; + +namespace BookStore.Blazor.Client; + +public abstract class BookStoreComponentBase : AbpComponentBase +{ + protected BookStoreComponentBase() + { + LocalizationResource = typeof(BookStoreResource); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Navigation/BookStoreMenuContributor.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Navigation/BookStoreMenuContributor.cs new file mode 100644 index 0000000..cc71052 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Navigation/BookStoreMenuContributor.cs @@ -0,0 +1,81 @@ +using System; +using System.Threading.Tasks; +using AntDesign; +using Microsoft.Extensions.Configuration; +using BookStore.Localization; +using BookStore.Permissions; +using BookStore.MultiTenancy; +using Lsw.Abp.IdentityManagement.Blazor.AntDesignUI; +using Lsw.Abp.SettingManagement.Blazor.AntDesignUI; +using Lsw.Abp.TenantManagement.Blazor.AntDesignUI; +using Volo.Abp.Account.Localization; +using Volo.Abp.UI.Navigation; +using Volo.Abp.Authorization.Permissions; + +namespace BookStore.Blazor.Client.Navigation; + +public class BookStoreMenuContributor : IMenuContributor +{ + private readonly IConfiguration _configuration; + + public BookStoreMenuContributor(IConfiguration configuration) + { + _configuration = configuration; + } + + public async Task ConfigureMenuAsync(MenuConfigurationContext context) + { + if (context.Menu.Name == StandardMenus.Main) + { + await ConfigureMainMenuAsync(context); + } + else if (context.Menu.Name == StandardMenus.User) + { + await ConfigureUserMenuAsync(context); + } + } + + private static async Task ConfigureMainMenuAsync(MenuConfigurationContext context) + { + var l = context.GetLocalizer(); + + //Administration + var administration = context.Menu.GetAdministration(); + administration.Order = 6; + + context.Menu.AddItem(new ApplicationMenuItem( + BookStoreMenus.Home, + l["Menu:Home"], + "/", + icon: IconType.Outline.Home, + order: 1 + )); + if (MultiTenancyConsts.IsEnabled) + { + administration.SetSubItemOrder(TenantManagementMenuNames.GroupName, 1); + } + else + { + administration.TryRemoveMenuItem(TenantManagementMenuNames.GroupName); + } + + administration.SetSubItemOrder(IdentityMenuNames.GroupName, 2); + administration.SetSubItemOrder(SettingManagementMenus.GroupName, 3); + } + + private async Task ConfigureUserMenuAsync(MenuConfigurationContext context) + { + var accountStringLocalizer = context.GetLocalizer(); + var authServerUrl = _configuration["AuthServer:Authority"] ?? ""; + + context.Menu.AddItem(new ApplicationMenuItem( + "Account.Manage", + accountStringLocalizer["MyAccount"], + $"{authServerUrl.EnsureEndsWith('/')}Account/Manage", + icon: IconType.Outline.Setting, + order: 1000, + target: "_blank").RequireAuthenticated()); + + await Task.CompletedTask; + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Navigation/BookStoreMenus.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Navigation/BookStoreMenus.cs new file mode 100644 index 0000000..02cd3c0 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Navigation/BookStoreMenus.cs @@ -0,0 +1,8 @@ +namespace BookStore.Blazor.Client.Navigation; + +public class BookStoreMenus +{ + private const string Prefix = "BookStore"; + + public const string Home = Prefix + ".Home"; +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor new file mode 100644 index 0000000..93e5b20 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor @@ -0,0 +1,17 @@ +@page "/" +@inherits BookStoreComponentBase + + + +
+
+ + + + + +
+
diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor.cs new file mode 100644 index 0000000..affed1d --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor.cs @@ -0,0 +1,6 @@ +namespace BookStore.Blazor.Client.Pages; + +public partial class Index +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor.css b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor.css new file mode 100644 index 0000000..4ef771b --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Pages/Index.razor.css @@ -0,0 +1,17 @@ +/* Getting-Started */ +.card-bg-image { + pointer-events: none; + position: absolute; + width: 630px; + height: auto; + bottom: 0; + right: 0; + z-index: 1; +} +.starting-content { + position: relative; + z-index: 2; +} +/* Getting-Started End */ + +/* Write here your styles for the Index page */ \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Program.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Program.cs new file mode 100644 index 0000000..788e5ee --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Program.cs @@ -0,0 +1,23 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components.WebAssembly.Hosting; + +namespace BookStore.Blazor.Client; + +public class Program +{ + public async static Task Main(string[] args) + { + var builder = WebAssemblyHostBuilder.CreateDefault(args); + + var application = await builder.AddApplicationAsync(options => + { + options.UseAutofac(); + }); + + var host = builder.Build(); + + await application.InitializeApplicationAsync(host.Services); + + await host.RunAsync(); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Routes.razor b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Routes.razor new file mode 100644 index 0000000..7e128b7 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/Routes.razor @@ -0,0 +1,14 @@ +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Routing +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme +@using Microsoft.Extensions.Options +@using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp + + + + + + + + + + \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/_Imports.razor b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/_Imports.razor new file mode 100644 index 0000000..c882df1 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/_Imports.razor @@ -0,0 +1,16 @@ +@using System.Net.Http +@using Microsoft.AspNetCore.Components.Authorization +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.WebAssembly.Http +@using static Microsoft.AspNetCore.Components.Web.RenderMode +@using Microsoft.JSInterop +@using Volo.Abp.AspNetCore.Components +@using Volo.Abp.AspNetCore.Components.WebAssembly +@using BookStore.Blazor.Client +@using AntDesign +@using Lsw.Abp.AntDesignUI +@using Lsw.Abp.AntDesignUI.Components +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Layout +@using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Bundling \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/appsettings.Development.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/appsettings.Development.json new file mode 100644 index 0000000..0db3279 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/appsettings.Development.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/appsettings.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/appsettings.json new file mode 100644 index 0000000..249e3b7 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/appsettings.json @@ -0,0 +1,18 @@ +{ + "App": { + "SelfUrl": "https://localhost:44376" + }, + "AuthServer": { + "Authority": "https://localhost:44318", + "ClientId": "BookStore_Blazor", + "ResponseType": "code" + }, + "RemoteServices": { + "Default": { + "BaseUrl": "https://localhost:44318" + }, + "AbpAccountPublic": { + "BaseUrl": "https://localhost:44318" + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/favicon.ico b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..450151f27260563a2f6adb9a987efe4cc7b82b61 GIT binary patch literal 38078 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 literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/icon-192.png b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/icon-192.png new file mode 100644 index 0000000000000000000000000000000000000000..166f56da7612ea74df6a297154c8d281a4f28a14 GIT binary patch literal 2626 zcmV-I3cdA-P)v0A9xRwxP|bki~~&uFk>U z#P+PQh zyZ;-jwXKqnKbb6)@RaxQz@vm={%t~VbaZrdbaZrdbaeEeXj>~BG?&`J0XrqR#sSlO zg~N5iUk*15JibvlR1f^^1czzNKWvoJtc!Sj*G37QXbZ8LeD{Fzxgdv#Q{x}ytfZ5q z+^k#NaEp>zX_8~aSaZ`O%B9C&YLHb(mNtgGD&Kezd5S@&C=n~Uy1NWHM`t07VQP^MopUXki{2^#ryd94>UJMYW|(#4qV`kb7eD)Q=~NN zaVIRi@|TJ!Rni8J=5DOutQ#bEyMVr8*;HU|)MEKmVC+IOiDi9y)vz=rdtAUHW$yjt zrj3B7v(>exU=IrzC<+?AE=2vI;%fafM}#ShGDZx=0Nus5QHKdyb9pw&4>4XCpa-o?P(Gnco1CGX|U> z$f+_tA3+V~<{MU^A%eP!8R*-sD9y<>Jc7A(;aC5hVbs;kX9&Sa$JMG!W_BLFQa*hM zri__C@0i0U1X#?)Y=)>JpvTnY6^s;fu#I}K9u>OldV}m!Ch`d1Vs@v9 zb}w(!TvOmSzmMBa9gYvD4xocL2r0ds6%Hs>Z& z#7#o9PGHDmfG%JQq`O5~dt|MAQN@2wyJw_@``7Giyy(yyk(m8U*kk5$X1^;3$a3}N^Lp6hE5!#8l z#~NYHmKAs6IAe&A;bvM8OochRmXN>`D`{N$%#dZCRxp4-dJ?*3P}}T`tYa3?zz5BA zTu7uE#GsDpZ$~j9q=Zq!LYjLbZPXFILZK4?S)C-zE1(dC2d<7nO4-nSCbV#9E|E1MM|V<9>i4h?WX*r*ul1 z5#k6;po8z=fdMiVVz*h+iaTlz#WOYmU^SX5#97H~B32s-#4wk<1NTN#g?LrYieCu> zF7pbOLR;q2D#Q`^t%QcY06*X-jM+ei7%ZuanUTH#9Y%FBi*Z#22({_}3^=BboIsbg zR0#jJ>9QR8SnmtSS6x($?$}6$x+q)697#m${Z@G6Ujf=6iO^S}7P`q8DkH!IHd4lB zDzwxt3BHsPAcXFFY^Fj}(073>NL_$A%v2sUW(CRutd%{G`5ow?L`XYSO*Qu?x+Gzv zBtR}Y6`XF4xX7)Z04D+fH;TMapdQFFameUuHL34NN)r@aF4RO%x&NApeWGtr#mG~M z6sEIZS;Uj1HB1*0hh=O@0q1=Ia@L>-tETu-3n(op+97E z#&~2xggrl(LA|giII;RwBlX2^Q`B{_t}gxNL;iB11gEPC>v` zb4SJ;;BFOB!{chn>?cCeGDKuqI0+!skyWTn*k!WiPNBf=8rn;@y%( znhq%8fj2eAe?`A5mP;TE&iLEmQ^xV%-kmC-8mWao&EUK_^=GW-Y3z ksi~={si~={skwfB0gq6itke#r1ONa407*qoM6N<$g11Kq@c;k- literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/icon-512.png b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/icon-512.png new file mode 100644 index 0000000000000000000000000000000000000000..c2dd4842dc93df73c322218ee03eca142a19a338 GIT binary patch literal 6311 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 literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/bg-01.png b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/bg-01.png new file mode 100644 index 0000000000000000000000000000000000000000..ac6b323aa9572d615d559b8c4dc3c8b5507b0e65 GIT binary patch literal 27830 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%0DgFjl9gGQJQWE9+C8G;b;SMS9te zPcY83(BVp1f>k*-2Y;iX`d8`#;*|6q3M#fL@TEU1VRk*SAk_sRFckCn6a+5Zl0P=E zvN%Q>V}h+i@sKGFZ0_m2>07 zd-IHj8wS=sSIJ8R7cA^;kzl>$gRt>pLkalX+M=dY9w1y3ej>a1%YGb{r;(Zf zSP}i~0l{d5N?3J%6mWxMFi9G(;z%me?%ew7wsT#62vT6ga@N-L(>C6e3wL$TW4#Y% zW+GD}eIR2)td1VIYvjbFhMq=oAAW8l`)yOKFT{rngy{$e`@`M{M$A5*@1L%wxpn|K z8_sVB=QIc0Dvn$M<40IsPIH4nU_3Q9{;bGTr#d|VQOlK2(_$?^XcT`l`m=*h9la2K zGq_0La8xgo6VzzanJxgLE@gWc`d*&3^f`m&XiflbJCgMPI&8+4bQDT@*t{e%CWSqt zSsasjwC!vE(Dw!e{x=ACr1|3;1}xcx?lwK`?6*ZJQor6>34@ZqYA-mltSm8|dDT_) zKHjCAW8-bEK;uLNDCJk7?}Wx|4=&YCK z333g!MkUWYWO$nEP_?2lb=_gB{V}lQ-YX4p;Eoe#4%x=Ztiv#jd)o>iP}n)bctr# zg?f=YL?S^N-mpX=5UEy*In>zlsMBSi-N1DBhER6-%WMbGNVD=bFI^!G4);Pq!nC(` z1HQa3pVDDYnk+B@jgo4VjuqCHw5sUsQ&Tj-O-Zc$y~^>YJ((Qb!)3s`HOFa|M?pGKXZrQG1ZgI(E+~87Xn~QD*;j5jHyj|(asIYPwNKAs5A2}K z!Bl?g*OwAnb6J@#-n;@R$ydar1?hPTI~AhSEtJb%^n9bt%>T4Vhq=du2xxP{^P64r zK9awX4MzamptwQ@@ooqk?)&Nuj^DquCvRc+{!%|qTd7*QS}xTl)DBBAC^?!noX{z# z4uo)$soKkz^0Fi9%}b+!GU@i{u-ac)(+6d(pkMT7tT87|ZSd_}2|vl}>^ZMu;$@TJ zD*&!TX_tlfo^ge9X{v9BuD8v7Vkuj(gL1L*amc}qrdIY<)>Ol`dhbN6sDb!qmq zHgYp`>j(3ef(~R&5aU_pv5LmCfy@#-<2>4F$3rj<8x|uM6>ZJVAIbmuSooj*J>d)kl%+0*_EhHFi z_i>#%wi7maG!9pFuZDOF<`1mEiuxpWV(wis_soOSuVWGL%OV3U-%AUm_?v5VL9EFf zaytik%Bnu-9<35BzGY!n__7Y{0gxUqx!3O4T2hl`Aaj$7-pUdCPCxhr+B`AV{hz7BJ`lwBp$&Yy%_^@^g*`LcGM!Q<;rR2NIjm56}5E#*OaGx!Bku|Ea}G>gvHWjQ`VkG#vUK>E*ucfA>^dD`hM|-`czF5a zdD}<00__M7!6KN6IuCS(e!d>N)MW|fs;FOIjf;13;x$1r3P%xqGPIlI!*DC(`H{Y| zJP^O8mMkehHOa)c-W$E*l#E1>7E~mHhfYD4I94~0qf|rmhWr-Z)yUdSu zdyCFPnA3mUWKi1scFoQhV(#e>s~rfmO05Km4IiXHHd~#^Zps7GH#$=pc_rhZlh{AI zhcqOJ8DcdaGA;2S2WGl*M?!vx(4L3uZqFl+N&6^*t8Du5j*PsW$OP+_IT9l25&25A z1a;QV?TDPQ=2&J?Xqa)sX%Qpo;qC5bh6t#55f+O~%Q3cG?bQ7zF_bYMq4RVeb|v12 z

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 z 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

uCa*26FF~|Zlkjl#xEm_dJ*dY z=T#Xy&d7jEG;&A=7wUr9lYWP9@^I-=X*q?7Hb2Iw!OJ+yT3DLyl~y(ZADg8IuU_%C zl$7Ht8nvEf!c?r$x9FW>^7K9QqJ# z=+LxFjO^cmP)kKLK{+;6;--Z!U@|Tohp3`~9xodobhFS|bTMd>PIGE0eOx+_7?{XM zfOg69DTQQbn1Tp$iC%Be-!ww6VwcENsC8*PDY%EkL-qFJ?caIp`9HWj$zQ>BvH!;Z zqTP~J!Ijmdcx15`sTyP{EPF)8$r6oR89LUX8F3_dVm7#}hvRYdkIY$R;rhT&yUI48 zV?ysui&*kAGuR5huON=cJHZl2s#aB@ti}0ENxLoK#H>XXKV2!k8Lc3!RM^(z?WeAJFGgjww_z;7b{Tp7KfTxPSNM4ent7U|4BA+7qR++QDrm$dQ&pRuiqh z{3I2UM$uYc4v70!|Ga{I2=4@CIXL3`G4R#M(9Un-cykCKwLjk-pG8e(_l(+nz6X27 zE_lauGj-ygASF5c%}LMJ@9rJ^N14iQXvnJ837+*3KkyLl01h)nhS(i)j1ZZ;EW%JL ztk!k-@)6*xlO}_=>8vycrTzEqW_ejbb~|pDYF5uZjKTAcVI%p$buI3uu)2DoSRykiC$8aGQ}=k{$e+*o;xpo zQv1>G&+dBja45u7-638daMXAU6;`>>A=V&@Z|0+U${?Vwq&CX$Q-QCA_rbNp>wCW1 z5Le%yU^|9K-Hr6w1n}1gEyb%zyYju?h_re8E9QR{eDC+?lhC&Kf?HFlcP?pX=OXBf zKs%_gZ1422XFe(TA&2I08lk}KJGHhkaZPAv<&l6^jw~eC=*CH|^sDaA;Yf@2wdA_R zBf)7Ke<`56GJaGNa_G*+#TPmMiZrNO4l9{H7*BCN-}>%+e)-kz-RpsS_RV{*B?d0^ z@W->L_3o>Njc1)fwMm=K?x*y76E=9s-@g$eND4MU5g^S5yy$YJYs>6_k3PMvadB)# zOIUCXTTOD#FIb&|3A+&{|F--8czt~VUh4oSNC@A$Ti$U=>{$7g_lJ)o=FPA#4Th(5 z@xW%O&Gh&YzGEexvE?nE$Yp@^@Obp{g9ln2RoQ&c-^&`Ag{6?PC2cE^W403{K^Ur` zZIR7X5C9i$Ibxd3vmrc)Ydu(@zln!YzHNYkK?wF_?5Ts>g7wSf6tahYv-$9YQAD5s zj~=hZ?7>yR=6#M#8nd&<5D$&)l7r+|+=MPY>Qi0Y+~Ez|EI|fJTMr z4O1MOkCAY{$mTuMx;HaP_Y03POdV`i;te7L?_i@my-0d~M<)gxg4}e9Id7dZ@y1Ke ztN&mh(_WqOS`N1G__y-oH=XhOp8WjmhH!8PGe4Z?Bc+d%V ze_v(2GAs=wLa61t%d@Z|8B!g}e$_Wvww7o|#6$edGUFs5B(weE0eKd=DUFD|GD)O) z@>VG0`yQ+>y6HPx-alJu&qAS(Q=X(Yx*X~k;s*kLeC(@(NXLfx5=+Nlw1x^_f(xjz z(Sv)@?RO1om+zFq4QhqKjzai=={nz9u*=uZlyxq>5&X8&N%}}VW#)=K^RIt+y(TrjRERih9^ad3AZ%d$ ztKb>g{L*jY==?B^zc=j`{p?n%;)Cqso9*N@qz>> zr3UaSz1w!yD<<o-*rchi zi_{+-JUUj}B!JveBAfnH{W-0jyngmIn2j6zc?VKqv3C4(araveCPMF(M|%grn>b z^+<9?8y`I#!A&>_7`;Y4Wn`Yde)4j8e+5Bp8VaGlF~c6dr)--S5AB?iTFDtyJMG@; zl24AFsV*UahocNM2QAO$c(&(1e+sxt#&}sI37F3BMEz>Pc6Uibd;|{^rA=Y zKXUKWd}A4g<|-p`QE>!>W-qGdy6uQx9I_GUh4WCEIBM9nFaxd@y{sW=eC7?Gks8zLb1GmIa+?c;HA4bvpu2bHy`QR zcR}OfuAnp<03mDPFWH{VhtrmBBdjBZ2o0V{Jm2tBVOVs~x0ZkSR}df5oX(a&TeeG# zaft_Tq?;Vx%jy4vBQ*y7z2@HzR_{up4?mi)`u)QLezqcn;zJBaN_q)0$~V(!+q=!@ z0McviKt-L}IzgNR^c|(sm;3zWCVT+j{An^f5JD2SuD@t`55dMl4DahGP1P8po5;li zu@Xot^=9CM0TCdaU=)IO6y8^VA=6SK@+-==IDO(_<4pb1>Bqh3VD)+{o_0!>=@S|N zBPa}jJ$ET?dxfXnx5Eb?Wt#TjP`Qb>$;Q)OlBt(d?g8FahGN0~`2p7dIrpI}wjjJN)x? zVAcrv_&Wl|Wfs5!$@Bgg8RdxasU$Ut{Bv#+8PAg3l(Er4*Oi0>5yDEJ*Y_4#iMF&+ z!7av&7mhZ?M7w|Y=^(`bcJ^1yJ@)u-HO1@n;Y1K^EVs2!N_Y0E@-xHY+s)5CVaFCG z0eBlxRz85ss>jc!3jK#s6Zlen3xSuzwT=No3D>}K!@<6U0HY?+FpbyS>&6pQ1Ox{U zQ*_SE(OAoc$x7N^pjD17GHRs*5=Kue{?mmIkFcm6oDf*EwuU-E%SV8JPAkk1tsw{} z`tPUQHPv7Fn09_wAsXGP7%G17c__*B!(6`9F=Jhxc6%(bHh~UHaA$Br$Tty616!%B ztnwOYPGRFWh9VtGZ6aRtGLHb~CVs;VuT}Yg+oLV1_lyAGGZX8oEY9LpTyVTmATa&T zFgRN8M7!WQLRdMsblarR)=2Kl$I`VVVoVDs;>B37q|KA{cB_(o`pe4o_9~ysxtuCC zU;qyBB83|)?T?R2H_J#;p>^hf=%YG9&Ei{pX3-~l(r-w}t#aam=|bKxNW8&`Z4p3O zP$)^lmjDeifhn{teK`#cnz(bmH11Of?DB)R)oMX!|Miar7W@LH4 z^w<44;mj!jURl+`i%D1=>(9dW1Ql|{6oXceIdy5owv$(t4*)UbOAO4R+24ehs7hF=r==*aosWNATMeAeEwCtQN zo+#g!UyLr}j(jh2~h|)-@2>gHE_w!uW|9RsJFJIvG`|^o%&gUFbTVo&pT%G7H zBRS;lYYStPYxw=f{A_&oMEwd%CTSuplw4FApJwbP7+pRi7M6ag@`g$}aLn}s_iJdb zUL?`%5eVO2OFYX8eEQ#CcYpbMzwMQI3P@+OnVeoPE<2TZZuz%L3erDu1ym0g4lbNF zO+HG>uWLz4(Dl43r#CZumE%Y_#Jy59Ov|qORqTz_MdSWnC%1p+*mmDga`^?v5zE&8 zAEowIcbmcPh-Xboe}wHBR+1+d!xjDYw3G@|2C{{q6Yp&CuBoJZworOg#HzSXV!I5d zhevPJ9}CXX5@DU7YJR{0YscdVy<1tr3T0Av$%OsEx0l}RiRzP&Dt{WhLGU|eJ1(_} zDOdcil`Yex6J!`nFJUz;d`N4G{}~EnnDnef^$Rpu+U3b3kDY)`pB^!_PCg~y0rn6)Dxllc_5)(>T94_5MRTH0UR2785dlYrJr^3=f~BgB^0w;Al~Uxw!87-tP2J#3BtRW4078wFtP523F>@3(9SDq+@MP`drcFw-jI&IAOi2c3vi7+8Rny zY{^i7E+G-@X0l5i(nIwO}_+ZFHWR*Ur>HNnvq8(l{YR`nZnV z%HW2|H@0h)KOY?{yxp*=8dU1oe>}Z>LK*5c+`1-$O8IhyDE#jUWhYl4s*m*Ho0sn0 zeS#bUXGtgm)9QP2SG>an1v%0HaPvHwlYjxgr2A*0oy|;CE2be(z|jgYJ$uN{k&)e} zjv+lvaU)rbyca-|p`a*>G)Xz@kc;2Mv?spIyI``-)nOEbDvzgXkX1BW>{LyaP;a|d zH?$-4naZbP8G96T;)FI9GlBnkn7OqW2m;4q#TqiHsm<;#{Q1huH_Uvep(JD;HIIEG zueFl&&EL_s+PP0(gU6bCa5{ZNa70!)cZ%SKzqU#yt;%W`uf ztflU*q8ie$ zG4GYO*kqcu=Ijp^`@CXrhj>w%Z#hPuSphQ2#Z|YcmUt8JKS#S~aFKCeGHT<@a zlQ@}kD6$xSFKXK7A;b_4vicEH`NnBXuyC#E-l1igxwV;6UhLLp8sBPxnHu@_c9}wv zt~2j2Juu^C3{X^{@6@lh-8{A(3pxGzX%O?vO2H`Ia7mXFb-v&uS;S&OOh zt^y7a-rLN?%ac`-;e8uRUxX3$C^=J~J$TZoPJR8PJbn~n^&4={%i}aH+qE;r7kn6< zTN`_x2R7Ww`ltRBjGTFt!wINBmy`sa)542S);?$}`0IUpD|u6<(YS=7%&J=VK_hS= zT?ra1vWV1taef)*@|1Nr6GTV`9FAH}uhlRK46U9kCI0e0GYb8?sCJX*eV(?4Yy-6l zf^1x;l+ViOrbN>7_B}EGF52j^IoBvYl8HGd_Dp&5>;=$UDm_6DUrUWBmVNTls z?4Z{#$1VC$B|SBut@%Irr(BR~@hN4F^9qb`c^ePgC1ls=wE|!~U|AC%@CdV>^9o#O ze-L0(gDLZofYQEH5LSmHw-%BfX|JC<}> ztbb)aoT;Dzy}X*TZb<#2f}5~a{2y?c^aHnSP0)|~p7^GtzTev{s9VUG3g94jy;T~i zL+-iT+z6CEe(WjdXnYkwP%g|^`&4iK|u*=40XqJTFMvE4h=EOTW*CaO`Q=iKx)udqf)+Y8Dv)Oa6pYf##soJRs z!4C-h^+OK;^jU4&W4b+!}+s>gTV$$PtU7|nbxAcs6IQe(EL`>= z%a~@Kuw6_53#=(Wmo0Fut?3&smm_^k%r7R!C9A1^%xeGUSz*IxhO-|Mrfs2s?C>WW z`9n}<>O8Mb6tmv83#Z1659goDAj$2M%@^c&7aLiz$dft*zFk6ecAD##RY-O3j)!(! zJ#!q4890Rwt}fCYU|PM;fx6Xic?WuM|D*R`Ima?Fj!F%S9eUGV<%GgHCvpsxE(ttX z=1ii$)G3Yxu0US?RsOy;YyZx@9_!m{IhLE>RDO;%EHnKd=ZY9fz*#P6P{_@qkOfC~ z^a*6@UQgs&M*)yu^F*#^j4UT~E84tIrvSQqzOn|m!5&YTiTx@hoI#CHd-F3goJFYbr@Ka-3+_5eoio-99Zv4PS<0 zwA&`bh{A{uHQ4sEfYs@im)jN?UTjzrSQS_}Cegr*?`Fr#|0yz+WyhCh{x;fyM-rHm z-f!lUBZ-0ImQhFq{SDsUg-Uh>Eq3{{{HAvd6*;7(uFe{J1l=N@j_8k5cgae33<34L zX+V8U$&&K0LQ~gjF-I=N6tD`ga=JL7Y^LVn8pdqo%^=bd_xs`axd>we4^HT8*&Ug zixocl2r!=7wr>J{u_>6A`7t!>D1OKOENJR;;+~A-%Bzk?mv=L$U>CfBC$FIjJqwgZGU#t>zA+g+f=u?s5Dx8 zy~G%KqeiZMeY-NlEb8SpS7zl`_fA~cmJ;~@on9ktL{5=*{Ox`i^LOo}`Dbf$n}*!y zil9e%S!yd8+t(%cS*YF_6Pz^fJU6<21k*<6YT100Y-DetyS?xewe&V3_uz}yd4lx+ z_;XEg1$usqNvMY{#*XOReE{nLW~*wiOBc7?4v1wbY6Q?C8{j&(`d{k2_M}!qGKh7a zwWK~BywHBijRQg&+;184+dt_x34ckJ7M>Lf?y&t$FSA%j`bNmTAJdYF7DP#(u({1_ z&0uaCJo*r(8xG=l6oBgCvaG)2ui!5hM!LVRlAFBsgode_AQ>pZD)? z>y0dj5Fc!F3un2t!;5#La{Lcgyy1)7i}fwd&DdwxD5y6$iG(}9qQu!U1qIS$V+ACb zG6o(J?|75ZzS`j=Vs`H=kY79u4_e;K-GAk}d!ab?yv*y0Xf#17*C&;%{*>~N!)H|b zB{J5@pj0z35mFHUh08U4YbFb-AJVeJnduTg95^CkW(;%5gq9$u_33Tyyojlx8LzLO zs%%MpAvC8Cf7t!))9w_}Y|4`&t~Ln?4&nULIY2)>n(TL$%WKU z7C0BM8-u(j;Swr}B*S6o0d<~#z5^+-D|B|o!vu^?)_VZlL1Jl86QVGuIE|V6#4vS) zxdUm^r|BD2g^-;w7uT)yy)u=&)})sH+c#y|N^AD_IXeXMHC6dN=Y>^R$0hO>G5am{ zyh*m}u4e~fpT^pQ_9gam+f%oz!eWnxPglS8>dBt85(`o0E8=^{Y(5KlYN7xTW~{z& zJLFvYTy6#{X~JGTNHkkMaHtXuY-zJXz9jpMAoJlH)JQoAy#aj~D}Is;kBLoVe&cEP zOP18Uy3l@vI*st`p!$_qy&XUO(`;$#{lvoJ^4XUAi%j`7RlA>hY_EwcDE|`ljWsOPi33cA$Hh+bMa^?mt97sm2n!5M&H zwH)!(G+P%zEyns9B`TFx>~6Z9&7@d125Q9YE~xyPNO{tk6mLL>nt+5J{d5=%x{11J zWz^)2WkbSTv~}G_x63ODd{#Lvf9gKRm~}v$&%e$#H2#{0w@#hX%X9og%!`Wkh?0l0 za%Ecg25skmsP%KRG`jSEsim@1INVFsC&z776ryG-7lq_tBd9XX2aOpfBQ`KNzEu=( zE8@kvkZMEk=KIp|VTsAH+xSp8-7LbLFc{W!-fwu{y zRLJ}!NqmE3=Ep-Z&%wMm_U+1#EwB0Jyq*>T46?CqNP03nzqjB{r6{5jl16_6Fn1f$ zToNC#Ychv@j{S(fl>Ct0($EfRp1dQ>uJI=SgAE*k-bE#$+-#n@3zJ&Dd9iU56jm%X7|kQtYFOQ8@y z%N^Bf$|nnb{df07P}VIe?_Rz-Yc8DSJ>#%xzl)kj8@=g3-y$_g5B57s6)|%f4S)72 zz@NR*7+;vANj_X|*5z4T;D0w_#$y`FfU0A{`d(SvZ zVxQUoWcWw=+^IR-|Ew1r8gNR{E*H+0XL>~~oVQHoSg~|hwJ5#F^Il-ax)Ju5pOTn! zPIcb=en2j5{ga*_gDwoYek?e*OwDf~d#~*DNWpYL89RE=Tq5Cfyj?Su#plH)`hqQAY`yD}&X zspLJWjJg#KR*48XNOlGl*`=t^yIy#ep7h(DuSm5n><@m*-PzdZ`g4opUrmbjSZQyI zD!DqFa;@oeYy?3{D9Q0m&z0oKe~~p+S#j!U`RD>Q`O_n!-xyB+K33sk-V^Y z>580JudR9KMdLq7-pJLOJ=g^2KC{>$Ld3$WSW0&`%N^Mo(L%|X0#!^mm>8<0ZZOnI zD{!KxvA6HElGS=561MJc8Wv1EV{6sBm0V&JeoCf2CW5N7ZeAn8=+Y-8`91VDqqmyi z_I*$3x1VocRq0$U(oz~-V}^4O$K;IM8$@qnagGP}Rc=1#bf071=SEG%eCn9p$%?`n zcr0}})gDwX_ZdxHH#pHo?fsPI>!SU*iA^?Mj@Jx3C~iA(|qtoe2(AOy}J(Q zey!1)7#mzciGK^56>^5S-q6-0SfnvkgE&+>MXgNI{?7OzO)cW0YvgP1@^qy%sPsg< zZI4pPYyL*W67^#*#H{&k)yI(Vl&Zy}UFtE{qu&Ahwml4+9&6uL)4ZZEs6C1ii$u^2 zc{%3;iF60m!6>o)Pr}TF^`HmTrGp{l(C#dv+06TIgPN${yqQB`K2d7%(cxCK!{u+63ZAk&>j< zE3Y}PCqG<$WXPHOtiFrc%lp9oEvKR;3wAw5c)fS!rYw^(<4Kf2CS_m2XPyLhQsl_$ z<5!>0%0?r0xR$otF9_^^y8fr#DgN$#0haSJzk0DzO;u)dXs_}H(CPls<#cA0NRU3w z>*GBgG(wtuAntEJ=jQm5irzaaCNaKAN`+v4e({TDK+4mBPlsfO+tQE)_M&O>Q!NNw z{#FqK$3F|sQvOJ45vt@%V*ID%MsAIh3xHmW4HaxP1ro=w#xIo9O zSE%+k)KXO2)o_bV_cRGiS7jM8F4I7R3YrGOH?tF)J!aR&+3l5Ls&}Z6A2lAXEX03d zb1MlxNf9w~p{vPN+f_pVpp0@;I7k27O85^@>u>D3v8W4?4(*uMfE$g!3DtY827>qJ(m ziE-cHaqo|t6!EZoi=^o=k-@3ZtMk9g=T19Qzdry<>C>^CoXOY^WVjN?f(0T7U$R{Q zN1&51#B#9-i|?#&Q4ocEK$fE?_%m&APpx1a8L3&dRHW5tW-%GN02*@`--hX`l@@_L z`E}HFxhaxIhoLLx;#9V`^$u>Y?xdHISe$qJ7_mL=7mdOO8dbGMo&fXF=ZN#8E+vis ze?Gc4d!tqH+mAa}l6=ZK5=b_q!GR(rS<#0qxZ3B34}P!93S8cS99}UczgkvG_Uhn? zS!)%=Rqb^SUrE^FI&pT)&yRj34}@D~VPVzeWvC!i+-i0MS}+D{;T3EMv>a68Eoahw zigMGzY$A08JL!>z@OQpYx=~H<4qt)OhnlA^OvHT<ueq-MrrsvASGqqo0!w#1LPH(FP8ajYz< zl_L;MKrn@4RXfIlA`YvNA58c=vw63J(Eq8U%ZqxlrOj+XE-?C>ZhvB-vdyegI&gKC zE7bEsM!!A4$h17QA|wT^xuG33qz>rEu_RfK7-X>0rK_j)`Ka?RBRd@~{R$O1vZB&- zInIlXG}5jO1(o#=y^#`n&Nav#!Xz!mB5uI|=`I98d!5xpOFp< z@2`4YbySvT+mkmIk)qIFweq4|Wpz5)(rc?pPgbe;VQTD{u&Z*C+)edQkB>t0s)ES6 z*#(Qls&dBaSOr*%kT?H+J+;gvG>4xLp#%p@(aJ>oDIy>{8}g=!Af}k z(ax(-T+4;S84PlMt&huMl%uzwKam?waOAx$j)(?~Hn3=~!f}cvYQT@kQ70^>d*+!c z?fW-J#;9kJvy%s8JDiH#Bdg{jG|x;LK_XTY?6{NuccVOMvjiL z1)gj2y20Ku-VsXFavi}&urA!{?dz@wK{?l0IwjIIzw=vBD>mUZ1DVbZV5*O3EB1@voc@XSuqL%x-eP0& z*ptPqnu&F{i0Ry%`hh;zq^9i)+lritA@DLCEapS{@+kGk4i;QH&iMbWPG zFu%ESGdAe+*(pFZh6i3zT!tRfd-#SwOCDxeneH87M@N{iYV*2gY}SzrpG%>>0+o`f zK&PN=+k|h31bh`9bm7fx+Vweg#9#!{X~88&3}$4W7PbH3+#8sA{mnQetvtg4*yq-Z zo7Lbrs~iz25WA_L5rhnL60sy}0Qg#{$YhcFbD*rmZLCQ^Y5l^?M`kg}kuIKWSYM$1gjgzZwwJW9L z=TyB{ViZkxew3p$1^G7TS?uo#@{SN8NIoFPdihRyv>pWyDY6*2bWW?lIs<8tH&`m2 zX+X}JOf^>I$!yRcEg6GqFRCS~%5=@ip^K$vKQx5-dqm(Qc8EIm@>3K$vFp=v^Pij& z+&|3&=`$$pd8=*ZCGrA^k8DK<-(sGu)>+;?>|3mw2>K264Gp4BD7MPHFf%*&EGUMY zMV)h489k~{b2`hHX$YxMBf)&FY;^^OayPs+7)F9&Nw&F5D6BnDoQIO*6aZSh;n#5= zSF0BJ@V|eF3oeEfSdOT2WE7lMd98lqYK>Tx{QG!++xf{t+UPE&7qSM?1+=)Cwyq(B zM5)r;H>n06mvpUZEJhy?GARvckSD9cZNJ3It7BO4x-BjC)#Y+}jnp$R?&2iDb84li zfOq!Qm1=Mp4e}#e`l;r?p!!Y0Teb;V*jYP5xgQc~oDvrYN18N|_n&h0bhJk>Uj^;S zv@7^okDig0o7_EU3me-^-2QbmZ~1HW@7>1fK#-GT!`ifurDt#r<$GMTL#Cj=sa!cm z%gbABsFSJV)SG#<)h+L@!iej6z~Rm1^~={EOx}3vu|q|30bl ztLmuVb_`^fEz7oa-RZWp8fz*9^xrutBfNL6o~ENI$*V5y6C!i;hf2)2y)&OPlkutn{yll-MV(7Pn%5?@=bii`eFT0xdr#eP`N2gc*8YFKHUMP zPK-Mwv518!H9gqaRu#*jbmXm$V3*(*M)~^_%j^VmRav*h-)(P-yJ1$DeIm=)2~i406nhp&`f=nfw5E)Ch_8fG+AjTt z7!%8A%|kq`zyqF;qv<ebY|Y0!_(B&eHq7(l3-}eC-?TKTbL`0n1_KSfd%2- zx#co~p4W$w!z|*qjof}BKcc{<(>h@qHbGoJVfI-SJ(H6bQ8-Nk9BJD?n%C~nc(u9X z{+Hv(e4n|}Bl}&|)yZG?1tl*oo~qw3juAQGUfAmI_1Ie?M73N_@7>Iu*wMwQm9u_;>ZGKZnm;Wco#l|tY^<+9+>-OHr|=yi#T+C zBAbwMFta2rhcNwn^<+zCw0c_MybvgP4Z4mQn6MO#u8(&r5N~G@y;S$f_JldIbutZr zdQs)Ntf_2PGWM^+$$Wc)nqp-_cO(!{1?__CnHBI+1;O=~?L82X4>-hi@}rMy?n zm&jGom@@4py%;9*ef%c>{L7SB;vWy#-o}`h4Oh2s;6==yEHx*7sfB)q)4FN(5m z76L)86offDn^T!zjw}J`e|N^iw`E2{Pr*xW5gfaEloJ!7*K%&TgUo*V66=&uw$;)4 zdykVKK3PyK%Kbt}?sm!4QMCY*tZRRtb)kjyw9Ezhn{l!wY{M%>%%B~$y?g8nLixhe zq#?SD{y)`88=qs#Q9(q>+K731*zF2JMn>H$TV$dGL3*yGg0vykx-TNPEkz}-J#K%w zBasIfk5p`1Q{E(~5aI~uMN*mNGi;Q>R4S*}6%16ra~s+hBpRH5R-a1CT~gT(+r4ZU z({t~ee`#rW)-um)3fIzS0Vm58_@jT^<8xOBnyb0~N)CW#LHkt^sXHQo?N<^X1mBma z*Z5JN#aqR$vlOX+8&l>6WL=W-C2M0w&|Wp3xhnTX*~$sr&$LohY|7b8+miZ&BNY7; zO6-C=N;E*T7w2Qz--Z8EVggAo!snm-&ZqoKf+XcWDEMS>&Q};hW_%gMY4dbgeNrWb z@PzV`B8;0eGMC|4Z7d<=-MK+9|6zk%Wwd6e#6MVIhQD?;Kg>dNm?Wz^lL!-6p8r_Q zK+N^~y&^X7Fg3uD#EZui%M`$?ILDa)6%J#)_Xd?4xp%rOFW19%U0nl<==chE*`EZ# z)}xV6f#=`oT2E%+)-?-)5rk$kbxdWs5&R)>@{5?yA$}IkRdW#zF}tzQyCH*;% z?p?9o$`CQmk-Va^j#g#`_~U+;i${N6_G9WTyK0dvm@*ju`LI3?`XMI0g(}G3ZSK}Q z_GFs{KP@z!*v)>5o=;RKfq-FhE{q8HlW7~6SXAW_;NmwtpCHH_SB`4RqN6jO?}R~S zpdr1Y0;sGRw0T*srl9McDiobI;z?&qNZR^2(4}}b_gBt+mRG!o&t;X~v6bX4uSMM? zg`12_Md3o)0t!T^`Z%uv$0b`Y%Z*c+950tXSa--cC{Q6cZ9E8DB~BoKr^hO%^O}gmp&qysohT!;}_kmIf7T77;s2B|a zs?hyG;CtY0sC&_Ry!0Ssc1O)TmLh^vh6+_I8B@1C*iWIt^ndW6%SB2taOWR$B2sQD zjVnruf=z=zE1xcMRga(C?>>7V+kEBs-tXi{AKFOC{)8NO3hSZ}97A8{;~x_n8|-|?GWtIGOi{%-}dS8X*R zlZJ&r1(jvAUi67-HOBCNld4E&(SY+R_1zV z1`H@Y?>HX=j-G|lb$q4sZF6(6^~^dI>hX)<8pNb1Y)WyqrpAxNTt~;X^Fw|q$mi%& zet{jO@{VHKnClWyEZF%feoSS1IlB0W+aI`ivp8TA=i6_j!6Jev=Ghq#uG@?fTBiZ2=8pb$&m!E_$*?Jn7!kC zv$oIQ)B1A{e0BHF?6(hcl_J8IFVS=tD+L@>|K^zB%hofdYN`lGXD4MSiTMTh^{4F- zQ#= zqhQg~KB!Xb=v_38anstSqw)A}-GZbQ0nseoYsLgL-ddO%T<#rX3RTZ4MXtJl-w(X# z%!--jYa+3zZp*kf1!cUgIid;Qp!dx^rxM;@=o@Tl@Y?z8=QL46*9a`>x<^KBf3_$} zZE|E>y=pOC@G7x|aZiPosz4U}-h=#$4{sU{e^&q#@i%K^XW?!jY=Hf1c#maZ-qx&^ z?b-?Hla+Byo3pF3$Pf_0V~V3P{|309&GKI<`jGsu7GV0Df0=``e}!5}wi@8Yng!4m zr}^KiT0xj^Rlwu%5%!LBQWNY-s$G8FcR!=2 z=0z+8zSSINMkw#fV9KpSni{9PjsqkAY`N@=R(2)6fx0>jo#n$v7v~Bya2gVpCd(;tSbWr!;@oOSkgdm2ID+ZN|A%+hEMukG|7;b zF3Yx|C$71H8Mrw8nDfRivLGc}bG$}zXo?)^X>M2D)N8W%DpA1-st*Sr2SDt3{S z8+acMnJ|5Ny#WGPNzv*GeQw0r?l^*PfT^F@ak9X|5>unPU!xw zMQO1nD3wA0IJ+Eq5iUanycAwwhMciw0X)WTbptP>(04Le_ikj?1(sDRMmid^a+HD1 zn7K=0x+lfAI;0No6R)EqZ{4F5y}VJ?S3ShH36r-)%AF4lhe@ zYZByJ-qujAlFG1@v#Q1J7UA3ZK3bIYAS*8QkYT=Bj*TRg;AuW7au+p_gW;5sI1lI0}`Nb7sMH*fSUtGgZQE=6=)>^Gl;d~d(pVE?oFA4K{5oPs-SWr7exhM(r= zJm}=DrUp>uYn9Q&Scc}SBFeRhoWzWW+jn+f#|?ya?{?M5*df09OvV(ufTNP@3q%pK zqD8weZ=wh%ckhqXs0zM@c0<6}Lyv(RaR(tvf*4DqMC1n9ml<}Jl|nt|Y3R9bL9pQJ z8RvnYcVN9@nX};e2lARyXT86RQki03p4P8#dhU%aum3$;j&djz7PEd4d44krYS!i* zQq?{?d%A69zHSkd(blZ*dQfjvwfEp`hE+nX6g10vcW-5SV_R12H+EarZ=K`q-!*9K z??1ptEgWE1x@4^;s%GxEool+){Ks+XAQ$jB3yc?+DCRb2L0V^aZe z0e>->Wq%dnjY<7#%#RjNuh06#SYAVZGCe`w-Oi>m1pyv{u!=(e*vMgc-`JSm`q@#) zN1yEQh)-iw=1XIv2FujkB(rNzbzxk&F@ilG@b-Z+5QedCEQy6_y|>}Bg zdlspCf}JGf0Li$ra?V&b;4P86?yvYNepa2hlJ? z{KB~oy(_OX^JxgMGejH*jf)@|%sYp!C3`j#!(Q`qUPc3MKHjWv3`zG$OeJoWZh^s2 z1vQaV-dk!uZhhLOP%Mf~!H{G(qfMedpRO@v8d^=3lCe>0D)hB--{&9QY;EA(Nn%FN z)FW|iN|LdYZHWY=q1f%ft8aH@!&gl>m#*aLJrRVf zKdE*C*umv>&%$)=S+txBI2a%^&gAsx!eH+wwU7G;EI3{1YLJ;gf*KHUR{x6`AK@u4 z6ic)nepMoPe3bAH3O2>#Gy(ONX(bi%LMd|Q6Ul5387}wfm7iH>q2{k>NHWv=S08?= zX5sn@w81|RlGke8@~zc(5F=X_gD6!U;^9XO^mX+sWJUDfs#pC-Eaf5{Sg)!%>}aIajN7S1AJC zD@;zv$02%`$@8Vds2J+uK0MhGPi4Ay%qvVO9YCN~r!jjX6VM2_@YcvGeJ8?D1G2az z&}=1L3t5rOHTM$jBk%g5v}U(#Wqycq*hK{AMvS$Lbk;P!stQo?8D9(A4yKgvy4c zQQ~Q>^y&;qk+l%I*gJO}_!9Gd!-29QG-#^#?nKKW=`=4oGdyjxE!4fF6Wr18=f`X0 z77+vv$UYz(ofarwR}XuNZ(5Fa8&3~KxRe(hiIHRkhM-4?zi}Yaxz&yQ`n%t* zm&d zl)coVN#|`{wp!#64V^H0$k(>IE@yT{v&`X_Mf5I@wbR}ZB)PfE-`_SYDEV~7I@E7l!K&#(Nk1%{ zJV9ZptE=xqcJ6`B0U-MMQf6V^C|~pd<9{s8|k?XqHbk!6srW^ooUk_0*pn`-!kHLrlqw2YY z;(wwSiW*Tlqefx}E23MV*Y)lfpd}#)7FNxWpyYDHH&*d=vDj%Q z)8fp03C$VY&#(NMB`lA8JfxRiH*@ifE~L;*`L8Y<=YR}i1>Q-SLvMd?ixZ_m{=7IH zdsRYy>$goE>Bhdq{_WAZTcU^)VEuvdGY@Na)rcZwFi(?;5v$Pyx<)nMG#$|%_Ck=< z0ky8DiIc}R;;=7|{Yx~F;sSasxb99_qv}%oI|+5&2w;D+SStn8?w>?!(+NWq#5h&l zv5isF+WgA9;Np3}h7A#+NKdcdf20(?$WjCB$ld=t-Co1L>SDJSqGI!G0AX~Ql{=}` z^_fn!mJ|NO@SXJw#ANYF(@klK-P^0OH9paHVRu`Gdp0@a^#)o2E78_fe^L`Pvo=IW zV~^gR+R(4eK3$$7hh-YolEY71>1a43YMFGO8eSGdZBc0rq%r1EDv`#*Xe`Vhfb97P zU&h5o{kZ<=F593+P4)LCG^evdeDd-_SO0Q&LUMx#HdxTr%c^m5udW{2I!9 zz#^y61)*s{?cZ*gHYMr5_Kq#Y%kGcZJN4b}-;YCgb7^94w7)C~+Pw%LbG=kzeZN1g zp)ek*hg193>A2HJU~4hFn5O+#h-#_JP!A!1^l*fAV2F&*Ro`C7QOgm1xZWhfu1p-q zx~^!S$z%;N;!CT2M(s8UY=F`&!k= zq$Nzb-pg)!BFg>c@1d-e>oVUqkmzplmp4k%QxRf3wP*(|593 zTn&465fgwZA=#IHosHF52Xc!33v3bhKy zUq1nDUg&v6#c{?-oaVJQ4-O{2#qhs5LH-w0lgMZHm8Y+7##PWvl_~$& z{3%6LZ0MlO+G&iR9NW#C850{_h@p`@m5r=J2d0)HWs>Ux1M78JB@zgo3UF8)j+U~< z@xCK!)brFSMT_sqjJA{Ep@tVP#1s!A^{SCc@CV{KX6$36pJ*30{gQ)T} zLmST?7P86=P>72+zK&*7R8z+A4woY8kA_5$7G0?F>#gp)LJ5L0`E(yBXT-1J-M(qt zC7)ATyN*YLkC2tOzQZf1Ow?XO%aMIdy57@JESeF(B+MV2GS?mpkk<%ayK*}V>^;@# zZmr#zYdfN|`n4q_cJX`pfDoWUg$xVrp=jqdYM={*8~dwaW^p3ynn#mggWqK@`hB)7xHlcG5gW$U4t~9 zR~@Kfj?3;5{ptb4w9V@c;LkzT)YhG7i0fcEJBw_j<{P}O53+1l2o^_zQHR*R6awdq z6cfGi#vX{d_n3zqt^%pJQjd9aR=z5MtPszQ$A5-e!&FHvnVgqXk|7^~nn3yCbfu6O z=g=d8M+epebgZ|1M!FnMv*&}r&K?QS%zSPD;t;mysXsnC(T#Nttuh-bN^uoOAz9=^ z5wM>Z>jKGwQ?axymf+zh#DJ#i4iZH)tUgP7g^UvCaNEyr`@ChK`a*@#ov#ygG0gN| zja~j5BFrcLoql>4vo~upuxp^1m8Wfqk|A~r%s(VFWqTa)_gkL=dxsRHU|OPa9%>PN zI)^rj!iKOUz4wu(-&Ivm`gH>jNCHI7Ko(?B>*RG}s8KbJ>%qVf{gCy1Fa_}~8p~9{ z2fqq$ITJ%I^OMpw!NbHbqgsjQoCEi|^L_7K@k1U33!@O-=vp_A{@=GN*RT=i0ih>V zS3*!P<+ek*_C`NTIQGl(`a+Yz#M0-eHp|l$)gv`dseX%?glE#<5t4zsY8Ekl+)~Lo z?q@TuJDvZjM}iSEmBTqH!Nsfo%$|261tEOEhxee@sWGbs9Kb8MWcwV(D!As_5+QcX zGBfV1;AFJ`Isjg*o?nb#B**Va6~Ln2YnDQN1!4%Ch#8@$Ne(_poLfG8fD>^IC9O(~ z<^GLTOeZYH*5r+=V@MF~$XEw7BNJXALC_p$Y${|jC`uiTOUgt8BSV2W9|P7nsru-5 zaH~p~u=49R2A+{3zXvngaAC^#uzPoU9Bi)$!dJNSFrJV6t!2>;#J~-bC=y`pz{zdM zx1#oQIiT6U58(K3Mr}zSnXsOSdlc`r>`{*P5DdMJ=3^90o5V{5RH`?yF%~p>ub>>M zQwA88|6MQ`NbE-bX!SOQT_N$FzK?nPswu32#$frkmXf(zDg9}E*N<0o>!0*Uo9P0@ zj}>J8bqK1(&ae>DH08hFu@Qs(Us>!_jPS2|*oj2{fuza(;gihkxeqjcd_C#o_tn@l zme_K4dASFrF&pCxyPnoEJwGcYTU;0`S`|zf#fI!~PJ6b%aX8HZ^$AY%pF1MvGEM-- zL1Wpp5({joM|F->uX-dzF{B7G7zsbtb^2ke}Y1>GCr@zY!8Mn*n~*O?!6@clR4EF7;dHEt+oXIYJBk zY%q1qjf$(acT160uX{Kl=Xm>U@$S#Du{he+ zZoC2*N99;8Ar6(``oK?Z{`!@Y0He;|i2<5tnqH{4su)sa_*9}MK-ggBV(%c;2QnV3 zt0QP_4qYJt+`ezQpT_K(9=TCR!Er(DOfOIv_J9h%_a(wmT_y0J{$ypT^BqG#1l*N< z!8%qZX6DmPcIjLz0FuBtfnBH$=64Y^1 zkIocDvU{5mv8|G_+UHCoI6Kkg}|#=(d*WGVxW0^`;mBk0LlA%BVBzn3Z91_ zu#Mi^GD|_b*H7IRW5QBmv4Ar+87vyuZ9ZBL7AOT?<6`nKE1lc{=H8;hs24GA9#2Ts zbc88eM3ErNSx9IPETH~0f47z2H1XE=3MbDUHAy8Az5og!1gAx<^RpF@*2=N?nAvzH z;}J0yF|6hK$wM--SjG+yZ={C9->8oBqngsew8$D|Eg~H_Ow_!VI;g0!OPBdG3@9Vg zE-$n-yUG~{YRqv=rb%#Qv~;1pd8ep)P)#|~v}PzH$uK=Vt-DCQnr=C_o-6O8T%>^$ z&q3siXfW}|xU#lik+X%QK>oZE&&LH)Q8Psz#yQ75&5t_1J{d|EfE}lGhek+2&b4$Xu&=Z+)6%`#4lz^74&K1# z0ZDWD?M(ZP29=UEBWHEJVmALv2w@NFUP}p}6HMcGWJ$+P{^~t?(B&O57H<>x54AX3 zrBnRlc}8x>@aGEpvF!10mW2Ll+N$;m{EjwJKZVno}Z~sPe9BUXY#xG(FDi!sOb;ciG-!z22gT+^E8v4$hU2 z`&=n)G&Xbf` z0jo!Hln1N0utrqZAQ8j|4#~fKGR8oTKegL6k;J2ske~6JPoo_^Acqs2Tn|gPRwa;au?f-FE}qXm z%lP^aFw5%Ce7zgY+#1e}Njg}5u2LeS`|pZTJGHykWAK4LnttGRw$@)%)@nQGdXwrl z$sarThw?bg^hKRrn27rkETy1pQe$w`DAFSnT3q8ph8BB~TN`MXiS+p6Lmn;p@V3AG zYzwRYIq(5!4p4V8*~96VhOoup{`BN!qh?O9Qa2}yi5~gIZ4T9vM0)3gXJeV82xF19 z`c1jGK3=n~dV_c8$A_ce=_1Bnnp$r0NzO&G6t(G{ZxQVL(wW=X7!&FU*uJ6DNj>{rhv!wL6JFYlu|eD*=Kdss zezFd^{Ek)$>4fDTM@WP{n6QPRP5Qnt5k8RZ`>1ga1m`5`iifb`hofgzWODO~bZvi) zGkNv=k4JUiGFIRGjwKw}RLv{N`aDje^80T1$_zc;V?rHAov*es8+7tvgxl2s)C}NZ z6L^Rb1RsT9#@x@(Lw1T+$I<9AX^wx!^JMPy>%*Ml{Se&uj2P?D)}Q?lgr9x_1qgyI z)vJ^)lQ{R6!i0VZ-h`K11?|*z2jW@AqC^cf%15Esv5Tz+M}8vzucL#Jl~l_`2o9B5 z*_3Or+Wu$dpggxQnp@$`6Qh|Sj8(+aCJWfwu4hKUc^d<_Ek@2+vG$NZn`ua)8x9w! z<9F?phmRwa)~@XH&o4k8Hvn?MLjY&smkWRCZf?N*)lo5~B6DgAI%$yPs+T$a=%Aft z5!s@CDbXmzd(+UiPWVaX6-;H;(>KP1Ur`Iinzl5Z@Vt|;Oi*7^=l;5n^oOX6td_u@|J5RhZ`}`8fWsaACVbDAuX5v&sJJ=j}YjX>ncuJ)WmJz3fMNtM11PM9zet9u+&d_{iG+&rB$w{1Ha{ z)1gmRI>w*ZWEV8-oIk6>`pLjFh?jBt=0Dxf|0gZH!E7MC{dqV;^*<$xL8D(oM$!UC zGeDR$B=OcMXU*23{Sm!)aK38~M}hM$T@!~OW6PmUumtwu;LO~v=L>Cwk0wl$md;%G%1pmS_Z zjSjzvr=t@~U85rT16nFy-CU)xD=b`5HLgZYM0qpdRkwlYy`zkIATk2GqsTNJ5mfW$ zxGtg&x0mJ#i{sF~oWzueY`lBd;HuE>I}k`duUIo|~n9)y`6KW`o?z?IE?|8ZW% zyBv=OeaDPf^%3u1wXlEwyue&)a}z6TVYqSP+20%6MvST{3yy>kL9PGQ0`QF(-||YI zO@gO6G$S~u_i&K=tRKj(X)nU;Ni70mc@p=JgAXIgaiZVhyGso6e@wYWUu$#C) zIxBu1oDLAtK2ow9n|ND+W7~L@+XeqU*0Mb|5okD)711` zh%$GI?{&B5{Rs^ZkOZ}O3;O@4d!+df@*=O|fgd9OIWP$vkMUu%WZ3xZMd9$h=bTjN z=ARw&1hapklRBK+=1K1)WIwl47@;xMcvN6lz3K|Xb>1uVN|$@+W=>TU$SnXYq~$Wi zG6zv47>32!cq?*Dv3={zee=vmH8EfITep2_b{Dm?B0E`ot=7gn&cYBb#R)>VYc-E0 z$|wNN=+7PkV! zb9p%#$fpXw$Il=lA2$bluk$Z^`ZQDqa5~S;uF!6D3k*pmZ-_tEr6ovp94DU0dRb~9a94S;Sj;3>@1~3DtGPSW&T-T$( z`5<e1HkHcBn!BD)Z=gEw?RX|dO0&e)U?qFOD)B2y2m0!}d}ee)+Y^FN6{p4Jmd7FSyPV8u1QgOdk=ZtR((Ev| zNWP&OIO~dk=d!|IEnJ~GR-M!8-S(+n7&0O{`I8sz)p$^M?C|stWamAL&9jW~ditDG z0;(?y#wJqhT-oaQci5{=9|LD6bt9asoN`4?$kfa}UvWVm=g;O^_{Zkf#2Ec|Y)?F_ zU%+QGpWDL3mu6#FZqJ9K6Akpv!yH~J^=>; z4(DJ?lU@y+P7HA{c^DGTY|+e6fO1df#(@2+UaEEIRQZ&JY{wGCTp08z=M=!K$waHX z7bcN3cB#&+o5?(_A~+lppNVoe&tfDUOD2_;8uf77Gh`x7ofxm-eWfvR{pMCl(aJJVi^tt2V zgv_=X>6|H@Lix=kwgrCyrx=@Gb-mIHEKCjJ3*-)%4*2Ys8;^Ke+cgWUEhtLZBr}=`!$J!EKo-xu8f1I|s|t5Z^?;$F zz~a2w1?Z00d9q%OkxNNg;PvLy1MvuJA)FOjnZ~PN&IZ0k8i-<7m7rMv1uo%ZBBeiC zq6-UJ*dLE=^gg{l|9N@y+~^NKKDmt}9O$H)f~P)M@AJ?vrYn_J%9-8}M7IL~4J-elY)!l>%->aMF{O#VECM z`d^{F;c3m;NAQct#7?2M+U*Jt%-eUbm~wv|Lsw~4S`fHVpSbLqP)jo=FU50GddXqE z`wn!Esh-KRqlSCG0~$_AcaArn+WoLJW2m)3+e&Sq6=A)F5fSb~D_Fd3?QF~xNesc+ z*wpZe#U1Y(O|M4nx13uZw&t5>i*x{Od4K>6OJh+%M}((uDrpv>uY9WH#?Y)kD;rr} zUL+F3!$&h11DXG6ZcxgET&DZ1%|53pTDsj~sRAdzWoNU|X77 zug#Kb!NtC(uX*k`=uiLfwAq$O<9g#qVXJbT`pJQ&m~Du)P%bxJ zxh?hoA28y#Grkpy?Pu;h2d0BA7~1*%tLMPw&luVCWclPhDR*I#EuNLEj_jJ?L#RTE zWRpv+JBx6Tp6#B6ZTOJewE}uP>9d)X1-H#(e-Hiwb0c4f^=^Y~*RY<7S@;Od9_*IL zhZDVQ^Rs3IT_Yp;s|&nqjJO?ZS^Xa9w-MypYMnFfDlC*(YaoMT9QL)L-t~^hZTk2v z!b!#*P$Jza=a7h7e!=y&uKOs$8bYGQG?cm8dqEL<0jXIjtFYPS>azK!uwswiq zrt8%RAq#0d@w#Zl3@bg{rN&rk_llh5FLI&3@zvRzFQZ9Li?Z78`ON6OiEV2LF$Dbe zFFb0_xz3#?RiaZT`T}hM(%?k6_r$iV)S+@Xmo#dwBD7i!s}N1c0la|E%l{OCx3xYt zM=lbEVRE#mWNG62jO~n3Mjnh`guYNTuPC67)t+~WP*^IQmJgT~`FeVHxllVEh$wSO z^G}}~y^V%)rT89woQiT!G6wL{c^?mq7Xg}qbI4P{fEg&6m;l2vr691FdJo~S5&aBD# zkYh!64fEKkY;j_UK!N#!6xXvmiKe&brN;O!0v*Vbx`uB)UU{_%k+UorQAWF3+PDfe>SGYLKyM*TeX$YmZ>E-7 z40(Nub3CI@?#V^@N56hOusPi#9Q<&9dA0$LWgb?0wnO477Som;zG_1<$rX$~HT}ge;)&yx zUouR>(V780rM4gOCYD&qiD=%dYtuEaFP?ku{hyxmzd#)NpO5XX(%&+nX?9&%(QFC1 z%#I7^X5Xktc=JOw&}B#8+kUZQ_Oa`Vey6}lx;OZ-$bzj%-ir?}g?<#GX9NZW$*aYS z=;SA_VK2knsvOonJp(l4sq297C5rQyncuJEY>SzKOI+b+LY#2ER#NYR_l&6{vHGc_ z*&6fus0IZqZb<$spm6d~Qe@tXE19#Hm_zS2U`*b$*CzDvXYS5FP+#^o}qTJzx& zrsmV%*GO@o$WHWGx;&ULNLzNN14IlreoCIgSHK80!B}V@ycg!>a*oE0Zs6)u)U4TV zq`GSBj?GFdZ+iQMo^2z52aKv@SF=%oI{Vs* z5|$mwM1zN9UIVMlSm3}a zYu()hhp+thWOdsk`KqZf0?Q)i^!f#%YO7{M_dkO*I2J_$|B`tyB}e15^5P&00AvSA zK@Jqag#PpWUXOK}Q#&V&_&_e*RoB3PLg+gsIQHw&{l6rK4&Od#xt8*J?!|u$@?M8u zgI(A9$G8-x-QKx7A^k-9v4GpQ6_SZ}q{4ngqANj$!m|D2c=A%RI9qi_)cm;!H?k(*#Js zIF3p4WE=t3NWwiQ){*(-bf?uSUvhRL%ZWhV_46eOxp4$T6ijd>zm%+HD2EqHZQyI! z2)VFx!|UuBX;vYw5VAXe`u0t!oy{}%PC4Bsxe8F1%A+Bgy0h+z?0OY7MO_g9P+F*H z0UN+TAP4Y_PxEcQX%M-*4j52AY}8ZE7Lx%+1lv-Ym2x}U2sW+lKnYk-p!2k`Ulb~^ zM%Yp=%ogdAaBR9SJRp}l1tFGlf!;_d3z3@K0yd{4eJ;!k_c<_(fu>?eMS#^ZhqNNN zXg(-OV1%E*hC5IY=s6I{TL+-RX zUmp|NGV>3Z^1Admg6~$+*j=Vz&86{Bx$BOj$4WFCHe%|cE3|m4z2K1IJ|dbew%v*d3Wn`LSz%vir`&Hu_51rFwgMk6LWHH3{u(8ze+V$aLxH z>GkogWcgCqFQ*y!eF59`v?MCC_H=wy(;aF#977vQjUXiO)Gu@fAU%8df{0hUrh!9? z35aUhUnf0jjNjT;w{4!nFiCj{p*C(AV}1uc<(%nvpGEkam`8j@AyA*89wpdZyRpt@S3TQP} z(zB#k(gm;Fb7u%jq~6kNaI(INjFr$jdB5tDvS>j(lQGIGeT95%Q~G{duD~3Xqo4?V z9DA)=ja%K;jPCKdlJi-;&oFI3*Jt^kKvMbG(Pgxgmq`B!Wyafhh=<(aSkVq-Mgk$_^!p@;rYaZu24&) z3k^0aJ(;V!Gy}3$)}VmQo!bR}px9Qt`K~cOs25m=9jUz{&{)1Imx$ESkQNQJ_CK=_Q(Y!mqJb z{`?~;oHhs{s+~~3B!}lholoaR3x z1^01|VGjXn;ay_~iqC6*V=y~tz@UlSCsGWK>hU@f<9a@<&{YN2fUN1DbJ5M zkI7z2bdK*S0?#kYrY&E56315N3?%kBh^VcX&iPfw7X#afPGYPh-<;>Fj9`w{uK7yw z7SXjNhcy_gfwjuUb}0057l^V$H?V{|q>Gg6$oahq+{tyUq1FW#FMfR#kgF<@yO8TR zWQVuWKu=5Czm+%ZksrzQ4)D6%VF~S1{EVO#kBZ{O~R*D%=ZP{HwF&H;R$Mx^I1RJ+KCYyI}I~NH( zW0-%~;{nCHp!I>o>6=Fs!-#PDY4^x{MK7r3hIrv{N+=lRJDo7KaSo5s>ETseXi`A2 z)gY&FomC~&z3PH6u)48XLJ&o=UTk7q&>;e~}}Z|(UXZ=NGEX`z0t_S!aG@5WJ)PQXkiPo*RQ?K}&~ zy@X=M_O023kpgd4$O=vRG-8Sz7#f!7yghhZv`QoBTG6?xdP3zSx^EjE< zSFHEoeEmVSUA0&#W!iMlqG#)cTQI;Lo=$7pFU>qhpF11-Kfsb}#y9b^W(*@c7X&7x zH;>9i5?%Kk74U5wx0f8BaFnI=;S#jq^Pub!4ba1n0BXR5WK}oY~*wWki6oU_-U;h!iYc!&l67mCF00RA zEuB~cOphCXzWS&KC+CkosmTl%i%|wMNJH;rQ?2{5Hxu%qJaKXyMzHXt5F)k>70zj8=#NAN-Xn^CdbD?plL2I zuzNUXp`Tmg|C=e-5f2{zux%$*i`V&E5aWpTk$vVE@{MS2tO2f4j-nh}!l+U9Ab_7x zuV^}gY)Pcs)?Q#eXESYq=;Ab!8qS9ARzQnksA@aRWxBnZPTJPeLF`K&&|Mw)2Z~p^ zn#Z}w4p*YVqlP)yH|Xc`bYSuHl$nY?0}gT!eeukzu3Q}^7o&aI<>4}PR4#nTMeK6s z99)-;%GSD`>jYvKJ=ox^pZ{b_H4Cm*-&TLO9nN+v5n16GE!fa6e+A3+Aw54;b!28l zys$p_>ic%E2)PLAa{uUZ1ZI8Hnr}EjvO8B-DN-3Lb%ZsLy3;(EvpB)+KSf@K^(?gfuFE2NU3)ojyz( zIGQFlT{FHQX_ZRY3X(ePU&9w!nyJTiNi^)leR7PqMHM4S-WJ5{5G2~@AL^Xx>bbmk z?WtV0S?FUS4qmcES#y9sbOKc{6dP3vLyx@wnkn-jm3OFOHVc(*RYfFg-P97VuO{oZ zu;d=4$+&9E~<;$~xX5Si&8BS}Aq~By)v^2CPoL71foL@p9G-t>onX-7Z zoU_f;9W`rqK|}%0b*bCLBWp(tL+j~}AmC7`X?A~lh`03&$kl&*-@tKB z?%>x?w+D2782~i@W{cLJ(7R4Q_xCWe_^DsR&e%^&m&6EczW109jyyK@%bYE6B~w)R zj9W(j_zNtB9WNK@*fpUrM)FkCE>`kX=!zJ^M5!8YwR+?&4mo|MT^hj}0=vV!QrB=) zjTSGUnEp6UOE)wY1Cl?`rpqD+UhQ;?*=1s>mQWn#L9w4C4TGo_7{(Q1X=ItO4XrHn zRr8u7HH4eLgJq6<1qR@oOINF((3&NzA{;RWDja--QM#l4O?>>295p-u{ zpjyeT|BKuwvcLi(_JQ^fENzbYSW^Ud}X;t#t`xUt@F?Bd7g zF6YkP`Y%Yy?M>$incv>;;!?X=$fBV#yKiN`{UzS|9@S(@|MRq+zGGD8VcQ;Ed7|9! zn^K1R%3F%^EsAu#2{9pe`GP=zr(PGVC}ed}Yb{=t=rq1BG-9(Z`a<598}-GWY)7By zfb%x^0ulO<8{i@?y_9VSO+!_}YCOCelcbW}K2ezK*azHuMUtAA63#ZVt77w?Dx(iz zA`Zaf>_c{sFzxzDaayfLNs|TPHW0*+Q@%>K>>$;~`%w}?_fJ-rR4NPn%)qxhJ(X_# zW_rJK-dG`f;8Qo6TBLmW+V37jNcE3@(3T7ge()ELQeX3b@NsB5qR{VCZ&%GPaxhS~ zKV@000WH4w%tuYnGIY|T;gsW<6)3r$?FP=KL0hmAPOP(fIwEoiYyPRyv@cXPu>FEi zfcH5AoQ`>OtMn>2C%S>dg_TJ7Z(R#!V)KeUxChjCuP}~8ctkORq=EV5f9$w{{91ylu_rIiyK;(~(|ze# zEiMyITVfdiG?Z_=D)0I`^?{9E zAn(!@{iI9xQwaa71*m5~OcHA2d!M&bD@;xw`G#e;Rztj*h;OIq(b3PDUp|b)Cjbfb z>(+ntQL~gpv-Ut?O1L(D>Q3~4qGn$il&aqc;)QM$cH2Jeae6tW3rzTJoE1WrjKof5 zG_N_)W*{@hBHyO@aT*PX1(z{zG-_ zmSrTV@!U|mkV725nBMjD@h#lDii)+rj_u=LuSV--PW}3Lb9eS)+xv`VPuuUtQa%~3 zPYlpZXzhhstF2OOIEAeOsAW(uEJ4q2`nx#nom?U_4XH@&I-U!^dRXBHW+Issmk5dB42iy5)(z;^@pk6ezK?_e>U;+J^ zzes_$8s58S8#wLPP6tQ6X|Cmzn63h`t^t)(p7rRB=_{-m|5D900jLiMC*HGE&Jlw+ zhi;$9X{{WfKjcPx1KQKP+2RWt)kR$`E9mi{gP{cm22)o#?ULiS8+8#9p$Eo32EPr=C(kOUc_{RxKt0YQuyf(sNMp z{gYflW9T%(J*`fp2Yl(o3r+1WdCo-;%CfAi+1Sad zU@TfCU7=0dDXkVNz?(vYyyvnCHTY)Zu66f&-5U~<c7L-R2%_yrqDND)RSUJF!z$I! zk@o_TdJ;|Hi%B`~wESqj!k!}=L766Wm3FH2$d5>$+Jjvm(b(=|JN=m(E;{CQG>k zH$y_DcV;g9$6#h(oR&a!sU&O25RgqKd^>|8l^=bbM7fjs7RLY&HR9oDmj5uYD=KYA ztCU*GT1tQK`Rkg`;mN|eNa3e4r|*f#oK6slG)Pa&?eV);hkV+>8VFCNgx_Fq)bQJS zM8B($u>HF0oYCExrbh&4Bg44f@uJA1kRhGGc` zE8wMddAcOkc$>n4_7ciUP&mQWYKgB$8xP5MW<7XTmU$ihnFZbO(54byj>c>m*^%F^ z6ze4~UZz85aC{DW1)c?&9f<7Q?qV@_8*6@}@6Y_aY6nejo@X9Y3c7nmI1ag<>m?wF zr6eFRi11TA5Tj{rD$ms7Y{jR(S{81T#Om>|#{yGL3ScFkyO26|Q9K#-z)-VQ**&5J zK@bct_b|6WrQvzd#(nY+Ga2x~#sOf2qs#oL{W}=3_r7$(eMa^keZk04!Neswn)c|c zqeT!#IO)%+RJrNp#wSC!U6dYot_bDDGCki=QoGv!%#6xWRG#^(d!y)DPtL>4M|pRz z`;N(-G{%3rotGRnbK)%zVHT;wy>yDbq^|**Ou|+eU2nS99pW3fKRhblz~7WQnug4# zFu%EVU@-dpHskHT>k`lYe9<#&zMSDFlGdQ1CT2Uza@zdJ*4CGFqXc*rcJj(W@t`Xw z680#j?iR8pD?m(n^7x54kRrj`SWAT082zBNYx&WbYcjRQ1sk@dbC!plj>CwkFQZ2O zsl~#fO{;Y)A#Gtfx$s}WW=_jO7*+dc*4?)Y_h!Qv2gr3fNWvXS9w)J!3V1BO?xY`5 z9_ys6*%UZlb+!NgeS;hRhbN!i+U0!q>_A!Dfv-%VL|RJarJq&6`N#mh{ugDl>Qtf2 zGiQ@jJ>^qr=2Q-3y`DE^(;i_yBv?`AC2*zdj+X$g^Owm6!&-d&o@Ch0Mz#a#LR*ID>lyRCboS%7msr=R^Zf7NHqO~oX@*zSCwnOiX zwG^Ir&hd-jO_*~S!XWtC+E`}2DLIv)oSg+o#!_lLL*V`AHk2E&e94PQK4JugqmjE) zaQ|&{pe)f*IOGjghvU~(&U3RoGv=K?U2fN3xb=NVN$m&A6P*j;9FZ-yUgVX`Ukxf6 zD4$gw+X{ABYOvt`FWXo`N+b z!ckSEIU+og&u+xt<8zLt5nOKhm7&Js*cGXyZa%NdthnL7&dQEn;TG$V_5nW9 ziihpV$dJ-dBvkHl>i&9ewq)!BVT7+cH&tt}Six}pHkEab%WGD!v6um_*X%)WWg;Ex z^w0`4;(=c_(&%}6`;yvZlVYiE6=TNUR&Rd0DW&WdPw-vdwMnfKmzjI0;G^?`FV{x4 z`+x59I-h9`|8u;N%l~_QWgwZ6pezH?UY>Vv5gHj)%o#SVDMB-EjK6s4F)8=T+|@I~%Y`FSyPPZgQ}Uah==U3`v?OfTVX;b#WAmas4TZ z{>C=rskcf}rXM$gyiR=1gw~r}oHdU_T27_4i*xS>vXd34tS-b*8)Q$3NOH-P0z*x$ zk)J%Pr5)u4LxZJkz^tNu>AZrCA=H<`bRIe~C8JPVDuVCcZaIFd^74g>QV#?l(Gj16 z-hpj)rPUhE4s)T_K;Y=DrVD4{|ErlR&HE{8^GIc<1(#;#z@^7fkM$fea>M?+DM#0y zFPEh|Nkl2K;d)oWXHzDU>?n4K3nia1bpI{R0p5mVD>&izxUW@}RqnbcyqRu4=d@V~3)_Gie zx1vyt?fJuml2!!)9|vB<6I9r-Q>71ffXRqY5av1e z!-2>I*^x7;S|;m|E#(|4+Ws_bOtHb6qV4WySc&#vXyCyZ_pO(RB@<5C@PU85$MKSe zhnW_pF*D|IQ+LB*2_(LIy^&@p_f*Z_m?hiU<3Gvvr9zg{506F&+10l>&&dWz1Q|sp zz@380ey7L#30SrSpJX|#69*B+V$XxF=OlL@xd4M2i4ZX*yKO2Q_rI3f{>4i7m+Fx( z>vdv?FF(7GobN{~z|kaEaQ0YEB`yX;g?nbSvhyqPVjn-@_cYR4bInTnklf)H`VCo+ z7feGz;0)m;57xL~W08OerHAy#%sUWJ_;eQrs5j+{^BE#;-MUnTf!a65a zUMT^w1fFU9g51H|=uxcywmjbEg_tn&BlGsG2mw2r#f}T#BBYEz_LW+{zE^krQ0&2p zL$R}eKW5zcK>w>G&d@wWA^D;r?v#g^}*caT!kP+HVU>I%-5s zZsmAd|NVjYgHX9DAEx5-mw%ma7R2sxcZSlq8!yp|An?=k4EV9CbfZ!C@fH@xuoYyn zLVPZny{e##uhwfYOVv0*`RR@Gmt+VmXr@+=txY4{7spjl>2}47XCf80jtOJH$uO-C zWhC%8e)Z6K*tfs@+fUi|h##xm@JY5Ot5ua;b?2K(AnpEAYZFby1}%40dwjx~TX||k zF&g(?CcdUb^&Ag!R+6mB82Vu~8{C<9&=ABsNuxq*XR-e-Z*OL_PD#BM2mH_{65MmB{+JfRc6tvA?ep=Ab;`cf2~~r*NA_b~Op2)HPb1Y6=PC{#)bL zs~oeisp9cArq`NK{cm5D~|MLFgzawck<~EZ$c1|Si__I;Y z>$Q(kf6N^3-45no?tGLOlHYMB*mxNGvNakiO1^NE2W@`vTZ9ZKO7&!^dIOKkPZZit zk6v=sBrx=-lb{58e0_AS)9LH!AnC<;tM_`FOgrTscl&fn?zU5%@sYn=5!*fUgGL8` z&rmr}b)LZ^xlm2s!Y&4$YvqzqNV+<<=G;z!`@Oy}tUYMOjr#;MkTMj9F4-xSQ?7F zPO0yn)jp;-9a$|nj43f|KbO(*mTl8Yx^uhtjCt2O)9b`)=}r4^&n8?B@ye!mGj;b` zT`PM7UjX|xwJ46ZqXlXW&Z#C!XD3fb*E^VDz)3D*M`5zD0%Irve-=CjOhXxYuNxZFoU;XzJ0R`Ip&odohQh`M-Z>UwnJ;mxTq} z@_Qw=2rgN7{XRkC!(V?!AM0zKvu|~lqBnxSpDpgaclHH~R?ApxbRz?zi~+IL{%Kk< zQhZzAJ+r>tnSxZFI$^^P^(N12w0&OMkm)QRG;s}4={Wq$K3UNq`$|vd@Nd)eXTsOokEU%k>=Ej)h%a<~XN6YB4&kO_?>Cjcu{wfmGXNo8xhA6^Y^bv4JTO8O9G8Es?zE)s`DnAfiL{5)XPpaNxa{ZAp6HE zO=nyYq4D-yrldy-XW@|ACCX9?U^$Wp@0DKca~8DyoEjs!f80~d^x~NEIh2ww#iXUS zWXhOpT9$eGG^7fx?)66;Yt98_CU^<;)8b85ci+t=dGR+U0EGf+DT!~%JddI&B*!Np z>HPE=Bp#yTpiRadv6v>QHS)3Ab3V+B2%1Nnqw@D0Q9CMH?vwm7&2XHG2)Y+MaAu1k z;@CHADlXJ9OKUK0s%Jfy2lZGOE)2^F`e_v;+j?1KTFT;70(|2H;cXFbiTPa zW${$P`S2AR8r*72tf#E=+3J49e%{m=TkfS~H^27hl&sAkiPQSJKDX;E9Ov^&4QISw zV}Rz2#Kn(JOC^PF zSs#ah2bu4KSs;ji9$`$3MiNTA_?;3rC!-WDCsDQ5gfrgG32+oiq=|}XB|6M@i&pN? z<$dlKY#F8?hUC9JS7E^{{rLX2re2vxb>PwcKR4DXz8DB)OExExn+s3pa%4e)4*oU5 zu#vUK!huJAR{B_R>2*eXriR|Y6ji3!^X3x&yv*J7&Dl|(*CQ}-7d>W4B zkCUoC2L4gFiGI^0Cea_k!HSm+T;u9|H_tYtST1n7++z>ln!*WGA&SBCN| z8tpGqQjX>9q`&Q1!G+hot@*$PK}Qt`x=b7@oz$e($)7imY26`hZj@IAjW=Hvr z^iITcw23sc72jn)&Ao@~**b1v-frhXBns*|CtRaz@wmTIRP7$x$@{OPzV-B?VTIkF zYvZNJ8LP*q;Zr}@W)8it3XDECNm|&je5rFd9yOUW>E18nb8WCFhRi`;leyeO9>l8N zM|A52i6QJrW-nXqTI4%RKkG~;=B~Qjx&QMd&ol{XWg#TEJs~$?%lm3Q=-IWO!QX^= zWJ64JCKsl!T&mr4w~Wipc`m+2YNNqwx5eo0>}A2--lc4vj)PKb}Ih|JH z_e$%epBBihc}Y(wDUbt$EAF!`qZ0``SB3tvR=8}Wn+k5{JS)F?&H>%ErNyI|s0YUZ<9seUSM<3FgG{tDve=8%tAk*rflQ~`f z*bd<>O#j$^FwW&I4Qas4Ybn2l9eL=y#W139q^&Ub#`h1PkzBm;x9IPy(?2NxAwu5` z&ct(N`v=?|Un{IO=Nq|aNu6A)cO6T6^=BYqqfl-~KJ3|&*sG^6I@`H-29{0v>kZbT z9-s30drdoa;p26-Ky7{JKjT1wi&sb6tHF{Nwg%p*VNd#vTN_6q(q|pa0_>VS^}9v- z<%TgYb*s!ivNU+_z1}^vR9?!VaWOGsznBNZRJqA8Qk!Cgs^h?AJt!!4yPy93 zVfOb(6WuDE7;k1(-go7hdJpbdlev?TW|@#>QT~^U(VAkf?^E^D4zKVvp0L2aExo28 zY~2Jy@7wfcD(tzLFGob5n36lTa6f_n&1t;BxnG~(${6hKemDC4>-nL?@cU}aoIKj2 zEgkD?gov$klz;v7h|JCJCvn}wpXqPU6rTRBnNvS>i_7%8q+N~&dc1U8e>t7P5qZz3 z{1Srwv(UDM$@=<*Fp+O^Co1z^zwY^nv(dvOYC|lk%r!tQ?}X%hXp^7{_j*|oG~EkP z*Aq0Vmp{^^!^qn4LzY|`i;A%jD#&`FrZicW{RN}?K1d|JRwx3rNs?JX-SKIlY5&zb zD``hLFC8dJaCKsF429yEcFO$TXSP{&l}ZwxJ+!gcz5~ih7hzYo>3|5FHR#|yS8yCf z`6B&d)g^xNssh}8AFIH$nPsP-f>PI+vxhSw#Hc|b3frmjekkR{yzebG%D%~+x1*03 zOLp6~>PuYqoWCYpCG$%#`g3Nv#~g!Y0-VOmE)*?BmY(|dZk&Z%+LHV>#6yM;OnaBH ztWG<3dJB@5Dnq~IhN5rDJ|q_shzun8pKtUT3EXpu@v~;j5u>gu6aXgZ6*80e2xcTV z0$bgW11qNKozIp&Uo=1?{$@mI_w(nL(-%FRDjgMS2FJxitF3f@wSI*k&mhcrTDrg^ zn)Zv;6_~%)g(o;`w!S^BU8BbIA4J2B$#5H!luwvY0!p2j&G=c66s5+LuZ-J45_5`zSm3VIhY zC12k+n{;tG)`};M;=4wd40IZQaaLZrX!6eB^sy6GtnnfrNh_IczvrV1LCWQ>-6)r7 z`c;9BXJKN2g6q0|qq+#+l63!_Q}TbOk4bo)#F{Th0<6+YU>JDhj*8Vi-&NFZ2r^2W zzIXfgz*#k$Gdzd>ay+PStkT+N3mkU~&Aw+PtX{%0lS*#tP!5G-uh`39#3WtFaQ<$^ zZDK0jwf^u%>@Qo%#c)Y2b01-4%WL~J^*6qLyZrsN+hISlPG#hhfR2GZ7y0!heAL61 z56=k4X`sFMzho6#qEp`)?1w1iAk4=L&f!ox2|g(reydR*N{k%v+Uuher+P^KhMoyx z2CPuh#?l>1_-pbN)jbaY8T!Yjho34Tfnvb>2=9NJw2Z06fwt`~)9>^SY+W z0+>jylBE@&dMG*W`cJm|Paj;EJi%xDgXx6*=^tF+jU(BK+!k(ODNa6JCrV}#C2O~_ zsXGT>=j{C+d~MAwpnEVee>ea3!7=O~*A73$vmaN4zPIZ$=30bbqG)@Xr%#Kz6?yu*=~EUQnajQonPb9XsV)h{@tzBCPC^=Wrd6*Pp~h4_eeG`G>cyDZ+cg6`PfLR z@XjYkm+_TbdkAIc-*i7wlWS%MS=(00AC9*$k6h`j4-%MHagMY^qs~ ziT%45RgN~&E`3`c8%8qJ9azk}SVZ~m?>-dgS>5C~uRCzG-@#rZQy!@;yE^K6YaLQ} z^CM!Pw3yME?@lsK);TXfPWCa3m3Krq^EAm$iPy|&3RPs?)v`E1s#meqTV09&E(QDZ{44D}L<&1E|E>a^) zk&W88YP9NG&}wKwgSs9~)T>oFfYJU`2IoRd#r@(KKgpMWV+voKea>Ytr#D5*5&?rh2^J>OSUhqV>W z7_Dl>+Nx%(H@9MAa|bpwcVa_R7seYqv8}xqYfQP4g5?UTXSiv~3U&Fq001BWNklY*gd!xhqoU?gmXO3oO%^UwjV|4{1|H{ODI`V z*j<7vzUG?15JiQZ6f*al8iGu30<4QDiKu|*HU0>g9*W@EQONMj#Yo*4(%iEVIxh;L z3!)Kwn+EyH62#xBh4H}*3|6c~ZeTGez|OM-T~r)6C)Mkvr(Oa5=f|IZWN7lZ+7DrK zqLH%9#D%Qq-oJon4nK#V@h?2G=`k2qX5j4G=TH=0fo(mzSk1b4{vx*b?S}7+Ae?yk z6i%N!1J7&x;C_ua-h1PH^p*~wGPVYveR>H|i{qeMWy1LnE}$ez0xUUiWvyi(u#$EX z%8JzlTQG{jiz*u^cO}D?3|VwdzAginfUPJ{9f5Ls7-F2`k-jPuRWVg)HMF8Rr4bDY zb!bg(#X!Sa5qw{_6~k27ASqZw1X$8eLOJX%x4ZZB*#QU@OGAxI8F=xnhgkkl$#_ST>bT=G4>Pw*sl zUs3%6gOm(evxSl+;EKRY+!ybYEkd#f#dUh0e2?Bs;d;-T{1G%O1SLx|u_dYnhf{{| zSki#VU$I4KVYrg*!9xsKq+(g{xTY76lVzA-!HMJ%9M=wEdtf9Ua*5Cb`bweVUe%>LtC1U?Xq%_CconV1cSYvy6@wKOJYA$$-UR^~<0;0Twl~Q)WxIJRO?5^oWz}LHgO|v`&;oRw2qs&F|y( zb_uYkZXwc1g@?xd@M@VMF+;m$Gm!e|Z^Yu~i6|8q6?dpTFWAgfdXg6)4t)q>P}ObDQ$`Sf7!sW7Rr?l9ybLbc3}*f+>7wAx(CNnhB(-MFoD#o9?o6~^~wfU zhc&(6m0-aUwFSo#2k@kB1cy~!7*%AW=H_4&E>NJ@*%$4Ll-TSN2!gAz+oI5WzYbl? zjp$iwfaQJyEF(rANQd|QJ0}6_xBLY(`Pn9)z;EdZL`FtV%}z=WC^qKS)@2kw-ceBf zet%)@kL$`CF?Vlt;*A&IV(>Y%`3N4}dKh`iQha>&Q`Bh897d-AJnh^gz&g6? z37mQI6-2tK@$8`&uxEHbg6Bmc)h(NM8wNW>A!VrvnVxw_SLC2GuNP6SDzv0`@{Y#m zj=X?lyHBF4un%d99DMNRS)6_69KN{t1-|?4JJf2;C=RW_rBA=$`h=FWPF9*8-*FU= zY(B)w)Ryk;7^xlQ{8oNo2`gV@6_Q1$zFmtqUVIaq+O{Gus02U#^CukK@EBJA!5g~= z_HZ48=d}TF`=d9WeB>z{+I|GaRq0j*Yxlrjym;az?C9H#Z~puZOsg}{S3ZQF@lQPa z__KK7#AyKkVvDdcz7`kHf5ut043AvA^z_Tf4J?FmLIz9Neym>2`?Wy3tXA0+D$Z$1 z_Mog*S=B2mU_}eCBDk_!)OH>;gA}b$&_)6MG84)o%3)46qcO>h#^gqH7xiGIX9L!a zZox3kD3stzwhBqXq9upjc|Kv!C_4MbFi$SaT zR@OkhNW%^5ROU+1WUW}>bJ-r0+u3E{64s%tZdonC*&=f#LzApZ$yqGM^*?fUyVD;WO{9+TYT@zmuP3@(D~nf#28@P(`Q~=R|7^)f(f*CVlqnJ*I-M2GffF zHIiO};j|(Qrskv1n2TOrHY~a<^ysqCosxl`lnivGWTG=U10C9Qbm=nD6rP0Yf0!jrD2dhjlk_VDwFyEPG|;gxvnrML0PxleI&|0z_&*W&B1zQL(SpT@q? zhdH;jfBYbH52oR>PcAXg6o!=G<8z;2W9t^=DU0#R`HRT(&O=LTJ1&258ObY5SQA%^ zufF^WiA(e-4k^cl_diBKP$>dugd*C-4zNzY#a17wPdob_!oU9YFH|Qsz-(;6-~ax1 z9N73Mx7`2pfBlosQ{6Lh>ElZ%jb4L?hWFv{&f|!_S^{450ZLcefRx9Y2v-DCGEm8?R^Y5) z$Z8h-9{(A^oXrY$2u0D7H0+FO!-?b}R;nIT_i*-V0$iyr3|2=dkEQ9wF@mgwK0J}w zk5k%VoJj1)&fqEx+^s_2ooaL}GoW*+UMN>f^{_0}g8*x2nE~q`Oveg`+e?3A{~S+# zoXICJ`2_x7egX!A;kv{am0Llix}iEI`DAB;>2kj|<8MPL*%;PmV@Q{cL0vZbQ?l9K zBa5$BmxW$^wsrOBv(aOqm5Xj^^_cR}u1QCoA{=$ALs9P@jykt+G$|sHdY`uhSc@?8 zDhDjT^#SbOyc@eW?MAVw48bcyafid*n13B9SPMX-awvo4Mu4R!i_i>ea@X8xM1pJ$ z%I)p4dSxGSC&1z+_ZZYBHRJQozC?X;3j(G`AZ%VN;&0dD{Ws5Id+%-p%m`;?%lKdx zDq?G4d@vIQA?0kr?XWzAx6ZtaNEbD_^ZU6KJ}00UpMLZiYLl9zY*!-hG^AaGG)(&C zCtqcY@aRJ)@a?zXVzglcMjJQa-~aY+7^xXYL2wy^%rl3dhx+bh>|1+)RjSa1F$kF- zh0{--!9mJCt;)p3k3K_7MkfLt!tnC5uVG``7UTsKErycOrKxc^GB0j1oPfGb(4 zlHhAj6#rfHcZ5%XtVnU)ArfJ8BEj?fcnEShS4bq?oq{4|G3qq+s84D@OKL0n%_E?W ztieHfe9i{+_X-t@0ZXcE5DL~X#$#oBP^ef0Rt#71a@f5CkAC7DKa6;3Er*y+O655Eh_ZiW4zmDOmd#N7X_v_GezYdnAItHwPWqJ%Q zH=z8spm%ee-S!mS;=i?aMQmHCM|5qGXKa4HZ%k}PKx|mLGTuEoQgsLYpGcKTHA|&Z zT|?b`|1bahJ^8m!K7q+6@PEk@Fq_SPAfSqkjdfB*sp3mwlGeAYj34$TW&C4Am;29k zhCHk_NiZSrshNb44H}EJ9%mk~JvrA`F=m%~sy$7r(@&wr!|RFr&9< z2%9^0aNcNh`wnlvi%D2 z@wrbWz>4PvceV)U#o#bmgr^9wRCwyqXK{Sb3HaO?gz$y2cn)o?vRu5Y2p9XW|%&2cwtU@0Etor%;NMF2vISC(%+ z@3y0g2KxC(=Xl=MA3}Mj1+g5krja!SGZes%bfle&!nULP1VjW`0*u7y8ySK5`TjTyNh#Drs#9fPD%zlQn;jRvT7x+ z6NCxCqQ8~kin3YsdFY(y`OOUHF*FIcCn4Xz05$4bG$c2mBd-es?V}hP+=PMtjcgHe z*qs$D8lN+Uu70uzWd+L?Zl|#OI#oME);e`3#x>n&Rn|b|s^+YfwFp!KEE%rI_G8QM z3b3O4zg*ILrMwk^6~BjH%i(sRPzgYybD>(<0Ez(X%J+zC1W{s%EECabGfa-mCq2_mY%4taNS@?$hGFXRo9q(e6E&Y?W+Gv z{<)w0GbW$Fvg1e)gp`E z3)j|zdc-bH0D)BUQX{DR(>i02$KS+>-DqJdG-r^m)7TsP;m!0Oc@z#0YnEmX{^DE)E1oZCYiqaGF>wEt9aLH2ij*o5 zYPa7lDBwz1g|a%ufF*&IfG7c70|1KYBg@n9_yd_Z@?Z{*t<1xT)kQe!mXAXZq~gd56OKKYh9_30 z&cbbIJq(#CsyU)*s3fXU73x?S7rWmV0Gp{_C1*X#rD;y=Qp{T-X2vL zpXl>4Jksr{+t%izYp?UyHdY5{^NWL%G^WtFxRel;w;@!uR2!wb+q_EaRPC9(pn6r} zyfq$4Gcy8I(+Si_Max)`@uw+Mrc8p_|LHHo$=^Tu1paqCfz;I0S!pS0cO}FpsI+Qr zpDxkxX1Xy0SsB^LOwUGodOGx`RMZ->uraj=<7q`0O)bK@v?2y8f~mpOLRP0N#yoTy zbJ42HfjKz~wc1RSC#IoDZA5mQ4rwvTFhnIn8`l)EeXj6d^mX2 z$PFsNpTGJB4Z2p`Gvxtf`xoNNFTO%EE@Z`f!bCKr@CtkwYchBMC$DhHtDibB)Ygi>K3NAEE?pzU}BM|b!amKl~Ar^Ymkq2Y86?ER*Z#O6-$6tgiy02zzUN=Yep!PGeQw}iyE0;*(i^$WZST>VFZITuW)c9 zdZoa7cmEgz*7}$Zj7jwja@c)CVh;wQTadLR9RV{!Buh}T_N;}Wq&mr}l>jDEu(&n< z7l0)oil9oi2?+=ZoP;tZpo%R*R-9x=5=R0gVI|tG%Sx8`9dz9WSh9LW*8;A9tSevB zd+D10%wTv-^+)KOFf=@vhXb*lIHeuHiNrn}RrfG(QMmn3SQ9qiZNj*V2Agk5!M2-I zFnX5`mgPqDEhUgLpzl5d`j+TmS)xS`)ivCkgw{J%XuBf{>z5>A_wrO6T$PO@iXt5M zD8)(d3Owmkg{ORL@U(veo(pKgN$)ZobxX%FUYR)VmWg9-Svc;NjVIi)al$PJC*AY# zBrQb&PALlUjG`FNDoXIYdnsOWFT)x4a=hwZfmhus@S0mCUR_;@SKTXd#;qI&R^?#m zK|T6cru^K$Qukxms^l-)721zl6iIJ2DUy!Yc_%(r6_459H40~@=GYn4^|m6 zgVl*?p{hVbM8fKFzl7zTisUFIr)yo=CZsN`h1WY{ z!Szm<{ik`DI%PU;m@*X(SI@={)fL}SN|SF-lD>G%WnMr$A2I% zq!inGcC)%g3f8lazknwXJcAtnB7AY_OEjdka=9q?V7X9_RUCHq@8J+Q4Q5_jw*fo) z9>SxWAIFg$$9dFD;EXV6?=vDVxC9AzB=f*!f*qwpBtsfiDv+f};1$iY=R&#Ofr?B? zWr|oB$2%6O>VXD1)9gVS+RQ_poy9qi(2?%Ruyy5;@=^p=GE^~GkwP^Au!M3Y6f8-t zVwe(RbXdXq1zg1<{8!;B*4ExGS%eedO76a5dr;)B*b=nDl>jb!22|5P@WtvC-Ip>} z1XCf>lEI4av0`O|s)>+Aij}w*;t;{3VL~0kC#YFeix4gsfqM^>Oc zuM-1pqnyp^8`uCDu*RbWV6BU9$NGdWY)q?lCb5sOF;(Y?90S?w@RsrsMU76od>HKNuaopkL^L#09IMnZFWo^Hw0m(G4B<#^WKk96X{Z!eOs69P_Tk z3GXUA=~IJKzV&#@uO83%nem*z8P5ka;e=-ij;>C}vDE}v**NZ&gA;CfIO#@Um5-;~ z3h=aBA)a+B!gFrLc#hyoQHp03Wq3wWil-H2IH@SbF+~X;_b9=`iXuGZQGo4=JdC+# zqr*KFt?njtxtY-Go{B!VRE)T%VVzqV##g6f%={#=ik+w%e=7pD0~&P!1$Z=8g(|M`n_^6uml;3uF` zsjjapUGrddNx7l5p05%TxV_SbewhRxUZ=er@1AQ1C z?8my{A&id zjC2g3EVD#pu&$*XmJ0{o39<;V=3noKg*P~1{tb?pcRkfM$h!y~u+q^>0xbIs))fPu zWx%3FcD4ouWYNw*%3xJ%8u9g?zeamj4?_?Yj%t^t;?k#|W7pt51ka1cbBABVPe1>J z_g?=1=imPrUwnQUIe~>3tXPMW2cF_xgwzu?Ts_LO0oOK+A;Tk&VTYRBV;3ia<_%Ks zRN@i?pHq%0$RPrOGsB^rNyUydCohqEu;?{Gj~MQpz+G6B)1po+Djub|g9KIbIc2&vI}KfpvXvyjo1DFg;)+7CG;%{JZlS2A5 zh}v(e5xL@auRo8gnfj_xn+0`p?&p?p=001BWNklS^CPJmc4ZXZ;0Oy%5ld(*aF56WD^60$cHn zR|QV3&c)Mi`FO^y0MEJ;P!%#*opLY26YhmL;$DD5Zu!{nmXFkx5tCG>L(Ei+~Ncy*a_oRzG9*Gw$o=LBDdTCC!_-Kwcduw*p`)S6j{nf+Oerj`R zP<%yhkUDpbzbc{KGcL~Tp$e|@R=E}W$3B?n6L+UBT;-UejF}tqUpceMuieQf@SA@E zv9YlWk`j`l(hR1i(&FMnX0!Q1x5a|t(Y3Iw9Y%9sFRI$xP}|mmy7pGox3{5@R!1u; zn;KBnSdZ$a1~fLC(bn9EzSd^+*4LuFvK$>1>Si)W}!Mg6KhQAs5GRaEX9ZttsccmdgR0x zHddUdH;XD667Mk}={_TLD^j_`Dtd7Ocr8jm(40u#IT&}d04o9~Iw#nmU5YdghYCz% zoD&e^A^?isBe%BmxEuzk1OZa6VoVN0lmu5)UP=w|JmgsdDpsp_m@}zX1X%*2gn~tI zWd~GrPD^TsC+K3pBCC)gi|jz5VhQCc-kP&wD^LO}w)zOLXgD(imaJge1C3 zp+O62Ubj3 zjpbLZ!m>X+i2MHd0Per$0W7`l0W81i0X#T!6;{u4gQt@R0&ew1=)FORe=risUTT;E zw8#oK!K^JoPihs0@>{T>vKKqd>+o>)2 zUoBqoug9waX1o^IgjWNa@Sp7*Q63;t%D_HV>X{!Mr}pc$_QwBYr?HoOtohPQ&+ z@mA1(^~?oz;I*JmoL06okUi?2hkfq3*yWyuEpC|@cTdN#TPk|p4Cr*zqt#7^Cbtwc zxFw^`Eg7|LTGa5O*D0u{d+s`z-SlX5*Q3SFfM$1j8PV)6F9VttwCFY6m#!;JXmK~8 z*`1E5eBPokqQyh3W)BmZJ&e4XJPe>k_gXy+X!Ovd#nXTe4+FY946t|_(C=Zykiv*{ z9!88Sj99NQVzaveTNDOtb2nhSn;zTU_1NLA$2RwrpEr1={O2Z5-FNG~QZ9~qCtn!# z*1kFDo%mdzx9X`@U)`e>A*m0QMWk&h3paHYM(7*!!wuz)VVS9QfhI%BeNhp&&cAie zZ~hB-@&o?%o zN1I|LD_0CwR=ASDiqtA;aTNoH*~uc5R4i-ON*>}Y9|@?$BES+m52f9MoV}Wuzp`er zxcb2cQEdN7nJZxr5>&~#D>>M12U&KRD`5-D_TVoSD_ON-so(!UGER?8~w5BDg~BJc@Xzc zd4R#meTFAiPg7vkOa;80d=PkNFd~*lAZ|r8k`)Qa@YA6%Bn{PZ1!ztzM~|@_bT2YCY{Oa+NUmZ^S)roWe2D}_##;g8KcrBm_ZxBoc zwBogZR=g6}iWfXD8PMJlgO_f&Mcnb7HOLN{4~?nZRG8PMZyM2~!Q zH^L&VUUwsU6|_uZxu^2cqA;ObS{(`_+6b%&z7%>iDs*V{(7~+Gp+TWTy@w8U9x1$P z6m(2Rou>}aFMXo_f@K>0$QLqtR23MlU^@Jq>8}HlW?xfDSJMy1k6(@id^% zQ-^+q4nyuK7+$T#I=5tOa7)1!g&sS-jCeR87keVAusN&>ne_o)0@7D42f>~?S1=Bexl#p6HuvC)04uYf-+;`I|?<4&y{OaKCRLl{!wc*p)M^I zwQ1?7N=-$j(TH-R5v2wLiVX%78H^~<8<1}>@Uc*DK$*eF@2fT%(O@*9-e5qpL626w z4sCipI(0g9n@ngWkgBLab6Gi>%gWGHT8bvRR$79ll43L!7sFgs1an~_%!LJLpjD8M z`uu#<=jEaySFF06Y}93Eqb@6pkF}YZsG*gS#(#5lYAWh8(~%w%2ge&+;CQXG)gt`w z0L!LeIbh{Ng%z-p7_e+5qqh8&RLj5$mQbz;t_Y+ExTv|E1~JDhO5|%YR7I1*0vQ?D3l9v^%?5^2|*kwylK$Q)yuDmW+ zG6=QGK5r$|E0MhtHlS<`{sN{XxDxLTXGKe>S|Wt5oEgfX73vU%M5h=;FNlHfj9>(E zI9;{?1w;`L$yT2@m+#x)OIE6`JPNQ1h0=jm7+7s0#c5_Z7s>`s4~75KVEEh+2(Rn> z;Ql9Xto)+~9{9s*toY+or{DV%xv4BmM24ZQcxJ2?0Lhxq9IbNKYVbGY=uNBI2B^Z4S; z3;5!-^Z5Mv4{+(Z4{+(pcX9FPo49!7Eqr|7Rb1HjGA`^ngL6AhDlPwK(lvkJCPNc+Rf@Py5&73BP(A@~g#u zzbfqXU4zZO6&Up?!+>uodcBL$>0N|&??SYB6`;kt04-kmya=l3yw$q^tzHHEo(}IK zba)k^)2k4j-n5F)=~IX#}&|qt`1ReO`I!_sT`TXATCuXl0|% zD+m3aS?Ke~K#xZTx)rJDQW!xn)uGU%U6Fz|TJFhcl~#*;GFlYLXr<*LR+~o(T0L~2 zW1EK#?X*1YmmVFSdbHawFM6#*EB!40J}sKvwP!5e-0Nvxrn;DhV8$( zFXPD%^qY7BS0%(G+@746oR*cIzN@q#|3Xb^$qx+`Wj{Aml%l?@1ob6Fs4d7xbzwfL za&u6bm4%ATOjM+$p*$@OrKVJr8cirR7$w*;pjdA}k)Ghoh!Ud-<>~1t&&))1ULNYn z>Z>S+rKSdJo0`$zU`A7UxmaaoXe=#5V@W9*OG{xcE=HpaSVct)SM>!2sJ8-E9%^%Q zc-3TQqc%GmHCb7x&dfwrMh2=gGEkMC&Z{ytm6fct=y*8Z;EILUiu@JB)pa6&MH#IB zUcr(8D~v+!RMVih6^%-j3~Fh|AOV%N1B+EGDez9Pb&FPjl%!axZq-61%^hT*vOA~I zHv*)RAnqkefF%?w8K$hNl>}J?XhM-9b&FIhd5J6)1J)vY)k@^5WaY{VTMSu3%@T^1 z2(z<##W^cA?<$;-xnes|s94d?6o9w017!tE4zNq0#UXdjR>i>{utXgLsahgmB?A{* zg;M5A9Mc4!dOH#As5WBr%C3Ro1iY0~HXiHpmj!g;GTppir^w6)FNK+aj0=v%Z$kJW%tYk$>1k%M$Kszgsz-?v-0;Y%X@MrIv0^oJM9~9Sl!|fU`&N!{SPJxv-DBw23 z1D^AJ;I}vsp-UnV@2-X}%z$id9xC&y&|KY$zRm$`*{~JkgX_`PG>C(H9>cN6p1|() zd$DumA*^rPj6*vPZ8wb z`Ge2!#oM3Y%eOzlr88%7>BY0S^!$goc;a1LI{5)EJ^dlx?LCC&QmEdc9S5SCu`Rq7 z>x0%{#J?PUKE<$j7oy9v039BA=%CS49=YgH)zw^u%780z&ZK%Z9u zdc6zK=Tm@wJ{F?iw+Q_{g}erQi!k70TSGoY81fZs(6<=0`2D`c=<_Rv#jhA$enn{a zFG4G=fFd-}@-IT8e*w&X1u**;pwTZMX1{zi`Q`Fz_RT?yPZqCspGi>$TRe%^A5&x$y|^WXoypJzYh?6XTb_uPj#Kfj#wFMf>c ztTlMOx(UmhJMe#RA7M+55xvrhgf%XteCkE!77KZw`BAtlh+?~7ig$;oDEKUh)OB7& zuW%;uQ+HC2`%;*AiTe5mT07e5>gi^9bcDTo_j>;S;@kM^f5hMRC*ZQlk8$?YNt{og=E8Yr zTwTuN=6V4SS64h;-SE2LirL*A&$H(^YG;SN4q5g)c5-;f4i10z8Hct@X>pqh0keZ! zws3IEW)5uL%z;gt*uU{p_IFOk=7wNrCRCbLGfKF@0AW-MtRUss=gwtZb1cF)1w#!s| zWW(81CvOPy+oLMB<=@IYX3@^`zD)|7hNhPAs|`pM>%=zDgsG^ zgTo9DkEr=^0!#u+qhk_d8bFQdAT>6w?jM^NXKZ3Z2Q34-1iS>o^q9P&U~S^+BohK| z*RHC3<@!}r2*BwOH$E|;;HVRdn8{q{Md~MRB(8KJafLG% zKX4-Y{ZoX$cbuRF_5{6k7~j|TV}5lv=DEA^p7R-Av$x|hYa8w}x8Oc=Gj1<#!R^J( zxU1NLyByEljO)y;xX#?d`I%cd_tF+lzqA?0SzBqKGY{g;DHZ5jruXk$p793}7QgL?n zMx1AF!sV5%c)hkA%lusgyt9|k#r8z4bR>4QGf5k~NR!WJyD!;01IXDGNY2hcwZ8P3 zKj~YnByKbjxyGG<<<7V*Jc+}+gY22HozLVoH=H0YFqZn-dOG^LY47T!t)rc`_I5ft zI_U53XZP;iu7BI#%wNCzzsXNPrl+4heD-d4XXk(1v|-cI^A4vh7XyOYFC`_CmzhCk zS_&yC2_z=Q5p^+wu&7Y{L;dmcGvR7-=cJ1h$DJKp9N2pU1_^9d{ouOja{i zKVJfa0tgEZBsw&Nn6OYn1AX!Fa>e59hOd_^zFrsb^SpqsyUR`C=jwvh)dhdo3!FZD zh{L;fVK1>$1FS=zea6A<+c_Y9uPs~Hw`DVXH*I3?rj6{`@F{j1HmKOMem!>U*0D#A zy`OGi-^Ps`5E$FO9s6B7IlgxfCl4LM+3^&+w|vGAZ~rkGV2KCo5gz>RBg%uNncQXl zh`!nL!#tn>>t25M@N*mz50XxBY8K9*g>mPLG>L*%RP{uK6K&63}233X^OINFIQm(#2!P0?B{8&?pmF-%oS2kd! zju+}>!9{wfpaxc7Rb*k^X`9Bbq*@kO4d^zD-EIypb|5? z#H)IK?Y{Zy-kZyV8bI9&S+*rY1Fl}X_jO*o?+sqnWA1$dPdY$JiBG!p6g0i6_7I$P z=UiU8V~*;ed+~d-6)?SU+bj*5Zkx$-x4p=-cf81R-+z(k?|zAy56)rEV{@7J&+~cb z4+~lT@(MP*zll8?_TjMK0S{+Sg8hPtk4qpcE1R;iGU^)}Xz%Kvf2g0~v0=upjBBcr zfXbCC3Q8s>t}r?}uDW2QOSZeShmN*xdV2cEip#}%(x05fJOxoL4ejJ66{sB!1g@^$ zxW@G_Zm8!R6<{)ATwhC`iV4QXwUB*2Wi2oyN|wBri7N&qT~#Acu3WvUL6hXkNhSrL zH`|&rnkjgSDLuRJGGz)<&IA1|>U#DA^$qOzDnb%6A1* zwmXFK-CDCj5N|0vDdZ_uZp-&fkyw8~bpXXUExBc5wEU&v2Tfsa2v_otm|o zQ!i=ZICGO)JIvh7DOu0ljDwyX1h8U+M>nmZR-5lIomk*@^+l( z?!aZb}}E1eY-#cuE+ajP#W+XG138BB(XAksbyBxRdFiCe5( z{M4J!)$aJNbjE%0DbBoo1p9gWu$#S;P0wxN<0sa#78*oPc*s6wVQ$ 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 + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/img-blog.png b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/img-blog.png new file mode 100644 index 0000000000000000000000000000000000000000..37fc5be0e03e6d59a60d559d74d6fdfa51e10482 GIT binary patch literal 42029 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 literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/img-support.png b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/img-support.png new file mode 100644 index 0000000000000000000000000000000000000000..27f4f13b22c1036c269b6e2b17d29e287e2ef26a GIT binary patch literal 33989 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 StuUzo0000 + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/stack-overflow.svg b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/stack-overflow.svg new file mode 100644 index 0000000..2b09789 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/stack-overflow.svg @@ -0,0 +1,4 @@ + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/x-white.svg b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/x-white.svg new file mode 100644 index 0000000..38b09ee --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/x-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/youtube.svg b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/youtube.svg new file mode 100644 index 0000000..1d38b17 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/getting-started/youtube.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-dark-thumbnail.png b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-dark-thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..9734a07a4d4539d3081bb897ffc8d5e75dab8798 GIT binary patch literal 10695 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 iRGz-n4VZ}kM?W?F&FYYBo literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-dark.png b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a3bbe82224deec74650461230f66d609eda717e3 GIT binary patch literal 38171 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 MU)LDY2zE;NA05R;CIA2c literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-light.png b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/images/logo/leptonxlite/logo-light.png new file mode 100644 index 0000000000000000000000000000000000000000..761fb4443d597661e7700574e52b787d7ed7255b GIT binary patch literal 33228 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 nuxmBTJ6Y+ll0437Z literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/main.css b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/main.css new file mode 100644 index 0000000..09b3585 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/main.css @@ -0,0 +1,45 @@ +/* + loader +*/ +.loader { + position: fixed; + top: 0; + right: 0; + left: 0; + bottom: 0; + width: 100vw; + height: 100vh; + z-index: 999; + background-color: #f1f1f2; + } + +#ApplicationContainer > div:first-child:not(:only-child) { + display: none !important; +} + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + +#blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; +} + +:root { + --lpx-logo: url('/images/logo/leptonxlite/logo-light.png'); + --lpx-logo-icon: url('/images/logo/leptonxlite/logo-light-thumbnail.png'); +} +:root .abp-account-layout .lpx-brand-logo{ + --lpx-logo: url('/images/logo/leptonxlite/logo-dark.png'); +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/manifest.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/manifest.json new file mode 100644 index 0000000..89e5235 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/manifest.json @@ -0,0 +1,21 @@ +{ + "name": "BookStore", + "short_name": "BookStore", + "start_url": "./", + "display": "standalone", + "background_color": "#ffffff", + "theme_color": "#03173d", + "prefer_related_applications": false, + "icons": [ + { + "src": "icon-512.png", + "type": "image/png", + "sizes": "512x512" + }, + { + "src": "icon-192.png", + "type": "image/png", + "sizes": "192x192" + } + ] +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/service-worker.js b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/service-worker.js new file mode 100644 index 0000000..fe614da --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/service-worker.js @@ -0,0 +1,4 @@ +// In development, always fetch from the network and do not enable offline support. +// This is because caching would make development more difficult (changes would not +// be reflected on the first load after each change). +self.addEventListener('fetch', () => { }); diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/service-worker.published.js b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/service-worker.published.js new file mode 100644 index 0000000..0d9986f --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor.Client/wwwroot/service-worker.published.js @@ -0,0 +1,48 @@ +// Caution! Be sure you understand the caveats before publishing an application with +// offline support. See https://aka.ms/blazor-offline-considerations + +self.importScripts('./service-worker-assets.js'); +self.addEventListener('install', event => event.waitUntil(onInstall(event))); +self.addEventListener('activate', event => event.waitUntil(onActivate(event))); +self.addEventListener('fetch', event => event.respondWith(onFetch(event))); + +const cacheNamePrefix = 'offline-cache-'; +const cacheName = `${cacheNamePrefix}${self.assetsManifest.version}`; +const offlineAssetsInclude = [ /\.dll$/, /\.pdb$/, /\.wasm/, /\.html/, /\.js$/, /\.json$/, /\.css$/, /\.woff$/, /\.png$/, /\.jpe?g$/, /\.gif$/, /\.ico$/, /\.blat$/, /\.dat$/ ]; +const offlineAssetsExclude = [ /^service-worker\.js$/ ]; + +async function onInstall(event) { + console.info('Service worker: Install'); + + // Fetch and cache all matching items from the assets manifest + const assetsRequests = self.assetsManifest.assets + .filter(asset => offlineAssetsInclude.some(pattern => pattern.test(asset.url))) + .filter(asset => !offlineAssetsExclude.some(pattern => pattern.test(asset.url))) + .map(asset => new Request(asset.url, { integrity: asset.hash, cache: 'no-cache' })); + await caches.open(cacheName).then(cache => cache.addAll(assetsRequests)); +} + +async function onActivate(event) { + console.info('Service worker: Activate'); + + // Delete unused caches + const cacheKeys = await caches.keys(); + await Promise.all(cacheKeys + .filter(key => key.startsWith(cacheNamePrefix) && key !== cacheName) + .map(key => caches.delete(key))); +} + +async function onFetch(event) { + let cachedResponse = null; + if (event.request.method === 'GET') { + // For all navigation requests, try to serve index.html from cache + // If you need some URLs to be server-rendered, edit the following check to exclude those URLs + const shouldServeIndexHtml = event.request.mode === 'navigate'; + + const request = shouldServeIndexHtml ? 'index.html' : event.request; + const cache = await caches.open(cacheName); + cachedResponse = await cache.match(request); + } + + return cachedResponse || fetch(event.request); +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStore.Blazor.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStore.Blazor.abppkg new file mode 100644 index 0000000..7d929dc --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStore.Blazor.abppkg @@ -0,0 +1,3 @@ +{ + "role": "host.blazor-wasm" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStore.Blazor.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStore.Blazor.csproj new file mode 100644 index 0000000..788f3ca --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStore.Blazor.csproj @@ -0,0 +1,27 @@ + + + + + + net9.0 + enable + enable + + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreBlazorModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreBlazorModule.cs new file mode 100644 index 0000000..2f95902 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreBlazorModule.cs @@ -0,0 +1,76 @@ +using BookStore.Blazor.Components; +using BookStore.Blazor.Client; +using Lsw.Abp.AspnetCore.Components.WebAssembly.AntDesignTheme.Bundling; +using Volo.Abp; +using Volo.Abp.AspNetCore.Components.WebAssembly.WebApp; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.Libs; +using Volo.Abp.Autofac; +using Volo.Abp.Modularity; + +namespace BookStore.Blazor; + +[DependsOn( + typeof(AbpAutofacModule), + typeof(AbpAspNetCoreComponentsWebAssemblyAntDesignThemeBundlingModule), + typeof(AbpAspNetCoreMvcUiBundlingModule) +)] +public class BookStoreBlazorModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + //https://github.com/dotnet/aspnetcore/issues/52530 + Configure(options => + { + options.SuppressCheckForUnhandledSecurityMetadata = true; + }); + + // Add services to the container. + context.Services.AddRazorComponents() + .AddInteractiveWebAssemblyComponents(); + + Configure(options => + { + options.CheckLibs = false; + }); + + Configure(options => + { + var globalStyles = options.StyleBundles.Get(BlazorWebAssemblyStandardBundles.Styles.Global); + globalStyles.AddContributors(typeof(BookStoreStyleBundleContributor)); + + var globalScripts = options.ScriptBundles.Get(BlazorWebAssemblyStandardBundles.Scripts.Global); + globalScripts.AddContributors(typeof(BookStoreScriptBundleContributor)); + + }); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var env = context.GetEnvironment(); + var app = context.GetApplicationBuilder(); + + // Configure the HTTP request pipeline. + if (env.IsDevelopment()) + { + app.UseWebAssemblyDebugging(); + } + else + { + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); + } + + app.UseHttpsRedirection(); + app.UseRouting(); + app.MapAbpStaticAssets(); + app.UseAntiforgery(); + + app.UseConfiguredEndpoints(builder => + { + builder.MapRazorComponents() + .AddInteractiveWebAssemblyRenderMode() + .AddAdditionalAssemblies(WebAppAdditionalAssembliesHelper.GetAssemblies()); + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreScriptBundleContributor.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreScriptBundleContributor.cs new file mode 100644 index 0000000..28f3c69 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreScriptBundleContributor.cs @@ -0,0 +1,11 @@ +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; + +namespace BookStore.Blazor; + +public class BookStoreScriptBundleContributor : BundleContributor +{ + public override void ConfigureBundle(BundleConfigurationContext context) + { + + } +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreStyleBundleContributor.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreStyleBundleContributor.cs new file mode 100644 index 0000000..9cfa18b --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/BookStoreStyleBundleContributor.cs @@ -0,0 +1,11 @@ +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; + +namespace BookStore.Blazor; + +public class BookStoreStyleBundleContributor : BundleContributor +{ + public override void ConfigureBundle(BundleConfigurationContext context) + { + context.Files.Add(new BundleFile("main.css", true)); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Components/App.razor b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Components/App.razor new file mode 100644 index 0000000..11704dc --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Components/App.razor @@ -0,0 +1,38 @@ + + + + + + + MyCompanyName + + + + + + + @* *@ + + + + + + + + + +

+ + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Dockerfile b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Dockerfile new file mode 100644 index 0000000..1bd4eef --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Dockerfile @@ -0,0 +1,5 @@ +FROM mcr.microsoft.com/dotnet/aspnet:9.0 +COPY bin/Release/net9.0/publish/ app/ +WORKDIR /app +ENV ASPNETCORE_URLS=http://+:80 +ENTRYPOINT ["dotnet", "BookStore.Blazor.dll"] \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Dockerfile.local b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Dockerfile.local new file mode 100644 index 0000000..a550a69 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Dockerfile.local @@ -0,0 +1,8 @@ +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS build +USER $APP_UID +EXPOSE 8080 +EXPOSE 8081 + +COPY bin/Release/net9.0/publish/ app/ +WORKDIR /app +ENTRYPOINT ["dotnet", "BookStore.Blazor.dll"] \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Program.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Program.cs new file mode 100644 index 0000000..a23d781 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Program.cs @@ -0,0 +1,56 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using BookStore.Blazor; +using Serilog; +using Serilog.Events; + +namespace BookStore.Blazor; + +public class Program +{ + public async static Task Main(string[] args) + { + Log.Logger = new LoggerConfiguration() +#if DEBUG + .MinimumLevel.Debug() +#else + .MinimumLevel.Information() +#endif + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .Enrich.FromLogContext() + .WriteTo.Async(c => c.File("Logs/logs.txt")) + .WriteTo.Async(c => c.Console()) + .CreateLogger(); + + try + { + Log.Information("Starting web host."); + var builder = WebApplication.CreateBuilder(args); + builder.Host.AddAppSettingsSecretsJson() + .UseAutofac() + .UseSerilog(); + await builder.AddApplicationAsync(); + var app = builder.Build(); + await app.InitializeApplicationAsync(); + await app.RunAsync(); + return 0; + } + catch (Exception ex) + { + if (ex is HostAbortedException) + { + throw; + } + + Log.Fatal(ex, "Host terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } + } +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Properties/launchSettings.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Properties/launchSettings.json new file mode 100644 index 0000000..c6d36bf --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/Properties/launchSettings.json @@ -0,0 +1,29 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "https://localhost:44376", + "sslPort": 44376 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "BookStore.Blazor": { + "commandName": "Project", + "launchBrowser": true, + "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", + "applicationUrl": "https://localhost:44376", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/_Imports.razor b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/_Imports.razor new file mode 100644 index 0000000..b954cf0 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Blazor/_Imports.razor @@ -0,0 +1,9 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using static Microsoft.AspNetCore.Components.Web.RenderMode +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop +@using BookStore.Blazor.Client \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStore.DbMigrator.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStore.DbMigrator.abppkg new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStore.DbMigrator.abppkg @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStore.DbMigrator.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStore.DbMigrator.csproj new file mode 100644 index 0000000..f02d482 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStore.DbMigrator.csproj @@ -0,0 +1,46 @@ + + + + + + Exe + net9.0 + enable + + + + + + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest + Always + + + + PreserveNewest + Always + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStoreDbMigratorModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStoreDbMigratorModule.cs new file mode 100644 index 0000000..05a84e5 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/BookStoreDbMigratorModule.cs @@ -0,0 +1,14 @@ +using BookStore.MongoDB; +using Volo.Abp.Autofac; +using Volo.Abp.Modularity; + +namespace BookStore.DbMigrator; + +[DependsOn( + typeof(AbpAutofacModule), + typeof(BookStoreMongoDbModule), + typeof(BookStoreApplicationContractsModule) +)] +public class BookStoreDbMigratorModule : AbpModule +{ +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/DbMigratorHostedService.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/DbMigratorHostedService.cs new file mode 100644 index 0000000..5de5140 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/DbMigratorHostedService.cs @@ -0,0 +1,51 @@ +using System.Threading; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using BookStore.Data; +using Serilog; +using Volo.Abp; +using Volo.Abp.Data; + +namespace BookStore.DbMigrator; + +public class DbMigratorHostedService : IHostedService +{ + private readonly IHostApplicationLifetime _hostApplicationLifetime; + private readonly IConfiguration _configuration; + + public DbMigratorHostedService(IHostApplicationLifetime hostApplicationLifetime, IConfiguration configuration) + { + _hostApplicationLifetime = hostApplicationLifetime; + _configuration = configuration; + } + + public async Task StartAsync(CancellationToken cancellationToken) + { + using (var application = await AbpApplicationFactory.CreateAsync(options => + { + options.Services.ReplaceConfiguration(_configuration); + options.UseAutofac(); + options.Services.AddLogging(c => c.AddSerilog()); + options.AddDataMigrationEnvironment(); + })) + { + await application.InitializeAsync(); + + await application + .ServiceProvider + .GetRequiredService() + .MigrateAsync(); + + await application.ShutdownAsync(); + + _hostApplicationLifetime.StopApplication(); + } + } + + public Task StopAsync(CancellationToken cancellationToken) + { + return Task.CompletedTask; + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Dockerfile b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Dockerfile new file mode 100644 index 0000000..f4c5d31 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Dockerfile @@ -0,0 +1,5 @@ +FROM mcr.microsoft.com/dotnet/aspnet:9.0 +COPY bin/Release/net9.0/publish/ app/ +WORKDIR /app +ENV ASPNETCORE_URLS=http://+:80 +ENTRYPOINT ["dotnet", "BookStore.DbMigrator.dll"] \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Dockerfile.local b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Dockerfile.local new file mode 100644 index 0000000..82052b7 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Dockerfile.local @@ -0,0 +1,6 @@ + FROM mcr.microsoft.com/dotnet/aspnet:9.0 + USER $APP_UID + + COPY bin/Release/net9.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "BookStore.DbMigrator.dll"] \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Program.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Program.cs new file mode 100644 index 0000000..7fa2ec0 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/Program.cs @@ -0,0 +1,39 @@ +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.Extensions.Logging; +using Serilog; +using Serilog.Events; + +namespace BookStore.DbMigrator; + +class Program +{ + static async Task Main(string[] args) + { + Log.Logger = new LoggerConfiguration() + .MinimumLevel.Information() + .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) + .MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning) +#if DEBUG + .MinimumLevel.Override("BookStore", LogEventLevel.Debug) +#else + .MinimumLevel.Override("BookStore", LogEventLevel.Information) +#endif + .Enrich.FromLogContext() + .WriteTo.Async(c => c.File("Logs/logs.txt")) + .WriteTo.Async(c => c.Console()) + .CreateLogger(); + + await CreateHostBuilder(args).RunConsoleAsync(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) => + Host.CreateDefaultBuilder(args) + .AddAppSettingsSecretsJson() + .ConfigureLogging((context, logging) => logging.ClearProviders()) + .ConfigureServices((hostContext, services) => + { + services.AddHostedService(); + }); +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.json b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.json new file mode 100644 index 0000000..a3a6440 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.json @@ -0,0 +1,19 @@ +{ + "ConnectionStrings": { + "Default": "mongodb://localhost:27017/BookStore" + }, + "OpenIddict": { + "Applications": { + "BookStore_App": { + "ClientId": "BookStore_App" }, + "BookStore_Blazor": { + "ClientId": "BookStore_Blazor", + "RootUrl": "https://localhost:44376" + }, + "BookStore_Swagger": { + "ClientId": "BookStore_Swagger", + "RootUrl": "https://localhost:44318/" + } + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.secrets.json b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.secrets.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.DbMigrator/appsettings.secrets.json @@ -0,0 +1,2 @@ +{ +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.abppkg new file mode 100644 index 0000000..8b3de05 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.domain-shared" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.abppkg.analyze.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.abppkg.analyze.json new file mode 100644 index 0000000..c9c6442 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.abppkg.analyze.json @@ -0,0 +1,118 @@ +{ + "name": "BookStore.Domain.Shared", + "hash": "", + "contents": [ + { + "namespace": "BookStore", + "dependsOnModules": [ + { + "declaringAssemblyName": "Volo.Abp.AuditLogging.Domain.Shared", + "namespace": "Volo.Abp.AuditLogging", + "name": "AbpAuditLoggingDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.BackgroundJobs.Domain.Shared", + "namespace": "Volo.Abp.BackgroundJobs", + "name": "AbpBackgroundJobsDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Domain.Shared", + "namespace": "Volo.Abp.FeatureManagement", + "name": "AbpFeatureManagementDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Domain.Shared", + "namespace": "Volo.Abp.PermissionManagement", + "name": "AbpPermissionManagementDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.Domain.Shared", + "namespace": "Volo.Abp.SettingManagement", + "name": "AbpSettingManagementDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Identity.Pro.Domain.Shared", + "namespace": "Volo.Abp.Identity", + "name": "AbpIdentityProDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.OpenIddict.Pro.Domain.Shared", + "namespace": "Volo.Abp.OpenIddict", + "name": "AbpOpenIddictProDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.LanguageManagement.Domain.Shared", + "namespace": "Volo.Abp.LanguageManagement", + "name": "LanguageManagementDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.TextTemplateManagement.Domain.Shared", + "namespace": "Volo.Abp.TextTemplateManagement", + "name": "TextTemplateManagementDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Gdpr.Domain.Shared", + "namespace": "Volo.Abp.Gdpr", + "name": "AbpGdprDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.GlobalFeatures", + "namespace": "Volo.Abp.GlobalFeatures", + "name": "AbpGlobalFeaturesModule" + }, + { + "declaringAssemblyName": "Volo.Abp.BlobStoring.Database.Domain.Shared", + "namespace": "Volo.Abp.BlobStoring.Database", + "name": "BlobStoringDatabaseDomainSharedModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "BookStoreDomainSharedModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.csproj new file mode 100644 index 0000000..9a95879 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStore.Domain.Shared.csproj @@ -0,0 +1,37 @@ + + + + + + net9.0 + enable + BookStore + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreDomainErrorCodes.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreDomainErrorCodes.cs new file mode 100644 index 0000000..1be85b8 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreDomainErrorCodes.cs @@ -0,0 +1,6 @@ +namespace BookStore; + +public static class BookStoreDomainErrorCodes +{ + /* You can add your business exception error codes here, as constants */ +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreDomainSharedModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreDomainSharedModule.cs new file mode 100644 index 0000000..051cf45 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreDomainSharedModule.cs @@ -0,0 +1,82 @@ +using BookStore.Localization; +using Volo.Abp.AuditLogging; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.Localization; +using Volo.Abp.Localization.ExceptionHandling; +using Volo.Abp.Validation.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.VirtualFileSystem; +using Volo.Abp.OpenIddict; +using Volo.Abp.BlobStoring.Database; +using Volo.Abp.TenantManagement; + +namespace BookStore; + +[DependsOn( + typeof(AbpAuditLoggingDomainSharedModule), + typeof(AbpBackgroundJobsDomainSharedModule), + typeof(AbpFeatureManagementDomainSharedModule), + typeof(AbpPermissionManagementDomainSharedModule), + typeof(AbpSettingManagementDomainSharedModule), + typeof(AbpIdentityDomainSharedModule), + typeof(AbpOpenIddictDomainSharedModule), + typeof(AbpTenantManagementDomainSharedModule), + typeof(BlobStoringDatabaseDomainSharedModule) + )] +public class BookStoreDomainSharedModule : AbpModule +{ + public override void PreConfigureServices(ServiceConfigurationContext context) + { + BookStoreGlobalFeatureConfigurator.Configure(); + BookStoreModuleExtensionConfigurator.Configure(); + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + + Configure(options => + { + options.Resources + .Add("en") + .AddBaseTypes(typeof(AbpValidationResource)) + .AddVirtualJson("/Localization/BookStore"); + + options.DefaultResourceType = typeof(BookStoreResource); + + options.Languages.Add(new LanguageInfo("en", "en", "English")); + options.Languages.Add(new LanguageInfo("en-GB", "en-GB", "English (United Kingdom)")); + options.Languages.Add(new LanguageInfo("zh-Hans", "zh-Hans", "简体中文")); + options.Languages.Add(new LanguageInfo("es", "es", "Español")); + options.Languages.Add(new LanguageInfo("ar", "ar", "العربية")); + options.Languages.Add(new LanguageInfo("hi", "hi", "हिन्दी")); + options.Languages.Add(new LanguageInfo("pt-BR", "pt-BR", "Português (Brasil)")); + options.Languages.Add(new LanguageInfo("fr", "fr", "Français")); + options.Languages.Add(new LanguageInfo("ru", "ru", "Русский")); + options.Languages.Add(new LanguageInfo("de-DE", "de-DE", "Deutsch (Deuthschland)")); + options.Languages.Add(new LanguageInfo("tr", "tr", "Türkçe")); + options.Languages.Add(new LanguageInfo("it", "it", "Italiano")); + options.Languages.Add(new LanguageInfo("cs", "cs", "Čeština")); + options.Languages.Add(new LanguageInfo("hu", "hu", "Magyar")); + options.Languages.Add(new LanguageInfo("ro-RO", "ro-RO", "Română (România)")); + options.Languages.Add(new LanguageInfo("sv", "sv", "Svenska")); + options.Languages.Add(new LanguageInfo("fi", "fi", "Suomi")); + options.Languages.Add(new LanguageInfo("sk", "sk", "Slovenčina")); + options.Languages.Add(new LanguageInfo("is", "is", "Íslenska")); + options.Languages.Add(new LanguageInfo("zh-Hant", "zh-Hant", "繁體中z文")); + + }); + + Configure(options => + { + options.MapCodeNamespace("BookStore", typeof(BookStoreResource)); + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreGlobalFeatureConfigurator.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreGlobalFeatureConfigurator.cs new file mode 100644 index 0000000..167a72f --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreGlobalFeatureConfigurator.cs @@ -0,0 +1,20 @@ +using Volo.Abp.GlobalFeatures; +using Volo.Abp.Threading; + +namespace BookStore; + +public static class BookStoreGlobalFeatureConfigurator +{ + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + OneTimeRunner.Run(() => + { + /* You can configure (enable/disable) global features of the used modules here. + * Please refer to the documentation to learn more about the Global Features System: + * https://docs.abp.io/en/abp/latest/Global-Features + */ + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreModuleExtensionConfigurator.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreModuleExtensionConfigurator.cs new file mode 100644 index 0000000..f5f40bc --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/BookStoreModuleExtensionConfigurator.cs @@ -0,0 +1,71 @@ +using System.ComponentModel.DataAnnotations; +using Volo.Abp.Identity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.Threading; + +namespace BookStore; + +public static class BookStoreModuleExtensionConfigurator +{ + private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); + + public static void Configure() + { + OneTimeRunner.Run(() => + { + ConfigureExistingProperties(); + ConfigureExtraProperties(); + }); + } + + private static void ConfigureExistingProperties() + { + /* You can change max lengths for properties of the + * entities defined in the modules used by your application. + * + * Example: Change user and role name max lengths + + AbpUserConsts.MaxNameLength = 99; + IdentityRoleConsts.MaxNameLength = 99; + + * Notice: It is not suggested to change property lengths + * unless you really need it. Go with the standard values wherever possible. + * + * If you are using EF Core, you will need to run the add-migration command after your changes. + */ + } + + private static void ConfigureExtraProperties() + { + /* You can configure extra properties for the + * entities defined in the modules used by your application. + * + * This class can be used to define these extra properties + * with a high level, easy to use API. + * + * Example: Add a new property to the user entity of the identity module + + ObjectExtensionManager.Instance.Modules() + .ConfigureIdentity(identity => + { + identity.ConfigureUser(user => + { + user.AddOrUpdateProperty( //property type: string + "SocialSecurityNumber", //property name + property => + { + //validation rules + property.Attributes.Add(new RequiredAttribute()); + property.Attributes.Add(new StringLengthAttribute(64) {MinimumLength = 4}); + + //...other configurations for this property + } + ); + }); + }); + + * See the documentation for more: + * https://docs.abp.io/en/abp/latest/Module-Entity-Extensions + */ + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ar.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ar.json new file mode 100644 index 0000000..dfb6c89 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ar.json @@ -0,0 +1,42 @@ +{ + "culture": "ar", + "texts": { + "AppName": "BookStore", + "Menu:Home": "منزل، بيت", + "Menu:ContactUs": "اتصل بنا", + "Menu:ArticleSample": "عينة المادة", + "Home": "منزل، بيت", + "Welcome": "مرحبا", + "LongWelcomeMessage": "مرحبا بكم في التطبيق. هذا مشروع بدء التشغيل يعتمد على إطار عمل برنامج ABP. لمزيد من المعلومات قم بزيارة", + "Date": "تاريخ", + "Permission:Dashboard": "لوحة القيادة", + "Menu:Dashboard": "لوحة القيادة", + "Menu:HomePage": "الصفحة الرئيسية", + "Dashboard": "لوحة القيادة", + "ExternalProvider:Google": "جوجل", + "ExternalProvider:Google:ClientId": "معرف العميل", + "ExternalProvider:Google:ClientSecret": "سر العميل", + "ExternalProvider:Microsoft": "مايكروسوفت", + "ExternalProvider:Microsoft:ClientId": "معرف العميل", + "ExternalProvider:Microsoft:ClientSecret": "سر العميل", + "ExternalProvider:Twitter": "تويتر", + "ExternalProvider:Twitter:ConsumerKey": "مفتاح المستهلك", + "ExternalProvider:Twitter:ConsumerSecret": "سر المستهلك", + "NewsletterHeader": "اشترك في النشرة الإخبارية!", + "NewsletterInfo": "احصل على معلومات حول آخر الأحداث.", + "NewsletterPreference_Default": "النشرة الإخبارية الافتراضية", + "NewsletterPrivacyAcceptMessage": "أوافق على سياسة الخصوصية .", + "Language": "لغة", + "Search": "يبحث", + "LoadMore": "تحميل المزيد", + "Settings": "إعدادات", + "Theme": "سمة", + "DeviceTheme": "موضوع الجهاز", + "Dark": "مظلم", + "Light": "ضوء", + "Unspecified": "نظام", + "SeeAllUsers": "رؤية كافة المستخدمين", + "TakePhoto": "تصوير", + "ChoosePhoto": "اختر صورة" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/cs.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/cs.json new file mode 100644 index 0000000..96d3df1 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/cs.json @@ -0,0 +1,9 @@ +{ + "Culture": "cs", + "Texts": { + "AppName": "BookStore", + "Menu:Home": "Home", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information visit", + "Welcome": "Welcome" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/de-DE.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/de-DE.json new file mode 100644 index 0000000..91727da --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/de-DE.json @@ -0,0 +1,42 @@ +{ + "culture": "de-DE", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Home", + "Menu:ContactUs": "Kontaktiere uns", + "Menu:ArticleSample": "Artikelmuster", + "Home": "Home", + "Welcome": "Willkommen", + "LongWelcomeMessage": "Willkommen in der Anwendung. Dies ist ein Startup-Projekt basierend auf dem ABP-Framework. Weitere Informationen finden Sie unter", + "Date": "Datum", + "Permission:Dashboard": "Dashboard", + "Menu:Dashboard": "Dashboard", + "Menu:HomePage": "Startseite", + "Dashboard": "Dashboard", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "Kunden ID", + "ExternalProvider:Google:ClientSecret": "Client-Geheimnis", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "Kunden ID", + "ExternalProvider:Microsoft:ClientSecret": "Client-Geheimnis", + "ExternalProvider:Twitter": "Twitter", + "ExternalProvider:Twitter:ConsumerKey": "Verbraucherschlüssel", + "ExternalProvider:Twitter:ConsumerSecret": "Verbrauchergeheimnis", + "NewsletterHeader": "Abonnieren Sie den Newsletter!", + "NewsletterInfo": "Informieren Sie sich über aktuelle Ereignisse.", + "NewsletterPreference_Default": "Standard-Newsletter", + "NewsletterPrivacyAcceptMessage": "Ich akzeptiere die Datenschutzerklärung.", + "Language": "Sprache", + "Search": "Suchen", + "LoadMore": "Mehr laden", + "Settings": "Einstellungen", + "Theme": "Thema", + "DeviceTheme": "Gerätethema", + "Dark": "Dunkel", + "Light": "Licht", + "Unspecified": "System", + "SeeAllUsers": "Alle Benutzer anzeigen", + "TakePhoto": "Foto machen", + "ChoosePhoto": "Wähle ein Foto aus" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/en-GB.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/en-GB.json new file mode 100644 index 0000000..9ce52ca --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/en-GB.json @@ -0,0 +1,9 @@ +{ + "Culture": "en-GB", + "Texts": { + "AppName": "BookStore", + "Menu:Home": "Home", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information visit", + "Welcome": "Welcome" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/en.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/en.json new file mode 100644 index 0000000..90874f6 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/en.json @@ -0,0 +1,9 @@ +{ + "Culture": "en", + "Texts": { + "AppName": "BookStore", + "Menu:Home": "Home", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information visit", + "Welcome": "Welcome" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/es.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/es.json new file mode 100644 index 0000000..43f20ea --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/es.json @@ -0,0 +1,42 @@ +{ + "culture": "es", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Hogar", + "Menu:ContactUs": "Contáctenos", + "Menu:ArticleSample": "Muestra de artículo", + "Home": "Hogar", + "Welcome": "Bienvenido", + "LongWelcomeMessage": "Bienvenido a la aplicacion. Este es un proyecto de inicio basado en el marco ABP. Para obtener mas informacion, visite", + "Date": "Fecha", + "Permission:Dashboard": "Panel de control", + "Menu:Dashboard": "Panel de control", + "Menu:HomePage": "Página de inicio", + "Dashboard": "Panel de control", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "ID de cliente", + "ExternalProvider:Google:ClientSecret": "Client Secret", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "ID de cliente", + "ExternalProvider:Microsoft:ClientSecret": "Client Secret", + "ExternalProvider:Twitter": "Twitter", + "ExternalProvider:Twitter:ConsumerKey": "Clave de consumidor", + "ExternalProvider:Twitter:ConsumerSecret": "Consumer Secret", + "NewsletterHeader": "Suscríbete a la newsletter!", + "NewsletterInfo": "Obtenga información sobre los últimos acontecimientos.", + "NewsletterPreference_Default": "Boletín de noticias predeterminado", + "NewsletterPrivacyAcceptMessage": "Acepto la Política de privacidad .", + "Language": "Idioma", + "Search": "Buscar", + "LoadMore": "Carga más", + "Settings": "Ajustes", + "Theme": "Tema", + "DeviceTheme": "Tema del dispositivo", + "Dark": "Oscuro", + "Light": "Luz", + "Unspecified": "Sistema", + "SeeAllUsers": "Ver todos los usuarios", + "TakePhoto": "Tomar foto", + "ChoosePhoto": "Escoge una foto" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/fi.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/fi.json new file mode 100644 index 0000000..306a774 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/fi.json @@ -0,0 +1,42 @@ +{ + "culture": "fi", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Koti", + "Menu:ContactUs": "Ota meihin yhteyttä", + "Menu:ArticleSample": "Artikkelinäyte", + "Home": "Koti", + "Welcome": "Tervetuloa", + "LongWelcomeMessage": "Tervetuloa sovellukseen. Tämä on ABP-kehykseen perustuva käynnistysprojekti. Lisätietoja on osoitteessa", + "Date": "Päivämäärä", + "Permission:Dashboard": "Kojelauta", + "Menu:Dashboard": "Kojelauta", + "Menu:HomePage": "Kotisivu", + "Dashboard": "Kojelauta", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "Asiakastunnus", + "ExternalProvider:Google:ClientSecret": "Asiakkaan salaisuus", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "Asiakastunnus", + "ExternalProvider:Microsoft:ClientSecret": "Asiakkaan salaisuus", + "ExternalProvider:Twitter": "Viserrys", + "ExternalProvider:Twitter:ConsumerKey": "Kuluttaja-avain", + "ExternalProvider:Twitter:ConsumerSecret": "Kuluttajan salaisuus", + "NewsletterHeader": "Tilaa uutiskirje!", + "NewsletterInfo": "Hanki tietoa viimeisimmistä tapahtumista.", + "NewsletterPreference_Default": "Oletusuutiskirje", + "NewsletterPrivacyAcceptMessage": "Hyväksyn tietosuojakäytännön .", + "Language": "Kieli", + "Search": "Hae", + "LoadMore": "Lataa lisää", + "Settings": "asetukset", + "Theme": "Teema", + "DeviceTheme": "Laitteen teema", + "Dark": "Tumma", + "Light": "Kevyt", + "Unspecified": "Järjestelmä", + "SeeAllUsers": "Katso Kaikki käyttäjät", + "TakePhoto": "Ota valokuva", + "ChoosePhoto": "Valitse Valokuva" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/fr.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/fr.json new file mode 100644 index 0000000..e498f7e --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/fr.json @@ -0,0 +1,42 @@ +{ + "culture": "fr", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Acceuil", + "Menu:ContactUs": "Nous contacter", + "Menu:ArticleSample": "Échantillon d'article", + "Home": "Acceuil", + "Welcome": "Bienvenue", + "LongWelcomeMessage": "Bienvenue dans l'application. Il s'agit d'un projet de démarrage basé sur le framework ABP. Pour plus d'informations, visitez", + "Date": "Date", + "Permission:Dashboard": "Tableau de bord", + "Menu:Dashboard": "Tableau de bord", + "Menu:HomePage": "Page d'accueil", + "Dashboard": "Tableau de bord", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "identité du client", + "ExternalProvider:Google:ClientSecret": "Secret du client", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "identité du client", + "ExternalProvider:Microsoft:ClientSecret": "Secret du client", + "ExternalProvider:Twitter": "Twitter", + "ExternalProvider:Twitter:ConsumerKey": "La clé du consommateur", + "ExternalProvider:Twitter:ConsumerSecret": "Secret du consommateur", + "NewsletterHeader": "Abonnez-vous à la newsletter!", + "NewsletterInfo": "Obtenez des informations sur les derniers événements.", + "NewsletterPreference_Default": "Newsletter par défaut", + "NewsletterPrivacyAcceptMessage": "J'accepte la Politique de confidentialité .", + "Language": "Langue", + "Search": "Recherche", + "LoadMore": "Charger plus", + "Settings": "Paramètres", + "Theme": "Thème", + "DeviceTheme": "Thème de l'appareil", + "Dark": "Sombre", + "Light": "Lumière", + "Unspecified": "Système", + "SeeAllUsers": "Voir tous les utilisateurs", + "TakePhoto": "Prendre une photo", + "ChoosePhoto": "Choisissez une photo" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/hi.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/hi.json new file mode 100644 index 0000000..c98acd5 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/hi.json @@ -0,0 +1,42 @@ +{ + "culture": "hi", + "texts": { + "AppName": "BookStore", + "Menu:Home": "घर", + "Menu:ContactUs": "संपर्क करें", + "Menu:ArticleSample": "आलेख नमूना", + "Home": "घर", + "Welcome": "स्वागत हे", + "LongWelcomeMessage": "आवेदन करने के लिए आपका स्वागत है। यह एबीपी ढांचे पर आधारित एक स्टार्टअप परियोजना है। अधिक जानकारी के लिए पर जाएँ।", + "Date": "दिनांक", + "Permission:Dashboard": "डैशबोर्ड", + "Menu:Dashboard": "डैशबोर्ड", + "Menu:HomePage": "मुख पृष्ठ", + "Dashboard": "डैशबोर्ड", + "ExternalProvider:Google": "गूगल", + "ExternalProvider:Google:ClientId": "ग्राहक ID", + "ExternalProvider:Google:ClientSecret": "ग्राहक गुप्त", + "ExternalProvider:Microsoft": "माइक्रोसॉफ्ट", + "ExternalProvider:Microsoft:ClientId": "ग्राहक ID", + "ExternalProvider:Microsoft:ClientSecret": "ग्राहक गुप्त", + "ExternalProvider:Twitter": "ट्विटर", + "ExternalProvider:Twitter:ConsumerKey": "उपभोक्ता कुंजी", + "ExternalProvider:Twitter:ConsumerSecret": "उपभोक्ता रहस्य", + "NewsletterHeader": "न्यूज़लेटर की सदस्यता लें!", + "NewsletterInfo": "नवीनतम घटनाओं के बारे में जानकारी प्राप्त करें।", + "NewsletterPreference_Default": "डिफ़ॉल्ट न्यूज़लैटर", + "NewsletterPrivacyAcceptMessage": "मैं गोपनीयता नीति स्वीकार करता हूं।", + "Language": "भाषा", + "Search": "खोज", + "LoadMore": "और लोड करें", + "Settings": "समायोजन", + "Theme": "विषय", + "DeviceTheme": "डिवाइस थीम", + "Dark": "अँधेरा", + "Light": "रोशनी", + "Unspecified": "प्रणाली", + "SeeAllUsers": "सभी उपयोगकर्ता देखें", + "TakePhoto": "फोटो लो", + "ChoosePhoto": "तस्विर का चयन करो" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/hu.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/hu.json new file mode 100644 index 0000000..0e38e37 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/hu.json @@ -0,0 +1,42 @@ +{ + "culture": "hu", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Kezdőlap", + "Menu:ContactUs": "Lépjen kapcsolatba velünk", + "Menu:ArticleSample": "Cikkminta", + "Home": "Kezdőlap", + "Welcome": "Üdvözöljük", + "LongWelcomeMessage": "Üdvözöljük az alkalmazásban. Ez egy ABP keretrendszeren alapuló startup projekt. További információért látogasson el az oldalra", + "Date": "dátum", + "Permission:Dashboard": "Irányítópult", + "Menu:Dashboard": "Irányítópult", + "Menu:HomePage": "Kezdőlap", + "Dashboard": "Irányítópult", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "Ügyfélazonosító", + "ExternalProvider:Google:ClientSecret": "Ügyfél titkos kulcs", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "Ügyfélazonosító", + "ExternalProvider:Microsoft:ClientSecret": "Ügyfél titkos kulcs", + "ExternalProvider:Twitter": "Twitter", + "ExternalProvider:Twitter:ConsumerKey": "Fogyasztói kulcs", + "ExternalProvider:Twitter:ConsumerSecret": "Fogyasztói titkos kulcs", + "NewsletterHeader": "Iratkozz fel a hírlevélre!", + "NewsletterInfo": "Tájékozódjon a legfrissebb eseményekről.", + "NewsletterPreference_Default": "Alapértelmezett hírlevél", + "NewsletterPrivacyAcceptMessage": "Elfogadom az Adatvédelmi szabályzatot .", + "Language": "Nyelv", + "Search": "Keresés", + "LoadMore": "Load More", + "Settings": "Beállítások", + "Theme": "Téma", + "DeviceTheme": "Eszköz téma", + "Dark": "Sötét", + "Light": "Fény", + "Unspecified": "Rendszer", + "SeeAllUsers": "Lásd: Összes felhasználó", + "TakePhoto": "Fotót készíteni", + "ChoosePhoto": "Válassz képet" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/is.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/is.json new file mode 100644 index 0000000..1ed7e68 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/is.json @@ -0,0 +1,9 @@ +{ + "Culture": "is", + "Texts": { + "AppName": "BookStore", + "Menu:Home": "Home", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information visit", + "Welcome": "Welcome" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/it.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/it.json new file mode 100644 index 0000000..42806bc --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/it.json @@ -0,0 +1,42 @@ +{ + "culture": "it", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Home", + "Menu:ContactUs": "Contattaci", + "Menu:ArticleSample": "Esempio di articolo", + "Home": "Home", + "Welcome": "Benvenuto", + "LongWelcomeMessage": "Benvenuto nell'applicazione. Questo è un progetto di avvio basato sul framework ABP. Per maggiori informazioni visita", + "Date": "Data", + "Permission:Dashboard": "Cruscotto", + "Menu:Dashboard": "Cruscotto", + "Menu:HomePage": "Pagina iniziale", + "Dashboard": "Cruscotto", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "Client ID", + "ExternalProvider:Google:ClientSecret": "Client Secret", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "Client ID", + "ExternalProvider:Microsoft:ClientSecret": "Client Secret", + "ExternalProvider:Twitter": "Twitter", + "ExternalProvider:Twitter:ConsumerKey": "Consumer Key", + "ExternalProvider:Twitter:ConsumerSecret": "Consumer Secret", + "NewsletterHeader": "Iscriviti alla newsletter!", + "NewsletterInfo": "Ottieni informazioni sugli ultimi avvenimenti.", + "NewsletterPreference_Default": "Newsletter predefinita", + "NewsletterPrivacyAcceptMessage": "Accetto la Informativa sulla privacy.", + "Language": "Lingua", + "Search": "Ricerca", + "LoadMore": "Carica altro", + "Settings": "Impostazioni", + "Theme": "Tema", + "DeviceTheme": "Tema del dispositivo", + "Dark": "Buio", + "Light": "Leggero", + "Unspecified": "Sistema", + "SeeAllUsers": "Visualizza tutti gli utenti", + "TakePhoto": "Fare foto", + "ChoosePhoto": "Scegli la foto" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/pt-BR.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/pt-BR.json new file mode 100644 index 0000000..4d3ae19 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/pt-BR.json @@ -0,0 +1,42 @@ +{ + "culture": "pt-BR", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Principal", + "Menu:ContactUs": "Entre em contato conosco", + "Menu:ArticleSample": "Amostra de Artigo", + "Home": "Casa", + "Welcome": "Seja bem-vindo!", + "LongWelcomeMessage": "Bem-vindo a esta aplicação. Este é um projeto inicial baseado no ABP framework. Para mais informações, visite", + "Date": "Data", + "Permission:Dashboard": "Painel", + "Menu:Dashboard": "Painel", + "Menu:HomePage": "Pagina inicial", + "Dashboard": "Painel", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "ID do Cliente", + "ExternalProvider:Google:ClientSecret": "Segredo do cliente", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "ID do Cliente", + "ExternalProvider:Microsoft:ClientSecret": "Segredo do cliente", + "ExternalProvider:Twitter": "Twitter", + "ExternalProvider:Twitter:ConsumerKey": "Chave do consumidor", + "ExternalProvider:Twitter:ConsumerSecret": "consumidor secreto", + "NewsletterHeader": "Assine a newsletter!", + "NewsletterInfo": "Obtenha informações sobre os últimos acontecimentos.", + "NewsletterPreference_Default": "Boletim informativo padrão", + "NewsletterPrivacyAcceptMessage": "Eu aceito a Política de Privacidade .", + "Language": "Linguagem", + "Search": "Procurar", + "LoadMore": "Carregue mais", + "Settings": "Configurações", + "Theme": "Tema", + "DeviceTheme": "Tema do dispositivo", + "Dark": "Escuro", + "Light": "Luz", + "Unspecified": "Sistema", + "SeeAllUsers": "Ver todos os usuários", + "TakePhoto": "Tirar fotos", + "ChoosePhoto": "Escolher Foto" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ro-RO.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ro-RO.json new file mode 100644 index 0000000..19a18cb --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ro-RO.json @@ -0,0 +1,9 @@ +{ + "Culture": "ro-RO", + "Texts": { + "AppName": "BookStore", + "Menu:Home": "Home", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information visit", + "Welcome": "Welcome" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ru.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ru.json new file mode 100644 index 0000000..b97912e --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/ru.json @@ -0,0 +1,42 @@ +{ + "culture": "ru", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Дома", + "Menu:ContactUs": "Связаться с нами", + "Menu:ArticleSample": "Образец статьи", + "Home": "Дома", + "Welcome": "Добро пожаловать", + "LongWelcomeMessage": "Добро пожаловать в приложение. Это стартап-проект, основанный на структуре ABP. Для получения дополнительной информации посетите сайт", + "Date": "датировать", + "Permission:Dashboard": "Панель приборов", + "Menu:Dashboard": "Панель приборов", + "Menu:HomePage": "Домашняя страница", + "Dashboard": "Панель приборов", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "ID клиента", + "ExternalProvider:Google:ClientSecret": "Секрет клиента", + "ExternalProvider:Microsoft": "Майкрософт", + "ExternalProvider:Microsoft:ClientId": "ID клиента", + "ExternalProvider:Microsoft:ClientSecret": "Секрет клиента", + "ExternalProvider:Twitter": "Твиттер", + "ExternalProvider:Twitter:ConsumerKey": "Потребительский ключ", + "ExternalProvider:Twitter:ConsumerSecret": "Потребительский секрет", + "NewsletterHeader": "Подпишитесь на рассылку!", + "NewsletterInfo": "Получайте информацию о последних событиях.", + "NewsletterPreference_Default": "Информационный бюллетень по умолчанию", + "NewsletterPrivacyAcceptMessage": "Я принимаю Политику конфиденциальности.", + "Language": "Язык", + "Search": "Поиск", + "LoadMore": "Загрузи больше", + "Settings": "Настройки", + "Theme": "Тема", + "DeviceTheme": "Тема устройства", + "Dark": "Темный", + "Light": "Свет", + "Unspecified": "Система", + "SeeAllUsers": "Просмотреть всех пользователей", + "TakePhoto": "Сделать фотографию", + "ChoosePhoto": "Выбрать фото" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/sk.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/sk.json new file mode 100644 index 0000000..cfa4247 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/sk.json @@ -0,0 +1,42 @@ +{ + "culture": "sk", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Domov", + "Menu:ContactUs": "Kontaktujte nás", + "Menu:ArticleSample": "Ukážka článku", + "Home": "Domov", + "Welcome": "Vitajte", + "LongWelcomeMessage": "Vitajte v aplikácii. Toto je štartovací projekt založený na ABP frameworku. Viac informácií nájdete na stránke", + "Date": "Dátum", + "Permission:Dashboard": "Dashboard", + "Menu:Dashboard": "Dashboard", + "Menu:HomePage": "Domovská stránka", + "Dashboard": "Dashboard", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "Client ID", + "ExternalProvider:Google:ClientSecret": "Client Secret", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "Client ID", + "ExternalProvider:Microsoft:ClientSecret": "Client Secret", + "ExternalProvider:Twitter": "Twitter", + "ExternalProvider:Twitter:ConsumerKey": "Consumer Key", + "ExternalProvider:Twitter:ConsumerSecret": "Consumer Secret", + "NewsletterHeader": "Prihláste sa na odber noviniek!", + "NewsletterInfo": "Získajte informácie o najnovšiom dianí.", + "NewsletterPreference_Default": "Predvolený odber noviniek", + "NewsletterPrivacyAcceptMessage": "Súhlasím so Zásadami ochrany osobných údajov.", + "Language": "Jazyk", + "Search": "Vyhľadávanie", + "LoadMore": "Načítať viac", + "Settings": "nastavenie", + "Theme": "Téma", + "DeviceTheme": "Téma zariadenia", + "Dark": "Tmavý", + "Light": "Svetlo", + "Unspecified": "Systém", + "SeeAllUsers": "Pozrite si Všetci používatelia", + "TakePhoto": "Odfoť", + "ChoosePhoto": "Vyberte fotografiu" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/sv.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/sv.json new file mode 100644 index 0000000..f5c6717 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/sv.json @@ -0,0 +1,42 @@ +{ + "Culture": "sv", + "Texts": { + "AppName": "BookStore", + "Menu:ContactUs": "Kontakta oss", + "Menu:ArticleSample": "Artikelexempel", + "Home": "Hem", + "Date": "Datum", + "Permission:Dashboard": "Dashboard", + "Menu:Dashboard": "Dashboard", + "Menu:HomePage": "Hemsida", + "Dashboard": "Dashboard", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "Klient-ID", + "ExternalProvider:Google:ClientSecret": "Klienthemlighet", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "Klient-ID", + "ExternalProvider:Microsoft:ClientSecret": "Klienthemlighet", + "ExternalProvider:Twitter": "Twitter (X)", + "ExternalProvider:Twitter:ConsumerKey": "Konsumentnyckel", + "ExternalProvider:Twitter:ConsumerSecret": "Konsumenthemlighet", + "NewsletterHeader": "Prenumerera på nyhetsbrevet!", + "NewsletterInfo": "Få information om de senaste händelserna.", + "NewsletterPreference_Default": "Standardnyhetsbrev", + "NewsletterPrivacyAcceptMessage": "Jag accepterar Sekretesspolicy.", + "Language": "Språk", + "Search": "Söka", + "LoadMore": "Ladda mer", + "Settings": "Inställningar", + "Theme": "Tema", + "DeviceTheme": "Enhetstema", + "Dark": "Mörk", + "Light": "Ljus", + "Unspecified": "System", + "SeeAllUsers": "Se Alla användare", + "TakePhoto": "Ta foto", + "ChoosePhoto": "Välj Foto", + "Menu:Home": "Hem", + "LongWelcomeMessage": "Välkommen till ansökan. ", + "Welcome": "Välkomna" + } + } \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/tr.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/tr.json new file mode 100644 index 0000000..fc1011c --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/tr.json @@ -0,0 +1,42 @@ +{ + "culture": "tr", + "texts": { + "AppName": "BookStore", + "Menu:Home": "Ana sayfa", + "Menu:ContactUs": "Bize Ulaşın", + "Menu:ArticleSample": "Yazı Örneği", + "Home": "Ana sayfa", + "Welcome": "Hoşgeldiniz", + "LongWelcomeMessage": "Uygulamaya hoşgeldiniz. Bu, ABP framework'ü üzerine bina edilmiş bir başlangıç projesidir. Daha fazla bilgi için ziyaret edebilirsiniz", + "Date": "Tarih", + "Permission:Dashboard": "Genel görünüm", + "Menu:Dashboard": "Genel görünüm", + "Menu:HomePage": "ana sayfa", + "Dashboard": "Genel görünüm", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "Client ID", + "ExternalProvider:Google:ClientSecret": "Client Secret", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "Client ID", + "ExternalProvider:Microsoft:ClientSecret": "Client Secret", + "ExternalProvider:Twitter": "Twitter", + "ExternalProvider:Twitter:ConsumerKey": "Consumer Key", + "ExternalProvider:Twitter:ConsumerSecret": "Consumer Secret", + "NewsletterHeader": "Bültene abone olun!", + "NewsletterInfo": "Son gelişmeler hakkında bilgi alın.", + "NewsletterPreference_Default": "Varsayılan Bülten", + "NewsletterPrivacyAcceptMessage": "Gizlilik Politikası'nı kabul ediyorum.", + "Language": "Dil", + "Search": "Ara", + "LoadMore": "Daha fazla yükle", + "Settings": "Ayarlar", + "Theme": "Tema", + "DeviceTheme": "Cihaz Teması", + "Dark": "Koyu", + "Light": "Açık", + "Unspecified": "Sistem", + "SeeAllUsers": "Tüm Kullanıcıları Gör", + "TakePhoto": "Fotoğraf Çek", + "ChoosePhoto": "Fotoğraf Seç" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/zh-Hans.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/zh-Hans.json new file mode 100644 index 0000000..fcdc1ee --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/zh-Hans.json @@ -0,0 +1,42 @@ +{ + "culture": "zh-Hans", + "texts": { + "AppName": "BookStore", + "Menu:Home": "首页", + "Menu:ContactUs": "联系我们", + "Menu:ArticleSample": "文章示例", + "Home": "首页", + "Welcome": "欢迎", + "LongWelcomeMessage": "欢迎使用本应用程序。这是一个基于 ABP 框架的启动项目。欲了解更多信息,请访问", + "Date": "日期", + "Permission:Dashboard": "仪表板", + "Menu:Dashboard": "仪表板", + "Menu:HomePage": "主页", + "Dashboard": "仪表板", + "ExternalProvider:Google": "Google", + "ExternalProvider:Google:ClientId": "Client Id", + "ExternalProvider:Google:ClientSecret": "Client Secret", + "ExternalProvider:Microsoft": "Microsoft", + "ExternalProvider:Microsoft:ClientId": "Client Id", + "ExternalProvider:Microsoft:ClientSecret": "Client Secret", + "ExternalProvider:Twitter": "Twitter", + "ExternalProvider:Twitter:ConsumerKey": "Consumer Key", + "ExternalProvider:Twitter:ConsumerSecret": "Consumer Secret", + "NewsletterHeader": "订阅时事通讯!", + "NewsletterInfo": "了解最新动态。", + "NewsletterPreference_Default": "默认通讯", + "NewsletterPrivacyAcceptMessage": "我接受隐私政策。", + "Language": "语言", + "Search": "搜索", + "LoadMore": "加载更多", + "Settings": "设置", + "Theme": "主题", + "DeviceTheme": "设备主题", + "Dark": "Dark", + "Light": "Light", + "Unspecified": "System", + "SeeAllUsers": "查看所有用户", + "TakePhoto": "拍摄照片", + "ChoosePhoto": "选择照片" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/zh-Hant.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/zh-Hant.json new file mode 100644 index 0000000..a1818f0 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStore/zh-Hant.json @@ -0,0 +1,9 @@ +{ + "Culture": "zh-Hant", + "Texts": { + "AppName": "BookStore", + "Menu:Home": "Home", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information visit", + "Welcome": "Welcome" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStoreResource.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStoreResource.cs new file mode 100644 index 0000000..18e16ba --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/Localization/BookStoreResource.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Localization; + +namespace BookStore.Localization; + +[LocalizationResourceName("BookStore")] +public class BookStoreResource +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs new file mode 100644 index 0000000..468f26a --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain.Shared/MultiTenancy/MultiTenancyConsts.cs @@ -0,0 +1,10 @@ +namespace BookStore.MultiTenancy; + +public static class MultiTenancyConsts +{ + /* Enable/disable multi-tenancy easily in a single point. + * If you will never need to multi-tenancy, you can remove + * related modules and code parts, including this file. + */ + public const bool IsEnabled = true; +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.abppkg new file mode 100644 index 0000000..1d574ef --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.domain" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.abppkg.analyze.json b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.abppkg.analyze.json new file mode 100644 index 0000000..444cfad --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.abppkg.analyze.json @@ -0,0 +1,138 @@ +{ + "name": "BookStore.Domain", + "hash": "", + "contents": [ + { + "namespace": "BookStore", + "dependsOnModules": [ + { + "declaringAssemblyName": "BookStore.Domain.Shared", + "namespace": "BookStore", + "name": "BookStoreDomainSharedModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AuditLogging.Domain", + "namespace": "Volo.Abp.AuditLogging", + "name": "AbpAuditLoggingDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Caching", + "namespace": "Volo.Abp.Caching", + "name": "AbpCachingModule" + }, + { + "declaringAssemblyName": "Volo.Abp.BackgroundJobs.Domain", + "namespace": "Volo.Abp.BackgroundJobs", + "name": "AbpBackgroundJobsDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.Domain", + "namespace": "Volo.Abp.FeatureManagement", + "name": "AbpFeatureManagementDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Domain.Identity", + "namespace": "Volo.Abp.PermissionManagement.Identity", + "name": "AbpPermissionManagementDomainIdentityModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.Domain.OpenIddict", + "namespace": "Volo.Abp.PermissionManagement.OpenIddict", + "name": "AbpPermissionManagementDomainOpenIddictModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.Domain", + "namespace": "Volo.Abp.SettingManagement", + "name": "AbpSettingManagementDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Emailing", + "namespace": "Volo.Abp.Emailing", + "name": "AbpEmailingModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Identity.Pro.Domain", + "namespace": "Volo.Abp.Identity", + "name": "AbpIdentityProDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.OpenIddict.Pro.Domain", + "namespace": "Volo.Abp.OpenIddict", + "name": "AbpOpenIddictProDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.TextTemplateManagement.Domain", + "namespace": "Volo.Abp.TextTemplateManagement", + "name": "TextTemplateManagementDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.LanguageManagement.Domain", + "namespace": "Volo.Abp.LanguageManagement", + "name": "LanguageManagementDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Commercial.SuiteTemplates", + "namespace": "Volo.Abp.Commercial.SuiteTemplates", + "name": "VoloAbpCommercialSuiteTemplatesModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Gdpr.Domain", + "namespace": "Volo.Abp.Gdpr", + "name": "AbpGdprDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.BlobStoring.Database.Domain", + "namespace": "Volo.Abp.BlobStoring.Database", + "name": "BlobStoringDatabaseDomainModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "BookStoreDomainModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.csproj new file mode 100644 index 0000000..cb8accc --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStore.Domain.csproj @@ -0,0 +1,33 @@ + + + + + + net9.0 + enable + BookStore + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStoreConsts.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStoreConsts.cs new file mode 100644 index 0000000..74b09a8 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStoreConsts.cs @@ -0,0 +1,11 @@ +using Volo.Abp.Identity; + +namespace BookStore; + +public static class BookStoreConsts +{ + public const string DbTablePrefix = "App"; + public const string? DbSchema = null; + public const string AdminEmailDefaultValue = IdentityDataSeedContributor.AdminEmailDefaultValue; + public const string AdminPasswordDefaultValue = IdentityDataSeedContributor.AdminPasswordDefaultValue; +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStoreDomainModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStoreDomainModule.cs new file mode 100644 index 0000000..a477c50 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/BookStoreDomainModule.cs @@ -0,0 +1,52 @@ +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.DependencyInjection.Extensions; +using BookStore.Localization; +using BookStore.MultiTenancy; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.MultiTenancy; +using Volo.Abp.PermissionManagement.Identity; +using Volo.Abp.SettingManagement; +using Volo.Abp.BlobStoring.Database; +using Volo.Abp.Caching; +using Volo.Abp.OpenIddict; +using Volo.Abp.PermissionManagement.OpenIddict; +using Volo.Abp.AuditLogging; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.Emailing; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.TenantManagement; + +namespace BookStore; + +[DependsOn( + typeof(BookStoreDomainSharedModule), + typeof(AbpAuditLoggingDomainModule), + typeof(AbpCachingModule), + typeof(AbpBackgroundJobsDomainModule), + typeof(AbpFeatureManagementDomainModule), + typeof(AbpPermissionManagementDomainIdentityModule), + typeof(AbpPermissionManagementDomainOpenIddictModule), + typeof(AbpSettingManagementDomainModule), + typeof(AbpEmailingModule), + typeof(AbpIdentityDomainModule), + typeof(AbpOpenIddictDomainModule), + typeof(AbpTenantManagementDomainModule), + typeof(BlobStoringDatabaseDomainModule) + )] +public class BookStoreDomainModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.IsEnabled = MultiTenancyConsts.IsEnabled; + }); + + +#if DEBUG + context.Services.Replace(ServiceDescriptor.Singleton()); +#endif + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/BookStoreDbMigrationService.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/BookStoreDbMigrationService.cs new file mode 100644 index 0000000..ff74805 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/BookStoreDbMigrationService.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Identity; +using Volo.Abp.MultiTenancy; +using BookStore.MultiTenancy; +using Volo.Abp.TenantManagement; + +namespace BookStore.Data; + +public class BookStoreDbMigrationService : ITransientDependency +{ + public ILogger Logger { get; set; } + + private readonly IDataSeeder _dataSeeder; + private readonly IEnumerable _dbSchemaMigrators; + private readonly ITenantRepository _tenantRepository; + private readonly ICurrentTenant _currentTenant; + + public BookStoreDbMigrationService( + IDataSeeder dataSeeder, + ITenantRepository tenantRepository, + ICurrentTenant currentTenant, + IEnumerable dbSchemaMigrators) + { + _dataSeeder = dataSeeder; + _tenantRepository = tenantRepository; + _currentTenant = currentTenant; + _dbSchemaMigrators = dbSchemaMigrators; + + Logger = NullLogger.Instance; + } + + public async Task MigrateAsync() + { + + Logger.LogInformation("Started database migrations..."); + + await MigrateDatabaseSchemaAsync(); + await SeedDataAsync(); + + Logger.LogInformation($"Successfully completed host database migrations."); + + if (MultiTenancyConsts.IsEnabled) + { + + var tenants = await _tenantRepository.GetListAsync(includeDetails: true); + + var migratedDatabaseSchemas = new HashSet(); + foreach (var tenant in tenants) + { + using (_currentTenant.Change(tenant.Id)) + { + if (tenant.ConnectionStrings.Any()) + { + var tenantConnectionStrings = tenant.ConnectionStrings + .Select(x => x.Value) + .ToList(); + + if (!migratedDatabaseSchemas.IsSupersetOf(tenantConnectionStrings)) + { + await MigrateDatabaseSchemaAsync(tenant); + + migratedDatabaseSchemas.AddIfNotContains(tenantConnectionStrings); + } + } + + await SeedDataAsync(tenant); + } + + Logger.LogInformation($"Successfully completed {tenant.Name} tenant database migrations."); + } + + Logger.LogInformation("Successfully completed all database migrations."); + } + Logger.LogInformation("You can safely end this process..."); + } + + private async Task MigrateDatabaseSchemaAsync(Tenant? tenant = null) + { + Logger.LogInformation( + $"Migrating schema for {(tenant == null ? "host" : tenant.Name + " tenant")} database..."); + + foreach (var migrator in _dbSchemaMigrators) + { + await migrator.MigrateAsync(); + } + } + + private async Task SeedDataAsync(Tenant? tenant = null) + { + Logger.LogInformation($"Executing {(tenant == null ? "host" : tenant.Name + " tenant")} database seed..."); + + await _dataSeeder.SeedAsync(new DataSeedContext(tenant?.Id) + .WithProperty(IdentityDataSeedContributor.AdminEmailPropertyName, + BookStoreConsts.AdminEmailDefaultValue) + .WithProperty(IdentityDataSeedContributor.AdminPasswordPropertyName, + BookStoreConsts.AdminPasswordDefaultValue) + ); + } + +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/IBookStoreDbSchemaMigrator.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/IBookStoreDbSchemaMigrator.cs new file mode 100644 index 0000000..372dbc5 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/IBookStoreDbSchemaMigrator.cs @@ -0,0 +1,8 @@ +using System.Threading.Tasks; + +namespace BookStore.Data; + +public interface IBookStoreDbSchemaMigrator +{ + Task MigrateAsync(); +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/NullBookStoreDbSchemaMigrator.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/NullBookStoreDbSchemaMigrator.cs new file mode 100644 index 0000000..cc531af --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Data/NullBookStoreDbSchemaMigrator.cs @@ -0,0 +1,15 @@ +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace BookStore.Data; + +/* This is used if database provider does't define + * IBookStoreDbSchemaMigrator implementation. + */ +public class NullBookStoreDbSchemaMigrator : IBookStoreDbSchemaMigrator, ITransientDependency +{ + public Task MigrateAsync() + { + return Task.CompletedTask; + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Identity/ChangeIdentityPasswordPolicySettingDefinitionProvider.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Identity/ChangeIdentityPasswordPolicySettingDefinitionProvider.cs new file mode 100644 index 0000000..4f4443a --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Identity/ChangeIdentityPasswordPolicySettingDefinitionProvider.cs @@ -0,0 +1,34 @@ +using Volo.Abp.Identity.Settings; +using Volo.Abp.Settings; + +namespace BookStore.Identity; + +public class ChangeIdentityPasswordPolicySettingDefinitionProvider : SettingDefinitionProvider +{ + public override void Define(ISettingDefinitionContext context) + { + var requireNonAlphanumeric = context.GetOrNull(IdentitySettingNames.Password.RequireNonAlphanumeric); + if (requireNonAlphanumeric != null) + { + requireNonAlphanumeric.DefaultValue = false.ToString(); + } + + var requireLowercase = context.GetOrNull(IdentitySettingNames.Password.RequireLowercase); + if (requireLowercase != null) + { + requireLowercase.DefaultValue = false.ToString(); + } + + var requireUppercase = context.GetOrNull(IdentitySettingNames.Password.RequireUppercase); + if (requireUppercase != null) + { + requireUppercase.DefaultValue = false.ToString(); + } + + var requireDigit = context.GetOrNull(IdentitySettingNames.Password.RequireDigit); + if (requireDigit != null) + { + requireDigit.DefaultValue = false.ToString(); + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/OpenIddict/OpenIddictDataSeedContributor.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/OpenIddict/OpenIddictDataSeedContributor.cs new file mode 100644 index 0000000..fcd3e91 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/OpenIddict/OpenIddictDataSeedContributor.cs @@ -0,0 +1,390 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text.Json; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Localization; +using OpenIddict.Abstractions; +using Volo.Abp; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.OpenIddict.Applications; +using Volo.Abp.OpenIddict.Scopes; +using Volo.Abp.PermissionManagement; +using Volo.Abp.Uow; + +namespace BookStore.OpenIddict; + +/* Creates initial data that is needed to property run the application + * and make client-to-server communication possible. + */ +public class OpenIddictDataSeedContributor : IDataSeedContributor, ITransientDependency +{ + private readonly IConfiguration _configuration; + private readonly IOpenIddictApplicationRepository _openIddictApplicationRepository; + private readonly IAbpApplicationManager _applicationManager; + private readonly IOpenIddictScopeRepository _openIddictScopeRepository; + private readonly IOpenIddictScopeManager _scopeManager; + private readonly IPermissionDataSeeder _permissionDataSeeder; + private readonly IStringLocalizer L; + + public OpenIddictDataSeedContributor( + IConfiguration configuration, + IOpenIddictApplicationRepository openIddictApplicationRepository, + IAbpApplicationManager applicationManager, + IOpenIddictScopeRepository openIddictScopeRepository, + IOpenIddictScopeManager scopeManager, + IPermissionDataSeeder permissionDataSeeder, + IStringLocalizer l) + { + _configuration = configuration; + _openIddictApplicationRepository = openIddictApplicationRepository; + _applicationManager = applicationManager; + _openIddictScopeRepository = openIddictScopeRepository; + _scopeManager = scopeManager; + _permissionDataSeeder = permissionDataSeeder; + L = l; + } + + [UnitOfWork] + public virtual async Task SeedAsync(DataSeedContext context) + { + await CreateScopesAsync(); + await CreateApplicationsAsync(); + } + + private async Task CreateScopesAsync() + { + if (await _openIddictScopeRepository.FindByNameAsync("BookStore") == null) + { + await _scopeManager.CreateAsync(new OpenIddictScopeDescriptor { + Name = "BookStore", DisplayName = "BookStore API", Resources = { "BookStore" } + }); + } + } + + private async Task CreateApplicationsAsync() + { + var commonScopes = new List { + OpenIddictConstants.Permissions.Scopes.Address, + OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, + OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles, + "BookStore" + }; + + var configurationSection = _configuration.GetSection("OpenIddict:Applications"); + + + //Console Test / Angular Client + var consoleAndAngularClientId = configurationSection["BookStore_App:ClientId"]; + if (!consoleAndAngularClientId.IsNullOrWhiteSpace()) + { + var consoleAndAngularClientRootUrl = configurationSection["BookStore_App:RootUrl"]?.TrimEnd('/'); + await CreateApplicationAsync( + applicationType: OpenIddictConstants.ApplicationTypes.Web, + name: consoleAndAngularClientId!, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Console Test / Angular Application", + secret: null, + grantTypes: new List { + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.RefreshToken, + "LinkLogin", + "Impersonation" + }, + scopes: commonScopes, + redirectUris: new List { consoleAndAngularClientRootUrl }, + postLogoutRedirectUris: new List { consoleAndAngularClientRootUrl }, + clientUri: consoleAndAngularClientRootUrl, + logoUri: "/images/clients/angular.svg" + ); + } + + + + + // Blazor Client + var blazorClientId = configurationSection["BookStore_Blazor:ClientId"]; + if (!blazorClientId.IsNullOrWhiteSpace()) + { + var blazorRootUrl = configurationSection["BookStore_Blazor:RootUrl"]?.TrimEnd('/'); + + await CreateApplicationAsync( + applicationType: OpenIddictConstants.ApplicationTypes.Web, + name: blazorClientId!, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Blazor Application", + secret: null, + grantTypes: new List { + OpenIddictConstants.GrantTypes.AuthorizationCode, + OpenIddictConstants.GrantTypes.RefreshToken, + }, + scopes: commonScopes, + redirectUris: new List { $"{blazorRootUrl}/authentication/login-callback" }, + postLogoutRedirectUris: new List { $"{blazorRootUrl}/authentication/logout-callback" }, + clientUri: blazorRootUrl, + logoUri: "/images/clients/blazor.svg" + ); + } + + + + // Swagger Client + var swaggerClientId = configurationSection["BookStore_Swagger:ClientId"]; + if (!swaggerClientId.IsNullOrWhiteSpace()) + { + var swaggerRootUrl = configurationSection["BookStore_Swagger:RootUrl"]?.TrimEnd('/'); + + await CreateApplicationAsync( + applicationType: OpenIddictConstants.ApplicationTypes.Web, + name: swaggerClientId!, + type: OpenIddictConstants.ClientTypes.Public, + consentType: OpenIddictConstants.ConsentTypes.Implicit, + displayName: "Swagger Application", + secret: null, + grantTypes: new List { OpenIddictConstants.GrantTypes.AuthorizationCode, }, + scopes: commonScopes, + redirectUris: new List { $"{swaggerRootUrl}/swagger/oauth2-redirect.html" }, + clientUri: swaggerRootUrl.EnsureEndsWith('/') + "swagger", + logoUri: "/images/clients/swagger.svg" + ); + } + + + } + + private async Task CreateApplicationAsync( + [NotNull] string applicationType, + [NotNull] string name, + [NotNull] string type, + [NotNull] string consentType, + string displayName, + string? secret, + List grantTypes, + List scopes, + List? redirectUris = null, + List? postLogoutRedirectUris = null, + List? permissions = null, + string? clientUri = null, + string? logoUri = null) + { + if (!string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Public, + StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["NoClientSecretCanBeSetForPublicApplications"]); + } + + if (string.IsNullOrEmpty(secret) && string.Equals(type, OpenIddictConstants.ClientTypes.Confidential, + StringComparison.OrdinalIgnoreCase)) + { + throw new BusinessException(L["TheClientSecretIsRequiredForConfidentialApplications"]); + } + + var client = await _openIddictApplicationRepository.FindByClientIdAsync(name); + + var application = new AbpApplicationDescriptor { + ApplicationType = applicationType, + ClientId = name, + ClientType = type, + ClientSecret = secret, + ConsentType = consentType, + DisplayName = displayName, + ClientUri = clientUri, + LogoUri = logoUri, + }; + + Check.NotNullOrEmpty(grantTypes, nameof(grantTypes)); + Check.NotNullOrEmpty(scopes, nameof(scopes)); + + if (new[] { OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.Implicit }.All( + grantTypes.Contains)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdToken); + + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeIdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.CodeToken); + } + } + + if (!redirectUris.IsNullOrEmpty() || !postLogoutRedirectUris.IsNullOrEmpty()) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.EndSession); + } + + var buildInGrantTypes = new[] { + OpenIddictConstants.GrantTypes.Implicit, OpenIddictConstants.GrantTypes.Password, + OpenIddictConstants.GrantTypes.AuthorizationCode, OpenIddictConstants.GrantTypes.ClientCredentials, + OpenIddictConstants.GrantTypes.DeviceCode, OpenIddictConstants.GrantTypes.RefreshToken + }; + + foreach (var grantType in grantTypes) + { + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.AuthorizationCode); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Code); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Authorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.AuthorizationCode || + grantType == OpenIddictConstants.GrantTypes.ClientCredentials || + grantType == OpenIddictConstants.GrantTypes.Password || + grantType == OpenIddictConstants.GrantTypes.RefreshToken || + grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Token); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Revocation); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.Introspection); + } + + if (grantType == OpenIddictConstants.GrantTypes.ClientCredentials) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.ClientCredentials); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Implicit); + } + + if (grantType == OpenIddictConstants.GrantTypes.Password) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.Password); + } + + if (grantType == OpenIddictConstants.GrantTypes.RefreshToken) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.RefreshToken); + } + + if (grantType == OpenIddictConstants.GrantTypes.DeviceCode) + { + application.Permissions.Add(OpenIddictConstants.Permissions.GrantTypes.DeviceCode); + application.Permissions.Add(OpenIddictConstants.Permissions.Endpoints.DeviceAuthorization); + } + + if (grantType == OpenIddictConstants.GrantTypes.Implicit) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdToken); + if (string.Equals(type, OpenIddictConstants.ClientTypes.Public, StringComparison.OrdinalIgnoreCase)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.IdTokenToken); + application.Permissions.Add(OpenIddictConstants.Permissions.ResponseTypes.Token); + } + } + + if (!buildInGrantTypes.Contains(grantType)) + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.GrantType + grantType); + } + } + + var buildInScopes = new[] { + OpenIddictConstants.Permissions.Scopes.Address, OpenIddictConstants.Permissions.Scopes.Email, + OpenIddictConstants.Permissions.Scopes.Phone, OpenIddictConstants.Permissions.Scopes.Profile, + OpenIddictConstants.Permissions.Scopes.Roles + }; + + foreach (var scope in scopes) + { + if (buildInScopes.Contains(scope)) + { + application.Permissions.Add(scope); + } + else + { + application.Permissions.Add(OpenIddictConstants.Permissions.Prefixes.Scope + scope); + } + } + + if (!redirectUris.IsNullOrEmpty()) + { + foreach (var redirectUri in redirectUris!.Where(redirectUri => !redirectUri.IsNullOrWhiteSpace())) + { + if (!Uri.TryCreate(redirectUri, UriKind.Absolute, out var uri) || !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidRedirectUri", redirectUri]); + } + + if (application.RedirectUris.All(x => x != uri)) + { + application.RedirectUris.Add(uri); + } + } + + } + + if (!postLogoutRedirectUris.IsNullOrEmpty()) + { + foreach (var postLogoutRedirectUri in postLogoutRedirectUris!.Where(postLogoutRedirectUri => !postLogoutRedirectUri.IsNullOrWhiteSpace())) + { + if (!Uri.TryCreate(postLogoutRedirectUri, UriKind.Absolute, out var uri) || + !uri.IsWellFormedOriginalString()) + { + throw new BusinessException(L["InvalidPostLogoutRedirectUri", postLogoutRedirectUri]); + } + + if (application.PostLogoutRedirectUris.All(x => x != uri)) + { + application.PostLogoutRedirectUris.Add(uri); + } + } + } + + if (permissions != null) + { + await _permissionDataSeeder.SeedAsync( + ClientPermissionValueProvider.ProviderName, + name, + permissions, + null + ); + } + + if (client == null) + { + await _applicationManager.CreateAsync(application); + return; + } + + if (!HasSameRedirectUris(client, application)) + { + client.RedirectUris = JsonSerializer.Serialize(application.RedirectUris.Select(q => q.ToString().RemovePostFix("/"))); + client.PostLogoutRedirectUris = JsonSerializer.Serialize(application.PostLogoutRedirectUris.Select(q => q.ToString().RemovePostFix("/"))); + + await _applicationManager.UpdateAsync(client.ToModel()); + } + + if (!HasSameScopes(client, application)) + { + client.Permissions = JsonSerializer.Serialize(application.Permissions.Select(q => q.ToString())); + await _applicationManager.UpdateAsync(client.ToModel()); + } + } + + private bool HasSameRedirectUris(OpenIddictApplication existingClient, AbpApplicationDescriptor application) + { + return existingClient.RedirectUris == JsonSerializer.Serialize(application.RedirectUris.Select(q => q.ToString().RemovePostFix("/"))); + } + + private bool HasSameScopes(OpenIddictApplication existingClient, AbpApplicationDescriptor application) + { + return existingClient.Permissions == JsonSerializer.Serialize(application.Permissions.Select(q => q.ToString().TrimEnd('/'))); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Properties/AssemblyInfo.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..4dbf4b3 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Properties/AssemblyInfo.cs @@ -0,0 +1,3 @@ +using System.Runtime.CompilerServices; +[assembly:InternalsVisibleToAttribute("BookStore.Domain.Tests")] +[assembly:InternalsVisibleToAttribute("BookStore.TestBase")] diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Settings/BookStoreSettingDefinitionProvider.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Settings/BookStoreSettingDefinitionProvider.cs new file mode 100644 index 0000000..ff44a4d --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Settings/BookStoreSettingDefinitionProvider.cs @@ -0,0 +1,12 @@ +using Volo.Abp.Settings; + +namespace BookStore.Settings; + +public class BookStoreSettingDefinitionProvider : SettingDefinitionProvider +{ + public override void Define(ISettingDefinitionContext context) + { + //Define your own settings here. Example: + //context.Add(new SettingDefinition(BookStoreSettings.MySetting1)); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Settings/BookStoreSettings.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Settings/BookStoreSettings.cs new file mode 100644 index 0000000..45771fd --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.Domain/Settings/BookStoreSettings.cs @@ -0,0 +1,9 @@ +namespace BookStore.Settings; + +public static class BookStoreSettings +{ + private const string Prefix = "BookStore"; + + //Add your own setting names here. Example: + //public const string MySetting1 = Prefix + ".MySetting1"; +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.abppkg new file mode 100644 index 0000000..7deef5e --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api-client" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.abppkg.analyze.json b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.abppkg.analyze.json new file mode 100644 index 0000000..615eeda --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.abppkg.analyze.json @@ -0,0 +1,118 @@ +{ + "name": "BookStore.HttpApi.Client", + "hash": "", + "contents": [ + { + "namespace": "BookStore", + "dependsOnModules": [ + { + "declaringAssemblyName": "BookStore.Application.Contracts", + "namespace": "BookStore", + "name": "BookStoreApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.HttpApi.Client", + "namespace": "Volo.Abp.PermissionManagement", + "name": "AbpPermissionManagementHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.HttpApi.Client", + "namespace": "Volo.Abp.FeatureManagement", + "name": "AbpFeatureManagementHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Identity.Pro.HttpApi.Client", + "namespace": "Volo.Abp.Identity", + "name": "AbpIdentityHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Account.Pro.Admin.HttpApi.Client", + "namespace": "Volo.Abp.Account", + "name": "AbpAccountAdminHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Account.Pro.Public.HttpApi.Client", + "namespace": "Volo.Abp.Account", + "name": "AbpAccountPublicHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AuditLogging.HttpApi.Client", + "namespace": "Volo.Abp.AuditLogging", + "name": "AbpAuditLoggingHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.OpenIddict.Pro.HttpApi.Client", + "namespace": "Volo.Abp.OpenIddict", + "name": "AbpOpenIddictProHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.TextTemplateManagement.HttpApi.Client", + "namespace": "Volo.Abp.TextTemplateManagement", + "name": "TextTemplateManagementHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.LanguageManagement.HttpApi.Client", + "namespace": "Volo.Abp.LanguageManagement", + "name": "LanguageManagementHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Gdpr.HttpApi.Client", + "namespace": "Volo.Abp.Gdpr", + "name": "AbpGdprHttpApiClientModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.HttpApi.Client", + "namespace": "Volo.Abp.SettingManagement", + "name": "AbpSettingManagementHttpApiClientModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "BookStoreHttpApiClientModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.csproj new file mode 100644 index 0000000..6ef895f --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStore.HttpApi.Client.csproj @@ -0,0 +1,32 @@ + + + + + + net9.0 + enable + BookStore + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStoreHttpApiClientModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStoreHttpApiClientModule.cs new file mode 100644 index 0000000..7618aa9 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Client/BookStoreHttpApiClientModule.cs @@ -0,0 +1,38 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Account; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement; +using Volo.Abp.SettingManagement; +using Volo.Abp.VirtualFileSystem; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.TenantManagement; + +namespace BookStore; + +[DependsOn( + typeof(BookStoreApplicationContractsModule), + typeof(AbpPermissionManagementHttpApiClientModule), + typeof(AbpFeatureManagementHttpApiClientModule), + typeof(AbpAccountHttpApiClientModule), + typeof(AbpIdentityHttpApiClientModule), + typeof(AbpTenantManagementHttpApiClientModule), + typeof(AbpSettingManagementHttpApiClientModule) +)] +public class BookStoreHttpApiClientModule : AbpModule +{ + public const string RemoteServiceName = "Default"; + + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddHttpClientProxies( + typeof(BookStoreApplicationContractsModule).Assembly, + RemoteServiceName + ); + + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.abppkg new file mode 100644 index 0000000..d5b2efb --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.abppkg @@ -0,0 +1,3 @@ +{ + "role": "host.http-api" +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj new file mode 100644 index 0000000..e543982 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStore.HttpApi.Host.csproj @@ -0,0 +1,52 @@ + + + + + + net9.0 + enable + InProcess + BookStore + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreBrandingProvider.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreBrandingProvider.cs new file mode 100644 index 0000000..973090e --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreBrandingProvider.cs @@ -0,0 +1,19 @@ +using Microsoft.Extensions.Localization; +using BookStore.Localization; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Ui.Branding; + +namespace BookStore; + +[Dependency(ReplaceServices = true)] +public class BookStoreBrandingProvider : DefaultBrandingProvider +{ + private IStringLocalizer _localizer; + + public BookStoreBrandingProvider(IStringLocalizer localizer) + { + _localizer = localizer; + } + + public override string AppName => _localizer["AppName"]; +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs new file mode 100644 index 0000000..07c1b4c --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/BookStoreHttpApiHostModule.cs @@ -0,0 +1,271 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Security.Cryptography.X509Certificates; +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Cors; +using Microsoft.AspNetCore.HttpOverrides; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Microsoft.AspNetCore.Extensions.DependencyInjection; +using OpenIddict.Validation.AspNetCore; +using OpenIddict.Server.AspNetCore; +using BookStore.MongoDB; +using BookStore.MultiTenancy; +using Microsoft.OpenApi.Models; +using Volo.Abp; +using Volo.Abp.Studio; +using Volo.Abp.Account; +using Volo.Abp.Account.Web; +using Volo.Abp.AspNetCore.MultiTenancy; +using Volo.Abp.AspNetCore.Mvc; +using Volo.Abp.Autofac; +using Volo.Abp.Localization; +using Volo.Abp.Modularity; +using Volo.Abp.UI.Navigation.Urls; +using Volo.Abp.VirtualFileSystem; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling; +using Microsoft.AspNetCore.Hosting; +using Volo.Abp.AspNetCore.Serilog; +using Volo.Abp.Identity; +using Volo.Abp.OpenIddict; +using Volo.Abp.Swashbuckle; +using Volo.Abp.Studio.Client.AspNetCore; +using Volo.Abp.Security.Claims; + +namespace BookStore; + +[DependsOn( + typeof(BookStoreHttpApiModule), + typeof(AbpStudioClientAspNetCoreModule), + typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule), + typeof(AbpAutofacModule), + typeof(AbpAspNetCoreMultiTenancyModule), + typeof(BookStoreApplicationModule), + typeof(BookStoreMongoDbModule), + typeof(AbpAccountWebOpenIddictModule), + typeof(AbpSwashbuckleModule), + typeof(AbpAspNetCoreSerilogModule) + )] +public class BookStoreHttpApiHostModule : AbpModule +{ + public override void PreConfigureServices(ServiceConfigurationContext context) + { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + + PreConfigure(builder => + { + builder.AddValidation(options => + { + options.AddAudiences("BookStore"); + options.UseLocalServer(); + options.UseAspNetCore(); + }); + }); + + if (!hostingEnvironment.IsDevelopment()) + { + PreConfigure(options => + { + options.AddDevelopmentEncryptionAndSigningCertificate = false; + }); + + PreConfigure(serverBuilder => + { + serverBuilder.AddProductionEncryptionAndSigningCertificate("openiddict.pfx", configuration["AuthServer:CertificatePassPhrase"]!); + serverBuilder.SetIssuer(new Uri(configuration["AuthServer:Authority"]!)); + }); + } + } + + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + var hostingEnvironment = context.Services.GetHostingEnvironment(); + + if (!configuration.GetValue("App:DisablePII")) + { + Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true; + Microsoft.IdentityModel.Logging.IdentityModelEventSource.LogCompleteSecurityArtifact = true; + } + + if (!configuration.GetValue("AuthServer:RequireHttpsMetadata")) + { + Configure(options => + { + options.DisableTransportSecurityRequirement = true; + }); + + Configure(options => + { + options.ForwardedHeaders = ForwardedHeaders.XForwardedProto; + }); + } + + ConfigureAuthentication(context); + ConfigureUrls(configuration); + ConfigureBundles(); + ConfigureConventionalControllers(); + ConfigureSwagger(context, configuration); + ConfigureVirtualFileSystem(context); + ConfigureCors(context, configuration); + } + + private void ConfigureAuthentication(ServiceConfigurationContext context) + { + context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme); + context.Services.Configure(options => + { + options.IsDynamicClaimsEnabled = true; + }); + } + + private void ConfigureUrls(IConfiguration configuration) + { + Configure(options => + { + options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"]; + options.RedirectAllowedUrls.AddRange(configuration["App:RedirectAllowedUrls"]?.Split(',') ?? Array.Empty()); + }); + } + + private void ConfigureBundles() + { + Configure(options => + { + options.StyleBundles.Configure( + LeptonXLiteThemeBundles.Styles.Global, + bundle => + { + bundle.AddFiles("/global-styles.css"); + } + ); + + options.ScriptBundles.Configure( + LeptonXLiteThemeBundles.Scripts.Global, + bundle => + { + bundle.AddFiles("/global-scripts.js"); + } + ); + }); + } + + + private void ConfigureVirtualFileSystem(ServiceConfigurationContext context) + { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + + if (hostingEnvironment.IsDevelopment()) + { + Configure(options => + { + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}BookStore.Domain.Shared")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}BookStore.Domain")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}BookStore.Application.Contracts")); + options.FileSets.ReplaceEmbeddedByPhysical(Path.Combine(hostingEnvironment.ContentRootPath, $"..{Path.DirectorySeparatorChar}BookStore.Application")); + }); + } + } + + private void ConfigureConventionalControllers() + { + Configure(options => + { + options.ConventionalControllers.Create(typeof(BookStoreApplicationModule).Assembly); + }); + } + + private static void ConfigureSwagger(ServiceConfigurationContext context, IConfiguration configuration) + { + context.Services.AddAbpSwaggerGenWithOidc( + configuration["AuthServer:Authority"]!, + ["BookStore"], + [AbpSwaggerOidcFlows.AuthorizationCode], + null, + options => + { + options.SwaggerDoc("v1", new OpenApiInfo { Title = "BookStore API", Version = "v1" }); + options.DocInclusionPredicate((docName, description) => true); + options.CustomSchemaIds(type => type.FullName); + }); + } + + private void ConfigureCors(ServiceConfigurationContext context, IConfiguration configuration) + { + context.Services.AddCors(options => + { + options.AddDefaultPolicy(builder => + { + builder + .WithOrigins( + configuration["App:CorsOrigins"]? + .Split(",", StringSplitOptions.RemoveEmptyEntries) + .Select(o => o.Trim().RemovePostFix("/")) + .ToArray() ?? Array.Empty() + ) + .WithAbpExposedHeaders() + .SetIsOriginAllowedToAllowWildcardSubdomains() + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + }); + }); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var app = context.GetApplicationBuilder(); + var env = context.GetEnvironment(); + + app.UseForwardedHeaders(); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseAbpRequestLocalization(); + + if (!env.IsDevelopment()) + { + app.UseErrorPage(); + } + + app.UseRouting(); + app.MapAbpStaticAssets(); + app.UseAbpStudioLink(); + app.UseAbpSecurityHeaders(); + app.UseCors(); + app.UseAuthentication(); + app.UseAbpOpenIddictValidation(); + + if (MultiTenancyConsts.IsEnabled) + { + app.UseMultiTenancy(); + } + + app.UseUnitOfWork(); + app.UseDynamicClaims(); + app.UseAuthorization(); + + app.UseSwagger(); + app.UseAbpSwaggerUI(options => + { + options.SwaggerEndpoint("/swagger/v1/swagger.json", "BookStore API"); + + var configuration = context.ServiceProvider.GetRequiredService(); + options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); + }); + app.UseAuditing(); + app.UseAbpSerilogEnrichers(); + app.UseConfiguredEndpoints(); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Dockerfile b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Dockerfile new file mode 100644 index 0000000..3e41823 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Dockerfile @@ -0,0 +1,5 @@ +FROM mcr.microsoft.com/dotnet/aspnet:9.0 +COPY bin/Release/net9.0/publish/ app/ +WORKDIR /app +ENV ASPNETCORE_URLS=http://+:80 +ENTRYPOINT ["dotnet", "BookStore.HttpApi.Host.dll"] \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Dockerfile.local b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Dockerfile.local new file mode 100644 index 0000000..1d2cd70 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Dockerfile.local @@ -0,0 +1,18 @@ +FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base +USER $APP_UID +EXPOSE 8080 +EXPOSE 8081 + +COPY bin/Release/net9.0/publish/ app/ +WORKDIR /app + +FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +WORKDIR /src +RUN dotnet dev-certs https -v -ep openiddict.pfx -p 2dae3a4f-9e73-4cb7-b7b9-7ec95c44e1a3 +RUN chmod 644 openiddict.pfx + +FROM base AS final +WORKDIR /app +COPY --from=build /src . + +ENTRYPOINT ["dotnet", "BookStore.HttpApi.Host.dll"] \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/Index.cshtml b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/Index.cshtml new file mode 100644 index 0000000..88cc019 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/Index.cshtml @@ -0,0 +1,127 @@ +@page +@using Microsoft.AspNetCore.Mvc.Localization +@using Microsoft.AspNetCore.Http.Extensions +@using BookStore.Localization +@using BookStore.Pages +@using Volo.Abp.Account.Localization +@using Volo.Abp.Users +@using Volo.Abp.AspNetCore.Mvc.UI.Theming +@using Volo.Abp.Ui.Branding +@model IndexModel +@inject IHtmlLocalizer L +@inject IHtmlLocalizer AccountLocalizer +@inject ICurrentUser CurrentUser +@inject IBrandingProvider BrandingProvider +@inject ITheme Theme +@{ + Layout = Theme.GetEmptyLayout(); +} + +
+
+ + + + + +
+
diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/Index.cshtml.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/Index.cshtml.cs new file mode 100644 index 0000000..c3c1b1c --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/Index.cshtml.cs @@ -0,0 +1,35 @@ +using System.Collections.Generic; +using System.Globalization; +using System.Threading.Tasks; +using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.Abp.Localization; +using Volo.Abp.OpenIddict.Applications; + +namespace BookStore.Pages; + +public class IndexModel : AbpPageModel +{ + public List? Applications { get; protected set; } + + public IReadOnlyList? Languages { get; protected set; } + + public string? CurrentLanguage { get; protected set; } + + protected IOpenIddictApplicationRepository OpenIdApplicationRepository { get; } + + protected ILanguageProvider LanguageProvider { get; } + + public IndexModel(IOpenIddictApplicationRepository openIdApplicationmRepository, ILanguageProvider languageProvider) + { + OpenIdApplicationRepository = openIdApplicationmRepository; + LanguageProvider = languageProvider; + } + + public async Task OnGetAsync() + { + Applications = await OpenIdApplicationRepository.GetListAsync(); + + Languages = await LanguageProvider.GetLanguagesAsync(); + CurrentLanguage = CultureInfo.CurrentCulture.DisplayName; + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/_ViewImports.cshtml b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/_ViewImports.cshtml new file mode 100644 index 0000000..c1da1f5 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Pages/_ViewImports.cshtml @@ -0,0 +1,4 @@ +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bundling \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Program.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Program.cs new file mode 100644 index 0000000..73b44b7 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Program.cs @@ -0,0 +1,63 @@ +using System; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Builder; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Serilog; +using Serilog.Events; + +namespace BookStore; + +public class Program +{ + public async static Task Main(string[] args) + { + Log.Logger = new LoggerConfiguration() + .WriteTo.Async(c => c.File("Logs/logs.txt")) + .WriteTo.Async(c => c.Console()) + .CreateBootstrapLogger(); + + try + { + Log.Information("Starting BookStore.HttpApi.Host."); + var builder = WebApplication.CreateBuilder(args); + builder.Host + .AddAppSettingsSecretsJson() + .UseAutofac() + .UseSerilog((context, services, loggerConfiguration) => + { + loggerConfiguration + #if DEBUG + .MinimumLevel.Debug() + #else + .MinimumLevel.Information() + #endif + .MinimumLevel.Override("Microsoft", LogEventLevel.Information) + .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) + .Enrich.FromLogContext() + .WriteTo.Async(c => c.File("Logs/logs.txt")) + .WriteTo.Async(c => c.Console()) + .WriteTo.Async(c => c.AbpStudio(services)); + }); + await builder.AddApplicationAsync(); + var app = builder.Build(); + await app.InitializeApplicationAsync(); + await app.RunAsync(); + return 0; + } + catch (Exception ex) + { + if (ex is HostAbortedException) + { + throw; + } + + Log.Fatal(ex, "Host terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Properties/launchSettings.json b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Properties/launchSettings.json new file mode 100644 index 0000000..bebbb6b --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/Properties/launchSettings.json @@ -0,0 +1,27 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "https://localhost:44318", + "sslPort": 44318 + } + }, + "profiles": { + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "BookStore.HttpApi.Host": { + "commandName": "Project", + "launchBrowser": true, + "applicationUrl": "https://localhost:44318", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/abp.resourcemapping.js b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/abp.resourcemapping.js new file mode 100644 index 0000000..4a2ad45 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/abp.resourcemapping.js @@ -0,0 +1,11 @@ +module.exports = { + aliases: { + + }, + clean: [ + + ], + mappings: { + + } +}; diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.Development.json b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.Development.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.Development.json @@ -0,0 +1,2 @@ +{ +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.json b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.json new file mode 100644 index 0000000..45afff3 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/appsettings.json @@ -0,0 +1,20 @@ +{ + "App": { + "SelfUrl": "https://localhost:44318", + "CorsOrigins": "https://*.BookStore.com,https://localhost:44376", + "RedirectAllowedUrls": "https://localhost:44376", + "DisablePII": false, + "HealthCheckUrl": "/health-status" + }, + "ConnectionStrings": { + "Default": "mongodb://localhost:27017/BookStore" + }, + "AuthServer": { + "Authority": "https://localhost:44318", + "RequireHttpsMetadata": true, + "SwaggerClientId": "BookStore_Swagger", + "CertificatePassPhrase": "2dae3a4f-9e73-4cb7-b7b9-7ec95c44e1a3" + }, + "StringEncryption": { + "DefaultPassPhrase": "gKUiwtJbKPwoWvKG" + }} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/package.json b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/package.json new file mode 100644 index 0000000..5caead1 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/package.json @@ -0,0 +1,8 @@ +{ + "version": "1.0.0", + "name": "my-app", + "private": true, + "dependencies": { + "@abp/aspnetcore.mvc.ui.theme.leptonxlite": "~4.2.0" + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/web.config b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/web.config new file mode 100644 index 0000000..2d34260 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/web.config @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/global-scripts.js b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/global-scripts.js new file mode 100644 index 0000000..e8136b0 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/global-scripts.js @@ -0,0 +1 @@ +/* Your Global Scripts */ diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/global-styles.css b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/global-styles.css new file mode 100644 index 0000000..9525cfe --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/global-styles.css @@ -0,0 +1,7 @@ +:root { + --lpx-logo: url('/images/logo/leptonxlite/logo-light.png'); + --lpx-logo-icon: url('/images/logo/leptonxlite/logo-light-thumbnail.png'); +} +:root .abp-account-layout .lpx-brand-logo{ + --lpx-logo: url('/images/logo/leptonxlite/logo-dark.png'); +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/angular.svg b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/angular.svg new file mode 100644 index 0000000..468c4ba --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/angular.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/aspnetcore.svg b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/aspnetcore.svg new file mode 100644 index 0000000..82a2ef8 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/aspnetcore.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/blazor.svg b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/blazor.svg new file mode 100644 index 0000000..2f5a30c --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/blazor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/swagger.svg b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/swagger.svg new file mode 100644 index 0000000..908edf5 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/clients/swagger.svg @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-dark-thumbnail.png b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-dark-thumbnail.png new file mode 100644 index 0000000000000000000000000000000000000000..9734a07a4d4539d3081bb897ffc8d5e75dab8798 GIT binary patch literal 10695 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 iRGz-n4VZ}kM?W?F&FYYBo literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-dark.png b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..a3bbe82224deec74650461230f66d609eda717e3 GIT binary patch literal 38171 zcmY&=1yoc2`#&Nmp@1MEAs7QC1cMR;!~`Tn7^73k5z^f%BH<{JmJk>nqX(0ckRCO< z27}R^|2yLI{rx#dIp^-~xzGE_*AtfjC52a)DVQmUh=?xByne1sL_`)zM0D;C*#+QA zNoMCN@Qd8~wYn`45hWer-#Mb6u}nln97HnDpQ<bGjLEsW%NVDnFeI)lKZxHntGN0dMDG4jU;DzW`j_7l^cb*}tK>TSc!R|S9FRwiE51?nQV z+Qe$a)DF{1*H`{c9E|__ov>Lrv1zTcNL4s-$iahTHkvLua9bU2;r3vf3iEW>#SbHuMTaMEK1$b2edabXtYAI;Eb(C`T4q<>#x;~)mpn99 zzaloK{f#t#|c=%Oaasx=!+3ClOeMcqs z@)8u0bTzLfwH{QeyJa?>X`V6zfxJ?lCrEWlv8Fv|*vTV5A!3V^@3DsZN<_BJ*|UUI zynUX6J$Ur=%~{9KI2bc#AH6rSgbiCF;ZafTMlRP19Ia$NJR|?u63}8%0;43EO1dyH zr@9U1+8L*8s-zc5?(}5X7naVyIg>?j2Jv|xI@!`Q-nZ$KXhB+MU#WbW{yeVale*35 zwX+)nXu0410i7|=;wKvp{U5_*5qJK_=;d0#EPQDG5ABE$E5;>Csr1L@PHS_&+a8@# z`O*sLx2K(Jlw2~se10;fey>gB>?1#=0JDNLcl_tfcG0!diyXwhS=+K>PX)_C3KBbu z1Q&^OKmCj*4>ddR8O-w*pQWX|-+7Jf^!k-_1n0HjuZnxgtH{Ivvn;?k|M#8f$;2iO z{-cieKz2V46{w)gX41nm{oLF%Xkmp%r!$+0;NSIGidWC_p32&bge*EeLJjOT-Fhl7 zuR7MxZ~Sic6rkI`V%qMUKKgYBaJ)yX^a)f2tC}~+?Q`^GBzBT;ui7}zZs>0;3Eavy z_+=4rrpDM=C;BiCi5&$K=>gg^S9Rh!NB3Ut%nQd1tK1?Efk}Q{ZETn&(ySarv_Z(uvY+YLW^2dg%X| z8{pW=o+=}ZSxR8OGgldD-W0((p<&z>Q{PSxK{TT0$|~6Ub+7I0L1WoE79oZkFoh^p zxzn4x-lO&7%rzb#A< zzCKm2L$5QZF>55iT}@LtD;+T^G?4qrd1ZP%)S*+p?B*HXR|Kc%Oj z;{Q5R^;srOqlN1C2IAXTir81E=%v@ZI--N_ql z;EDk9fprrHPc{9Y*Mg7-JL3e0ioq$?j#iNc?XL~sW@E-@t^3T*%#}Rj&+S4yw7IVK zHdkLD)Hb-_sx)Wq+cKUn-_1&==CWsY-{!k+>IH<7pFCEI)@2|;*qA5GPWa77gTE6M}+ zeZy-g8nzmkw%fjrb=Q7ZTE~5M7AV|@#<$Yxwo<`_>YIXO-ZT$^R?o^oLLhix@!1ya z`_`resn^60(mVC4j>IT$TFfxnkNt^BO#R*;&|FV3OFO@iaAXfV@0GLcW8x(h;MHX6 zC)btXakvhqbDv4>9QWt+1reV;Sa9~e=SVEn`PS?Wy^q}Ew3zW&G{D^O%hKmHrw*hi zQ?;O%Ey=xfc~$0a|CKjE@I=MG2QN!+`_s#DN+Z}-^FB$rKS315_zHFDU_?4^G#+5)y!yDb(Dcs%eK0Hf(B4_KbQJ9f8 z4S!e=jq1JD>+A2%1v#1jI4H$Dm%KLQv8ls^f+fsvAsSCj(uoo?Qm64g4>P&GHW3;6 zGKHYS&Q}u5Y&vATkkz$KksJcjBm69>z{B_7n};%vQkp#1eh+x3^nxy6cm9blW9f<1Q z=f%q* z3$Q+wKMg|?Exl{0k%-G~2FK3>kcPr(08=b#JbH_c7YKDFV};Q(<;`chD8?xAwgP{9BkyQ3Oot9qh%; zQ*AO;%Eij-eC1x*#`<}+(`cCJ;JaX=x&0Kalf0_0>Ao+kqg4P>5D{$k7=jvE$caN9 zv~o=nPS&S-nq1T6`S;dlI1<8rs51j_K;VaNY?wt{N(xr;0Zkup2Jcv_h`$zvtQG_# zcV@$CDRVxY7*kF2KWWfKV(QERZYxCRXzuWxdz))bjy`NYAoAYxYNxnOZ~B7sN>!+@ zSyFS$fG%QicCB{55l*;CrgwHZ2hMy#Ebl?>TW7_Zr^S$qRasi*$xGA(=uL%!U7c^n z8~14spBixLMq%=syr-mjptjPWLrJD5drGCx@^05N&xEa@#U!idxlau+RueeYhhq8w zC0~l9UG@C#24?`dNm4kGMW(2~8a5#1_dl6)*b^z#ACaK5O5gM!{6(o3nqjm*P%uqKtuh->OUW$r?|O zPDH_Tj)gLD@hLTmR&(OyX+&|xl&thF8wIsGlh_wvj~la{FY~4vhdG0n1o)8)mU&Yz z4o1+YLH9=sg9w1%tkkkKZq9Z}129LPbrdj>^2z^0@OL3;Z~>@oZnrz(?!pa-!5R8X z472b~wg|8-=W(`?=}#Ugk9~5`{_mToHg!a+nVnM~n&yNfr&>ZN^`YQKayJGg@BrmS z%`0C3-|F9LR860XDnD3wqW0ocRK|sT)>+_Rzp^~Q3y++UDo-zZhZOmM)Ry+wbEJR- z>&7r#j-aN=jGM1^{urY`+GNd;}&`$trs*l>kM3m~LN$rlO>^{b}3`R^z#% zpp>7hQGl6peh4683in6vcZweNpb3~knHE6BD1Ch;h4u(X97lrxS0P? zM4EqKjn!hj?QA}56LCV;i;CsL=O^AI5pRN;Kg-8U`eyA*ZznHuANBmrZw(ZazHQYj zknl}%cWT)O4kD7O>h0|n5*89F*x1;pGJUfD&&uPWL=NsK{&1(Q$VG#YvAh~CuQowA zo~Eh*@g~2immu8bx2@?@+2U3|V4Pv5>l;RA4ifi@GKda5(8*V6WLXl=Gv%Uvo*MaBuYW?|%>3lHWZ?G*_Szfa}i$1-WZliEummKLu-5^Bk537z+Ol9Hk86 z)uPst32<6f;?vzzolT*LbuuN-TP~i{VR`zLkJ`()_FYLxMQ#KnkDnaqTn+cM2S4yW zkB$I>Qv=dlPb?PQcMJn<7Ct3Uc-Q=$*y!Z?%%~+FV85z_R-QDiSfcnzRJl=JG|;Y+8ksJV>?GUE%Hy_`ck$j-^@A)MN5?E`e{I4u|vu} zr@$aL!`31+%9DmnUH)=m!FQ0%#gc?7t~(zQ0PFcY+}{OTz&p8+H}-_x}!!l;xE8s zp{hHbz{9xeU@1L3<#b3)-~q4vgm{{uKrDU8Aqa$*hxbPS?<`ubX1&@Hg*rz)UW#J337q6HGFn zi3CsjA#X#7iR|Pg#hOVjsW`$dEYw>FT@$7P3!qT5uLKIU)Wp9#h}x4Bmvc<;fT7BZ zJakvkRM?L`nUx$6;l0Y{iJy^^eC{%NBt)~3PbHjhY9*Fy{eymfw@C4cS6zMQ1zjT! zfCQvBzP~s7IE;=U;iOh=;TP}g>sy*Dlls+{Qbhy)`tdf=vPG%&_5t!gTERH~ay{ze=T^BY{+}9IeYQ|2RK)@y`uJEov%>;+CGWeD54e%Ahah)s1iY!6ZcS zm)na#ZSvWT<|kYQKXoYLgCwc|gtPz?xk@GKc^SydfV(A6K1GQ zixAO_7V6JM`}OU@^vH=i*a&5gN@7ong_&3^0bJew2%tN#5Mp5#Kmjx~>N%OJx?1mL zj8>J@t4Q?FeJOE74L$j{&H>gS{D&w6P82ZDMY(xwUSbz^rliuPGECpU!pO(k5^6ty z8qj>m3ou;ooL%&hubi&IgFl!j}qb?b))5GIH zoH#E?u8g@Y^78QWygCXcA}1m78<+Bs$U~Dh`=Z~VD}aqXPEMc~BPNwS&r|!p1};CzIGWrdCVTeN-j*JG)V%aP5TVg{Q=+ z9@;=1V?Hy)bHu^>F%n2;{iRNO1Fpn3;PCPEe*0q3r>18>i>~7n0?fDa>wMydF&zpf zm2g?N`lZ6rQk-aC4;$a$+_6`rSp8tzBq0xXc>+-uTK!iA_{9z0kDs8{FYABH2L+)i zSOBV7O?^3~1Sb9Dh&0NDpv3}UibLWe$wSIWl3j~!gg{L!hl#p&d$F1E9>J7CkpMs- zqrJ27QgC(oNoydS_!i|S+0`aT`QV^#!?jd_zh?8exP%dVG-&;V(}@k!-zb|^S3WA5 zx_*8L?QG#V<_{72NSB^NH2dFgPh#~<#wAT6Tcuu=m38oR8Nj%-%<2LV zSj1KgGb5bHkK;8TJW|W?KhkM)r5owqD=RgWR9<@V@+5M^?n2^o8lp?iA6@vWbKi>% z90%BSRi1}rSMF>?HU}eOL@w?*ulSDr-3RiDd{7_)mGS#t$k&RTaz7x}bn&>xozKq@ z)w-!dOw(H!0BEZH({FA5-<}9Z4UCnAg@yTW+Xlf6IH2gSmxuvgt1_X#eu_|ERNu)S zdo2QwP_giRr}@Ns8aRHfs^xuw15xT*IV)M4aPm2lKcFX1*uN}j6l>N(L=fVVQr44I z$B(e}0hxDK7kbKKqW+M?ojAlGA&h%TWrP86z4k*}?J9El@7xAq6p_~O0yEa529#zF z$B&^$R$}DyhK1mWm|lmCowN;+UmXDf+8n*}Xw=sRDY)=CKhfS}eTppYB<-%@m|bP} zV$RQjkE3xHIQuV$RANs6`tSK|pbUX zu%HSE>cX1iw|lIckXE?!--8PWM9*_hTUcy9IL|S3UnlQ&hjHzToCH0Hr1pjg=`dtivT$YLdg_EHEoILSv{QEnz^@Z9`jrF;t0A3o&eujBVvrc%H z>|lw;fDu<+DB&!d^L=)#u8)k}o}`1re+Je5u_GD}!TW%`C0On;Ur5jShnRj2#O~K4 zK-}>!?+qAVn|vE~ z%O;T_nqX-mC76-cqf1KKp4cp2hcV{ifD?a$hAPUApG#H9@o)%7yI*-C-s3@2h!v4H1-Pc?$xcFniHa~7^_ctJ^_3{&z)@Q z5OOT&!cXTip|dmMw-!xSQchenN8h2J4xp*c8I~Tc}k;AUgZUJ^$DqvE=999968`ZA`u@@VfkjQD&o87@za9|0pBh z#6Pl?h#aK|D=N`w3N#E=L^ABASAW_uTA+CIH|(JGCcWKJC?>Kn>^O41Rs(uV{ujc3Y6gk>sqxs60d^9U%jM+KiS=n!gi{g6-d0BF|oCkKFDUJ81$KnPml4hJA& zN0O`FvAUx!MYg&k?)qPboj7$lkURs9Nk&B!FS$Sd+sscQmx-2*ckf?^^b_pp$J)@1@Cmm>Qkp5x$Ipzk%1`7IS2+I9^0IJAA;9xyN~nI-AT;DwI} zjjy&`Ff1Zy>Aohk2`DaK%I8#2(BS}&lA&q*y<#0eXvmw)ji?=)kE-9fw4;VL(?%0_ z_k;N4&^ISB0R;Kg^9KdXE^luH5MR-}=9m^>?eZbMV4f?y0AA6P$!kpCbr|&~5PQ9k zJSFB25bHI(v8C`IYacltCHCAz!FEgVvu=4tyE`%0&u4?X%z(DfiGCA2i`9*Q>g4|(JzkG+N397}IoLibTV#Ph$? zh-X60m?@&dHCTweJ|&!F5-ocsJslI|uI;PaxRU@Nm-jrQJ~M&seQ`nv+vP}tNTA>T zBN8zA-V>N%6PNZ84xyeL4CKxZx4T|6_NOuxNDSALfeUh1n;0$tWuG27S!A6tAojP< zFyjlRP~iM-LRSdq&kGii+OPtjgS`tLI9y-K5`FOY7<&40xN>Qk=tr5KwQi#m%00 z2SKC^a2*H89%Wh%iQKO9$}`O**g)x4u@b-!S)_=iE%L@}|2d+Lo+rT6E3utP@SY@a1|NdU80xUL2JpW&)VpK>#jmFzfQs^E$>^i@&8;^u^D-UhJ5tC{3fCzjpWEzTN4xL$_Vuwz5)m0xm(cU7PYmQ`2-NV3ds+|L z6#X)|dZN(2M)j4~CQ=zY=(-&dAfCW3MFNWngkfcWugKO%%Gjp9Kdk!btKOM)w{U69IyUS(goF{)${-)yxE61d>8kgNXB+Sn+P1>B-i2!`+oHBsZ4YNg zc-kW|jax<2}A$i=(1i7`Y=4ZCEI;&aCyy9&%#hrm7ijLh+kZ;yjtnl7)R z=g3H`aVy&^-dTY6u6@D0t>%aA9`b7>dxi7k!O)CydqvNEWtRZtMz5NwM8Pr>kPq$`j;d%@ z<58}gQ0lO3c-);__?yyt&qX$;rp}$F?E{8}JvH4tRsG0ps$zHO)_cLxzUw`1Pt;Qo z#FB`r&_6`ByU*rGUv&VMl2V3kv61VmnPhHXL?Kus(5!tz3F;rRHV%^~=< zg;;1Nbjw(uuKo2~(9xC#^AUAs=m4)t7rrbUz&zxa?+E@bXetG=A)%?jttm55myT6G+)cXooSka>1_m!CVZ5WFzXX@fEjtA94Ajpg8>P#2z>>CY?(0Y|6Spm^oPSu$?n$du zNsGHu)wA~2?e}%eTFu=Q(kSd&XZWbrlLi;HpNSZ^47g{8%2c|~>6lC&+5AljyZAno z4N6IMM^G5Dni9R1zb%_?WN+b3X9Z<2 zu5oH&-0$CjObm%B{;j*6>CrbK{5*_Im>l4&XxSC-Us-^}nS^}*_M*1!nn{*00g zu$n-9Lq!=#A5ni;yf4ZDCAVeti8*GHA9C4y)>cfnGg{;s4OUB1+YsOQo^Lu-%&4Ga zmw>PL(+jX|cm6#ZU1K$ke3SP)FC}OcYTou_tKWpV@gT;0F#|h_qG*UVvq#`YJ{TJs zCTpZZ=PUJt2O_VdJ*&0<&A*vnSs+be?B7`T*6;xpuGkLjWvxaai^b+ORjX%JtGCEi z57ezT9UVVtz6*|ulQeaO&oH-P^adRe<;nNUu4_1?> z8JSR|avw%xFKvQ;LMXpJ~^-q6F2zn?^oL{4M> zz`?+Iz{HJ_SM-@C-$s|`CUk9hAh4$RlLuDTYO~8`lyV_rgfaUO-k|q*4j{||>ji^E7 zKgUf*Iv)^E%+(aJJd^Xq9%so(ZzU_XguB#v+E8= zJTd=US2plBU$mX#?=gey>^ z!Qt~xPkH-ONB!w7%Gq7=npWs|O?Mo%V!AI<`<<^vdeZUkI7h&I9|p5e4s2d9PYStZ zeDKFhb<)FGz2d80llop?mes~h{IiSl7bt#9&d;dN+#|NYWIv2g2+@9LF4otGb&|Ne z$ZS2r9{{4$a@pbYJV%^5qA@Tfa|;XX*936_ot05S6`S-;Kj9k{KUu_cRqCOaS9S^b zUZv5d!W-cIx#ArZ%#`K%8Xo7zo+eiH)#q3bX5H^2EfG(su#1jsU}mN2pCXI?F1)0G zO-Xxx%5Jbswk+MU0tbp=80n>5?`u!CG@N%g+|g^|-41;|`uG_;cMMrn?0bpy@{!L& z3GGfEiy3mzseT4$Mn#yPbXe%!k2@?Ys+W>rQ%jViE^F5T`maiKbs+1-V9-{D;T-{*PJTZ$_5*-RGl|uk+FN_OR3h< z{5ua;rivZ!)*Atw|d@|KF%9fQe`1tOSw?cf>GyV;Z=XM zO`|#b)BQUx@gLH*0WmC_1=aPF(;E0W|LT5j;*M;M(Rh1VettgNhBq6~$-e=}I15-v z`undTF#A36=MR}DFOG$bd8*OzSXxMPq?3D!PFsMDr^&Cx=YSJ9k z8^^0>stUKx$3i7Opcs4KXSIJf=f@Xcxz~vRpVxfBl5hh8*+?DkR|^oG&s2RYY3>P^(TLnGJL|gZTjw+nME2zxn_m+88q!E_6b)pXVNo(TK8`>R24$KgJ9L*2(e zCcypBqSN@Z3AQv7FF{~7nc10!Wq)(vGwPG<%W1|N!Ro3aPha0c62=)AZi62{(v&eI zmd=~nKlklN^)S00dzI-ti{@n3E)edUWOYB>!Nz$Q7iYd$YGKtx!AutE%4zF@=1T1> zic9@-KHo*YiS53Jp+v~#8e;!N`+@>30=2T4Y4&gzt#(>}f1*%Zab_fsc!P1^&zBI% zg(hHb7R4L?3itI7%=uc_yjJqIYJp#q(7^<&cm5?UNRX_e*Gjz2Q+=@Qu;TG$5=|&Y z#17aReVA9!({FcNOTa+u^$rBqKmxG0L(C*!WUA%^%Fo%I06DVqedAOjZ^cLH0SVO}B$Yo#SzjQhsTE)7j(FV5Nf}}oSTw$l)EDkV zJQgI%w@9~U@Nmh2D!Nf=xPDgsW)tUT7AC?X!cYf>nuh~yQ# zhMV^IhaGNcXh2ki>TXoT?7r9?r$y1CU__ov#i9oVMO`W)TUKlXpRB)Qo7z6B7-JWa z5fd}*^ObU` zRJI1&?QeQAJHLS`?cJXHvgxbG8 zpz6Hx=&@~1;0!`*A4i@0URKlHUU*&l9LWB+$D;I7qx8l{s|P-HAY5{b)#&dzFMu`& zd_Zdmy!?~xWm&O>R&x6Iohq=Jnz!h@t`N!QM3d~!KL(E+9Xd7T9;T9m% z_Ttf=vOb4IBVc&VLdX%T+v`ohY(z2VVZVXLkViN* z4fps(>NT<8K`IlK=EOL}HOM`x|Jf^@2Jl7W7*S?jCw z4jA>Z>yLv~;im&9GnUxemzMp6eHvmA7ag~ZDNAgVeaWS|2ZTxyZ8HR51_`gXTa*j; zNaSvMq9ARY#5&m~l5*Vq3M6t2mcO&V?9D&DiPae>W{mv)IU06tEykmhlOWtRxxDm9 zRmJr~KD1sFu`SQ;$SVJbEwSYt#j4(Ra!EHU%e8&}RBWr5{pNn0Fk+y09(%ZUK-~WI z37!cUg|Yj9Y*-uPRD3BY z#m90NY*W{NrKEZ=xumE3yyT+g9%yc8cnjW8ZANSKo&49p^*qhOqYuA#h0~6fwu?Yt z&O0|%Mb`kfThM>o?%Hmd+Awu%TUGW8jJrcH7(48+F{*Z?FlM;%RE<;3knEwnXQSEN z)Ms?*llf;Y!8;9mQTRe(^S%hRe^^KLz9sih&BT(qu6MQgu}>y4s)VkCRc z>a%O=H~$2QS#^ z*DmC7K@x$%htQ_{S4MqmZk0JVe=c4>Z5>nzcr3p21=${ocU$RXK~&?p z_63Y9qO_r|W*CX3Raw?RH&pXZS$SE)Sc&`fsW9bIDSI)<$DY43yTCZc9XPFa)mnE& z_vn$i{w2(qlqR7ux$*EIrz-}Pki@P={@l3iIu*xXZ-wC!D@TCa#G&Nyz+ z-`C-X8~^B0a|m2HJn@{mok{P<^$pyp8tgWr%?+nb?sfQjm64uQB@ap zn|kLqvO&YLNoQC{)Ybah|5SSxvIXOu1ULUp5!O_mB*9h{eLD-O4Oyl9WxKL)rR7gJ z(oS-}wzAWGZ7fzyhx~RuWApo@0~@{+1o`v}$5wt8QaJ_0Us%QEY*-#$bD1zp z_m(tMl+Te6dMCFj;Q~pl1pN^f1}l@47{SygVle_dBQcWQZ_|Y<{diV@TgPXzIvkyjj*9*dmc-U@oN6SadYMvUUHsqk0Re z^Fdo%pS#CFac)rLx2HP2@y_P(d>19g89oZRtUvA`4s07|_Z=>R)7SL85%^%5dbzb3 zr=L19rM`HU#e*2UwTc=%icLu9?b^*t1x7!NfOlF9wd1B#2{oPGZghh*69VN;bKK7r z{iK<}UJLO7B~>qECM^w{msL3$x;P8P+;N)#ZOL*ih+X3~b>7Q(kVd{h^UXgkl3R?BAGEs% z>FPBjLw{V%R|qXG`}%yNkS@C497-QNfcR+Mu=jAILMO#t{Am7a2` z+1R0EW-D-CTZJ~cf8543F@M)qhF$rcL0i?kOf#|Kjn26EUuB4U$&}0M1s~saNDW;0 zEdeYkR5&H3?7u7iCr`l>R%sc^=tv?!3ry@Ngp;3(5_ta1iM)c@l-m#W1?3|bG*I_N zJ4T8XUiLUkEIsc9`+%w~LtOd%vC3qxii*EJUms1+j$}s2%GgaFJWas^gNfNf{RMs* z2FSEc*2PD*N0H5xCEf9FtCn?5bv5Rjon0IB0?Y?R_x`O^O`Ga=(O$AvhKab9aS~oY`izU2NCc^_$d3s#z=pRm^Rlp$UVZsXrzHe8gwr}Dy5h5R1 zr0RrCd_d!hCip)0OV8qq%zby#RKaHhK=vONI@1(SV*=t_EBO2- z7GDkNR7E!I+i;`)A^w2wD_BrQ`ne*1Tl1waf-3BCui*|fZ@QayL+BdZq-1qhMOvzm zE4clGwA}*P4J;QaNg8xdX+CZ*miOJ^1iG>;U=ms1jCq3OyL@q=6OreQ0~XW58fbNZ z7e~6iAeRQR2?eSYfZkSN|`EZi1? zxhLGPMSIX1XaO%tb1drG+E|9#5^)K1w2L`j_gJ{%!Hy9mc3(Tg~CunT&C+RD93k zav>|*SL<2jpKob%A-^E_2D_k|4yN@{&h0O>wL3-pTzmAe{GZhGdF&El)Dcs3!qtK? zPi70=4^9nceWu}^b4fRHV5MT#L3$SYVmER;4qnFCNkEjV##RlgdnFKP0J3(v zQLd)AV>hZIhHJ?mRaHTccRb$Ukrr(&0l2l1o?Eyw&%%Esg6kRC&m|^r+KQ)+Sf>dM zi%vcXqlbe#5E(&hw()^fT7As(w&uT|lqiP0b2^t0QfQ#KEtOiSA;Zse*-Nl2R#BpG zLw+lhf^P1hjxfKcU8-y5)?NI(td60Ie8aA=xn5G-&f*k)@2eo z)q-ZbWI@m&>iTtt&pIMr;oY4s>=A6DHo zZyB|xQylK@+t*wCdJw2`fYl5@uhDeNgMB<;&m&IApG>Tj^1vqplwLqozwwfADthfF z6cdj46kVbbpaU$yn1$+IVl}G2b%P|rKt0=N16WIG=LUg!yn&rWQn`uPbU7RKT?SuJ zWRcsz=%O>K-zg?nkZFe81r57*QSPTkc3tM1YO}SfoLr5rWgH*%M%jm5E#5vg6wJE) zNM$Ji>rVm4&#r$%k5oG&4Fa6Kx$b_hVYn12;tB4vDuTL0T|4}3AEeB6&U3YOVjhJdwtYXw;uV9{^wStw` z)TEdeJDj_xc`GR=v{wAGjxF_q;iyTdHLHy4@r?7wDrJfDIez|Nu)E0gxyHeY6=+>iA#N8om!lt;yfm6tamq3Dgw#F}&Va+k1=L3((Y9sVaRAs}_ zvajD0CifMMyhV&OfW2nL+N8-a!E5VA4^cT9U1&X-XYdG-rNN4}3(jqVl^OxaKI@9c zju{}7Z`RiVsg793$C{_o^WovUchwqlV{1^2x$H=XVV$w-a{-YWP)x(&i)_-iSA7N6 z2?>8FSu~2DgXnpiva<3hd@=1KKvV3ZG(7;^fBa?O&Cq-Yf8|$HZ9$2m<-h)TXp~s| z!sNZr8Rg8prUnF&WE@!LdT);2AL%f{eD24Nd|V_ajC_CWQikJ5Ar$b#I_smE_pA-+ zbdsYV7W!70Fshi|ZbZJMc^j}u{Fi4L`uU5PzYfhpM7KWQv+drK*Ue_S?!=Ku>-zlVJO$&kyMh-YMr-aCnbsLXp8 z>A;*Vu}!YJCv zO2tL9ycE0jD4eij5p;6P5&(rQsJn(i^uf2v94|W{^Ib&wQxbn=E&L^Nda0TSyx@49 zOewvj7vE%WOwO4{DrY9HkRV)Y@X9)D@$v;Zw>7=AB#tmuI%1aGXP4CM`5;|2HY1Kg zadS=!cKW0NpAZrcXD(W|)9r$<1A^A^Ew?*tt6)%E3R{}z!&c{%GUQF!7r;@pw)8E< z_;>`g5=wpZK>W!TtW%q@IlT=}7zQXSt@z8z?wKZdO9lK?t9?73D%zy*6R=5}ZwTf~ zBoC5+9rlx5fC!Q@t@rN$9Znpn#;}_#afGy#n)6WD@j;Xw(_30%A8u6-s;!dUXhqlc z8?@?{w&U&a5=+JH#~XdPeagIOfc<<+eyMGwL8+HeUy6&gh9eiEg zxtoKx21a*6f4NdSe7+_DXuvRCG)^kuvEi^yZ|KRsPZ-5TZQX36O+Dd7oUv6#Rl=i= zkwuwW33iurLH^nlkw##i0P|nm{?L9LRok|MuJxqbwe1}sNdst>G51CxHot3=9A5R? zM)D7=?=_0Hts8+EL_{El-^>>Nc=&B?=kCzn5n&;eFP#a@bHA?g7^JF7=?yCAQp%>+ z&(E?LQ{N?wLW(4kI!w}UPklyy(n+zJcMhtQ5=^Sxzu#PbwFn0wgqi%dmRzsgXXt*+ zgt1tjhKy6#AX-GrFq?FL;CSb20at~o#Ag5t5li!;z;JVowFb7ur+qn+Y_8YQy&JK} zrt_olvO;@j@R|qTEU?($lE3UjQD))2mKFsMV;zY@v_oD?4-j9ZCIavmYgl%qGzgWp z#6l67HRt}@^I0uU0L7YIULr$=W5H{aM?T8C9K5Vmvn2<^yOV-=Ku2F#|~Utt~xc zT$yGS5+%hYdzDrbnn_<7c2iEGkVKSmpI5if(M4%o;Amgzy}YR*DK%eEd{S{X0=jhl zZ&dO`sl>PB*fqTIt7sZuikyPgeEsQZ-0j-V@f@^FPnRI~b&=%RKZIFNVORwEK{J#@ z*1+j?rWjC|QC3M|1|!LAzFjNMeL&Of+!>)K6PJ{eSe-=Ix4oUxfGkaz*g)Ur#WJm( zD943K&l~%}HkWdwnmjUZswz;Ad=QKg+7-_UdEU+Fn5>=Z5=!s-=Mr}~4jbls&&t~n z&QiP!;C}`YI}4vTc`4C`)*ayVl-&ysvth26E4K@>7Q}*}0ebXRuiFBZbZYED5M``= z4P|V^Mtxj3!U*oV2kKL68{j{Fz8zn*C!2LbMgKtzvJSS@>H{*-gkq-FoaXLu*|4*0 z+M4q7^kqivNMGjuhL#O}EcpE$)b`e!UuM~uu=#u4cGGEcc`4sN=Qi?Pko~p8>3SYT zOGm!cPm5ZiSkq+FCX4KG<3pg;&WEMl*9pvQ668_2GUg1p$)aDSYw1oqNL9~Mj)y!_ zX779%gtrvR2cV_De&|_oKny;v#k~aA^!GLYd*hL{JoJ}%I~L$(0Rp=7 z(`J<;!cY~vDaWa=Za|1U>jNDJtGSES3a-IoWFBQ3kxQfNpvX!_I^L%kGYn_0dUP@? zT5v+9XYKnzR{s@CC49EZ1DVYj(?&v}X{{FeTo4SrzasZgn~;&z-8I$7=cI^1Z{=}l zHm43TPfKi|Ng2^L!w=8B| z3br4vuOH4Kg=l$`5POU$+M;ZPc1AbxR*rh-Mq^y4+LZQR4xUXvR+UMfh^a7NGj#0L zi=Vhv9_+^n1elcvBg5u`zX0$el2Te~+^kHhjGAcYVXja}8*m&Ho?ua=yy>YoXeD4E>Ul@1Ee&B0L zw&g<<{w!PbQ zIHA7!>qmmo(%&YzuJTZGjMe_;70JJWV!(@;0n8(h?QCU?*#Uf|Q2jPr=Ypk$g%KL7 zsjKVB^f7dbZ_neEU^Ew`>vh5i+?jP*N@sNEZCYjAi;F%W^`L}*9vznzVjFtc=XLOZ zdyRQJPsDTeg2>8G>p}Pa(pu;($e-qa13A*i!clWyD#Vk$5`EE`5J`cPiueSUYt>viob#8TPoML{D+v$qAyysD4p(1he(q77U zg{@LfP?5-OT1e6li>euW4k;K7b!>?&{QxSi#TI&fuac61wpjeDCC4Id5;=%{f`%AW z;^i?H?K^u*E@^YEYtP*@SvCr)EmSe#WKwsMU})ekdtCfOEt^h)ixyXzQ_bSvB9&t{ zoy6X)u2ghm9hGq|j_&aV2?krG7A7MM9ccFKUD`G;?_R&5KvID<-x=tr8p<%lO@^v@ zQsNKgbthuoaXL7jX$na~3~3hJ4>0~YwL4|0+*kx`eoE7rZD2;PhLk^kP5A2r0%0lx*JA~l&O!N?gb*r!AUlcF*Zo?J8P(Q>-{8@>lOB*DU^RBP2@0b&Sdnm9A2 zS^D`JL0dW;t_<%#E!Z(y=m;Z;#7h}9?@MeZ$iAfm*fD3Z+`@G`06s3wjSOrLoOR57 z5LUc92x?u+y}RY|zE537z7Du$cAz{myB=$798%+zvl6}jr0_`Wrp#fYo88!Zrz_l( z*`9Mc??IImEHBFFMhaQ~Vz}y#HZ*s6s55}sfV9}wBrIPEv)~KsiB{ueph1#0&m>)W zX0DpLtrIs5>L?GY(?okbkjX%}*zmN4%$ zQgo66ArZ?GSka<#losd-0}UPFXRj^#Dq-R$CoD5OYg^<|1%0~Me|rfVav?x`UH5M zFCAZO)|Fn%&oRxgkppD2_R%F|qE)fgs6)_PJ|c?6y(`*ixV5F-OG@lYvQn-ZO)&qp zSkSz5<(m>(D}xOX9kjjM12U0`vT>sJz6qXYLq4#95QyHKx!JhMwhr>XQRZ*2f4`t6 zBIsOK;HmO=r#Xa_o6xDdQgbip!E?{D^;Z4(v$s0Qt)iMUKQ=X)1y7_R%t!@Rsm%y- zBp*6g9clZ?Ev3aghOMD?1IR?{*T7srJoEnES=ty0m6uf>jLrsz3VCc}0ynpQz0${G zz@$q6odaLXO3%erGaihpwWBNd$QHj6J9YMNcqZ}JmJh#8`@GWvn)YvWt2f*R+%V56 z%?~%)R)*D#X-*fUBZ;Kdc{Q4K6s7Hsk2V5iKhQAirLZM1$sg1qZ|OT`KCCOULeu8V zn=^Yl;Bin7uIjIY#=k>ONSv$dZ4KomdZ343O;)$9mM(X2Wzb5iXVxKj`UQIdXpnAc zHP|BBy~YVIqDVKS>qv3_t30-f>0&1)rf4;_Y86kD*-)R4XwgE4AzC!SudA$ID$MiP ziND)~@!mC1TfU_ERzOAB1CG*}{sXV()VQhBRmT{CJ~4jlQpZ4K3g*T@Z3~y!&8|fq z7f8cxX3*6SYnl(9)oX9I=lLx)q?Y$%OI=7Rbns!+uP8;`u-cV9tr}s{bKJc-77ltH zEXms*z=XY)&i>GDLmC{;GrkjOnia;~13EW=!7h0}K1`R~<(W$F{O!yIkON2AJy6j! zILTq}$O6W3;@fpR8AfVz!yfzP2rCO?WFUsA zmAQ^O0Y-{^YZrSn!{W4D)Umq1TA3yAAgPm6qf1BIriPl;%=0|rs@jaJC>etLC_`_?>)Mx0j~cYUUj`F-FubHS1=in7pP&&n8l#{E6w-iul{Ox_569u{IG z*j%te^o;L!XRlhGakHZ$DYEwZ|LnVnns?$nYzjTD}>JdbGZ zU44ZL7d#ptesKfj7XIf|lR!?}Cwt&(+kd5?&*A8g=#YcdO*Otxo)L(tM~>uM#^A*# zTiB*ISNKL~KnNIoCZx*vemohnXrtUo_gsWN>3ugit46_(YG3|Zxnb9XqMC}D8ZYVh zop&?}bPiCeNkM}Sw%u6>rnb2|nGv#1rjwy4rQjGs6!rD8`lE}mOd?s;B&TDLBq?-* zzExGzW^~*$yoW3F_MWvlIY5(c?SRicvcmD}?>~Zlys|p+tRjN$*+Flq`=S=3@KeID zz#2FJxsr<1|73n!!!Uxg!sFk#9u`j96$hBiBq-+1#9}8bO%Mfhe5F+b1#=OqvTpfI ze?9o$tJS!{S9!^_c&HPIBNj|LPgH+$*wCn48Tc;|pu>k+(p%}in!%5<%(Ol3(bJsJ zZ?tZk&widve~?QoB9qhleQE_?%DT0)2ZCYCDCXk?>wBNGoY0Z3PD7h=Z!Zt!NDCG*L4VXLK@ zDiI0u0qxZ|!B=sw8aqDgV~R3QnDY2l0By#-Do6Up_A#y`1f5VD`$^rMhn8XfTpo`$M7N)8S{kN0 zSC!`Z2R3np5W^O)pZhC~o8`o?a3GAsvgcvQvdFc=SK2YFZRPCCPxi~J^2E!n)M)Ow zQn5w1tG`WsaUQSUoSve0N|vs1^|uC~_Z>l#Vvt!c>6x&S((1e0#ByF%E}L)G-168` zZK1`I9XI(_NSupahS~LQC)v1fZtfmvrO!OgGgcW9zI0_6ga`01%jRatSP1~pv>{(Z z{B{8u;0`Qki2-?Xr=Y#JyERYpj6b=P@@blT_PH`mNowfs*y!S5StQ}|C!f|WpCZ~R z6Zi;LU@6|8f2*(o?JlW7tz9-Vi@m~cCak0^m0bb}Nb&aY*nIP=r!%wUoU1lrbSakr z8(4S#!->aMg3twti z0iqS@BK!xD(&q$^vC4NFYPn_+>d6jR)`q|92+B_}9t0D1X$AI{l8v>`Rp+u~R()2b zjm*m{hpp(G{U>}Ut=?u+*lLhBVmKXd9v9>klrhR(K)l~8oV2<=tsZ6CrLw+D&k)wE`9hv*E4H&QP}c*N42?EKmB zwiV;L&cLQPbO9S=3s8OsT;2!cCokl2dxoE5L0;r6J6HP4^+fYl`rPZAGLVvnTYaS5 zb<}60|1FBD@?fn-5()_Oht|nQJ9B~g;#8i6$ zTboH1^Yz&O2=?d4XJSuPUZD^SYWqH2MMNW{gD6S+V>ZO8^*Q zMQ*KdJSnOo*w%W|H_+L^aZ+TPXS{vZYi;mk*Ezq$u{Z!T`_itTlifj$QeqabZ4xBx_G22Qnl(d_=v#= z^4lL4TwM?Vz584+%TiEba<}FNCqQC7X!*LJesUxoyU^&)I*Bmqm1Amnna^dsVeg3G zw7t5y$R^Fwk3LE`aoUeQUe7*qi()zAP}d@$8UGEQh>xLL4Cz=C=pJv&V#TG=Rj74^ z=T9Y0LtVSBxJ?pX+0Wh|VcWC_ICKsKq>Yk?B46{}MZ;|+_QzV69XcsU@ZL9S-8YXM zG$}d|!(LA!PIkPZ8O#r^3qslC?U$!dmf*)bpt;IhNM(an13`BpdsW&yil(#^(BWyG z+y~n5R>Wpz%&jm?e}*sAODb43J^7MUT(07Y4;RmSNkBh*rC|ni^d%d;1CCHEhskHp z`vCWs$^(6qG;Y;9vg%YM2-|)M0;g3nkV=rIbr;CJG*Ao>_cD+ zSagR;vm^P^wb*+a8{gbC*VQwMF_w_9>PNzZiq0`HQwD&VM42?~&|}&928G_`aHjqU z^j%&d2L zHBGHc{#R(#qp%GZRYZ7*s`PPqe%9N2z2f)cry7X0r%l!x4 zeOCsy3>m>*({w3VX7j>y%q&ONeCu6Q{bOo;&K)3~L4#dATWvsx_vM-PI1b0)*=gE? zH^@b#fEw91zfCjLoY&41u0mrLLK85kp+-!Xbnz}}JJL4yG~0Jw;j#7f(9!kT zTHIerAQ-4^rfE#ruNsZVzJMzd4S$-KocTz2FQ!Kg?cyF2VbMH%QPm)bsI=oQoLIlW zaCJ6-%^NDka99`Tz1Qy((>NL?1K~5@$G$k^ZOGouQaumT>q*~jt}{KE9(Od5U<3?^ zV-wpm`+Npri-+dk+A#|PyPjL(6dR`fuXI9ZtTNxJc&jXDXR=)0{C+YM0DJgAr=L`Gw7R4vEV!d?3Uu`ln-ZgPH59RZ73vpW_lUh!_LHU5JB~Gn#Tcets{B(R z?YxqN9YUR~dNYs29yVkoAN;mDJ^|zT5pO)*hIbO1wt2QDcAGbZOG}?iXcVjt!Q_rQqB<`%dEj>v2QjSPllGFG zdjvq|zUF%cOF}etUL+VT-QLw2_m)-bh`Y4ios=imjiBM=#jyn+*RkBv@wZDJDs^F* zdO1$^;mrO@3b~7`s>5qcR_Z5KTdQvc${Y}r?cX02H?~&+L&2hWVtp0e{m1mEp~VNn zJiutmph}di1x>!>qjD=eEE8~Ftg80*{`xuMus9naexmaDhK`)*0B}1#$yd(Y!kO?g zjwn{9tjiHq6+#N@{ng8R=&qJ*t>UeATb08T+^Dn-lWe@m8U=-wAS=rNW#7BR+L|9k zEO$ahT=-|&F6rqX{TJHbry0xIPhEx8C%q#up{qgl3KJ>${+54-@r2$xy$`&eh?wUt z#&*Xfe+*tpclRiznjr46rDbJRNV81%i!TqgMlUWdt}L#qc#0|}&X`y&S2Ir+M*LAe z#@a&jAG~;6(sV2S2xTLj;H~v~yw?Ug&#sl{%ft>G#TMp^H9W55{4ZY}3sk}TjWn?O zP)u{Xu!@S1Ubck^bu|YSw^(yw5*@dhbSWPXkL2^^&Axq;(d>h6jQ5FBE>Fs+_NiW} z?W{4h(CkRjIQrJ64-G4AN|M;L_S`h5F$gb^*2XqmD{%1SZ&&k9nEvU{W@<(e~Vf>&{m62 z?d~9ak3$QNvktE5*+@Rt=hcvr!DmuugU@k6LeA;U%y=H&P(M5Z&ns8yk9hsut*y+s zjbrlot_EVhFe!2t8Z9)Cd1CUvoV`usmEfB>t83^g(ATag`l#!g?CE7Hi!Y+?98 z$RuzkBuXHpLX|nRo_udiIz;ElkZk*w^M0=O&5Or@c4fNj*enw;M+YkyZ_}~whhC2A z1l@aEFZU0Hf|_pn40iFOE^`FD%>Dr5$4X*9rYh$}#XWd9xg#Luo|1%U$cprxEWz1{ zDglliu%*5}JMr)uq`LL~`l$p_n{eL|ip?u3dJE@@bn*&kz9hHZ_yjO56zY-BRs~T( zL-uxp_U^BF{g50NiwBZ~5LZJn?7TY)C_NyIj0PQhyI1e_X>lkp!MpKNVk}f#!u_5f zh*C>VuEY)(1r8e{Q zNM7lAr;iD+N>5K5*A3vGb0=-r+)pJ4Q^$gF$l!KhzDwn|PSs|8j3-|zR|4HU86jCq zYSe1y5NsqHWmMcy7}4_qa4okxW(YNo`G>X1PC26<`@@Dy-+K<=&JKT4 zzCS%H()j_xrU;TPI7^1#jUnSGl4Ce!eGT}355cq18^;XI@E63Ehs87R*3mt+@LSHu8(PbhheENq>;_OVR%t4 zwfO3ErDMaI8f6{znJ_o8Yj^f|Luy2hhhE;^@^`4CR-Q<)C|aKYfRlm;dP$_(n)h#M z2wE^4ocE9oOL?;D+~mc=C{lH-7yF7l8gp^(;&OF`v=xpfGTs&5Y#$E$F+8AxG_Xsn;Ns-_i8Hx`{kzdY& z?0(S2l4n1stDet|yaDlCk3(l}wrJ|OE~k52|BmQmG+tcY*fbE0>y-&Do-PzVkm0*l zLdo8z;!(9nW8fNGM0?>@A>i{q%Z}sk%fF{&mdIwGm#o160n#-24k{wysh<0SV4MyN z5=YKLr2CzNSxF^8yzph~98h{>HcR;^s*U(6&541do1v>(2l`N7hfdLEJA!27FM(DU zg4P=hTnbSXz1Wl=Yy<|iy`xM=LLFj4yF0Ny5P$Qu;p=bzOch;AN*HN?U7US`s0}LACl!-tB?S@l)tX`< z8QSK%O~Rr$c8`7)J?n7Km1zFiC@*L9T_e(!$0M6@tAl` ziDv9olUzZ5Yq9akUk}4t9-fme%d@>Hv1Gz3To2K%{Yb~;+@Q@T+Drq zjrpk6jp`ebO-BKzCR9J$+oL`J?sc<~ulKHoVN9$!O;*@7E}dlBJ0KM}AuJa2ov$*1 zGItSYcP%SSzNt`~!N&QvhRpWm`45of2ccNV`;r^eov~an-6p$XT*rERb8DwrfP|aaiZP3R|8_7J_*(zB)027Zl=<}5$ z#mtlrSqABVNIn#dfY-oc~5?R1Ou8TG8FYr{%bQq{}k8n!2UyXdh2 z_^s3&15oP|#5dL5O8O)LGEPN1b!B;|lrSl&B~slqMk?-4c9tmG9|G6`PcBs<^H>&+ zF_wSZYDJ^ub+&Ck-@QNT4f@b=9oZDziALU&T|BmfWZb0DNwf{M0yJ$_6iGC<0u{TN zjnsj|B6uR=&8;wP8FuXaJ(iRH>wF~@47mFlt8W|Tb!8J&@DSeTZ&;yuY%66~SS^DR zN9iQYUiC)?zqo{K)2bNDgv_|{rLV>&~jRqn<4V*J%vqMVe`olcmflldD zhbwXYI8>EB8s_r>0-hFb6a^R+zJ7t``+dGQXM8X`Ql$}XoR)F)G|x92|J0w8bseye z%1wT1$tWsrh?^V?1{)U!Eq!L*mdbg_e;hhnsIcf8G_7O(R%ahHMdhxxOHyV>dN8eU z93TCglM_56TDebW4d^QYCA<)u_CgI7`#Xd3X7KfV%=Dr(SJT>QdSnxLaG46L?= z!4-RoFcPGS);P*4xMq3#0<(7f;hadnwbYT-4xdlQ=U!dLy!Ie{(r7$v?aQwxz)~LO zPu8fyHlp)1*P=!hmfc0zH3XSgYf9~(6ksP_@*T3!goQNb*55m^cD^0NrzfxO-WleR zUO1zVQFI#^OrVHEZ!xR4lzk*cUOA{ZMF^4YOQCd1!`TGu5b73xG&#t}`PA;2`6uXE zD8ui3V7r)wcZXQ_9zK6K zBOJ{(@}+-Zf{q0mcM%hR`2}cF5Zz(Nj-E4Bxr^0DzZssLo!uI#7pE$L=Zox#am>+) z&Y{@GE{r1&kIpZ3xKL1YW4tUE65bwZ{VBhtA+x;njUew$E-T$|7w8w`F>ss&d}wko z#__>6F63nO2@=fNli2ZYl!ej6LvRu9mok{Hgo@#6fSvyUh3@*ZT} zw4y}Y1%fqq$Lj~C8;iuS0xRb%j#%q#%22hdBrgtD?$(U_S40y*nt%R9RQ$DXKh1=~ zo*UKFIDbey{v2W1g}a1aDaF$f%PKJ6 z-}^SeIET%H>T$*39qrG(&lmHGgY==2rJd0|3i&Ov0q?`63f~GR=t&K9rIIv}gpweY z#!1=hsHvlWUgges?J*DxXs9Jok`CWeSpaq5wZ~E~$dONmkjZ>KLTHSr<5=YAL00s& zBe7mO^L(|;uAR*5OB~+Qk1pWWQ2MXFP6L8Zp5WCZ2COV!(~)*+9iq8BI4ipI+@JF> z9W=Nt-I)~Tr5tu4ZtP8(8Gr;J_AOKHQN&p~H>?C5 zO<>X*vYzfHleoW?I?lakll$th@+mI&f%2ivvB|Hy$4$qsx}Xqoh+AdyKd*kS?BO{0cbozEVIc1=cni7uFe0{KL2$G4(GTGK6_#~|R~drwo%^IO86 ztMgvls=jt!l0HtmC1zX>vm2Ix$S?+**?dopx~eF#Mx|6A^WCVXb;nJW(Lwce*H5e# zTlG>a0NN*qlrXxGM5!zB8G=Pl4ekILw5|^>b8_VpO}A09iQoyOU3=_(T8$% zxr%HTto@i?D}9cg*r8zBJlG#26HrTSnN{C1xd=O~|Fhirv7=v$8H+1WkH|F0n<=YZ z)d=CliOq8Ww0%CnVZL~~?5qf-;=Zf)>&o_jnmGR8eb^_wDtfa)E1K^E33FH+$I}+- z=F}$RyG~>{iD3w@D7`-}`KU(t_Q8oIK!|rA(|z3^H3F3_?$0)jiAEeyBdd$FUq$EW zJQbxs7YeHKYS%uQ_cody9mK~Eiza=NO|I|@ef%2KvDeMU&;50f$J;X@Ou1K`q^Y;l zcg!I##?N9CD`LK*pNXXj?>v^kGdm7s{-lW_DCg&X`p}`v-6gVjOauXTV%zJB%Ly3; zW$zO*Vfp=$bKggEb0qWYb&uFX_CD{Lc+6d0KT6%oXRs>3N!@NYeazQs;p#okXA#rF zcmbxSuq(CX)>EGwBu$Deb28Jmiut)yXih3?;a^u#E9n#mT_%F z!T(g}GP-$hCY<%PYd$pduCxgkKPm*^R-TX@IZbWZUVe=(!PFlDU_;jsG@Ba#afkz) z<_mREgSGa=ZMAgcKQEW3Ey!XUxR8M-H}E5If!RLHh%TPKB;SJ9vdJ=eY|;J;UO(u9 zj@WBzqdc(ar(V(SB0j=qpaizPNCjtDor?F**sl9&;y!nz)6o8DDLt!Y21W_VKdRH8_mO$g8{!} zi+bh0jY&9_d|V|BKm7Ks>gS3zc@7x`;6ic~k%d;+^w-?q8ySyZi>p%6c^9U}B}QLL$h4MxvzRsN?1W0IHzr71`q!aJJfCFX zqM9AO$(XVt4l@mlJb?iXo_MEx?*l};L7VsF{$$E~eNu>`6WFm>jr+nn)b4)1u}Djh zr*~c1y1f(X|H2)r{3xAm57T$4>2Sy&X6cMmaIrhv(VaLW>MhLz<|dw`kd39w236FBMvkQ)SuP?30#D zR!3aiG{G`zav{lcD$n2Cx^4sl8USDF{o$ZFiHKkJ66Ae%y@{e}`xict$Uu%1sm&cM=?bB2 zVdXd7(=ej$i_%0dsXqw$O?lK$ENxz<_2~-c_txH+{UFX8Hy4tNCnW=Ib|2M8FMQc2 z2DHkbB&xvb30aSzrk+k~?zkwHF@LVsUsdfvMhcp9fJ0@5r@YP|ndt1mC)KD{TFkx` zX9}P-tSfl=3eu*J&KVtz;EJvMV*lV30HfWZVpXSxo}M23$B}l2r`faJIt-!7pPNtY-!^KAz1}FTxe9ow zlHI%pt%wLP{x83Xfj{KdJY)A1ZJ66gmbfs}>aEuE(fOVQ7jU^0jJLQJMJ_LHE8Dr< zkjlKHvQZl)y^|?sHSOu3#uZ&M7~uYyFvyYVgx6#l6&GL%m$c`cLgEG-?N@N(r(!m> zS~;4`@&w{WUL*H<7^^UF^qeTUinHW;fD<=L&E61Yb-Z>!-)z7`eyj@?cDmJyDC5*u zBL+#quVELbFTwB6N!&Ur%^b4cC}lAj(E9)h%^kkiQLPjvuxvvUY#_E>8FA@g^f>p# zo@s|`*>rm3F;V{Ti!$SFp=WtNB#+HXJTmO^k|m9ni_I|$Lxn;{G*SMtIxMHo#;jON zzI&?j!LXaMgC36G15T8j&FD$HsiB23ewN3!>~&>Y^lgK!whI`X`C+m48Nn!eD(+kU z{=%R(*A#*afZz9u7&N~cfeQZOa8ovK=BIEue6~Dtlaspp-H-19%{i4#hi(^RGH6G?jaG!-+|d{GBe+oysSU6v#F=Vf?__23jV5*02&_4xc=*>w)faj~dK}Bv&M# ziA!ix5#3EQw5nFl)50(TD%VHhn5dPeiHfy%%FTVj!)KHe@PUXwM!XKu64L&dkI^)^ z5M_9_X3A;*Zhr)z4dY~>!=hxxs^=57Hdy$Yl69FST#O;#xsU=O#RSg&EB@Pj6FJp*F=<*dx@t_lP{6(P^P1nAw~IyS6OloH=J=~Bz{-2|rDjohr=t?V-cKh*471wA|x ziCj@HAAQE`C3zQ+xO|FWPw>ti!Ai&_$1Sc2@|1f;%2mprgBW>o#~h%`ORjyrFkkXH zf95{l=g-r5RaH!>J7*eqT%rzuUHIgF*nP-YIai11gH9hwa8=C1@0AWLCD>YBAtXvw zY7UMVHu*3A`QoSRd~y#Xmg_W+W+zsDhPM;hMsJD{Vm=T9rr8TSL+vbZx|>RiW%`)4 z%;B@A^GXB4T6wm>SFU#25>@J3u<1Us;ZM~+y~15j0Ho<4*#m<9ll#Efejai%9X^!G z+d8dyFe;iKTs!)9PewRbTyzY5mPT zYad_(_rUo(9CU_EVI6a8*8yc!a3(f#l=ch8I8>h$Bb`o)WD`JUbL>u;ddvf+0qA(8 zkZ$x$R=6IoT1E5n)UZb0%*-})t8wXg1KpUrrFZ~4DU^SGLyI9X!BAUXYTD;(&>p5{ zO`3!b`5PNh<8((tR3SS=^6*7_n-IO1~|KrPuM3P*e~)`l&10B81AO?2R$c?AQZomLG)!q*uJ^}naN}4HL0KHY1PQSEcQIh+DIKO3&79Ws5iNfo<@t>PH++b_;m>4(RGzghfGSW0dhr z1Kz+#%fAK$OhTz6s8+JXHj9yPsCykXHvXM@%F#-Vk!4kgEz3YIG;ik71#FQ%X>;{` zrUdqfgMbD}qBBE`xP^5qDLM(^ngH0%0jfv1f6s9e@v0cB?l7XAmXFgB57a(;%hlSa zdm+e)_}N_U_FSQKvncN0@G%NMud#N!;gs-NMX)fR0T$sYive!&-Sis_M+tuy5q@jDvr*E50bBi~9Y{!B1`u z2g+u6k7skluQz+nt)@z(`JU4A#mBjRlO;;e^@b;kY$Ua*XvK6LMVh@s92IDWy#V=> zBS<1WTdjDS2)$Yi(8G}+4Po@z_7mOUZ+25a6(~SD4MEc#@9R434>i=r(EY1}h zHs&%;>EoF6<*BdSh2PYVvkca3>RHpsk-m0C#v?PUI6N6uL5)MqL*Bo>VRGN)9zZdw zCJoS>E3>;BqW7)Z=y*SALlx4I(!UQiCbBDlYy2>3TEc_j${S@shF!IJXE?^vzj?`K8?8@Ro}0-)kuP=JZN|GG4$n zRVOS8#Dw!p>!}~uLyGJzDpZA_cBRDxWuGH$Kk+e=hon_ z*2{Aems#2?ytB;GONFp4Ot_DK!p0<~w=`FxPm?LnI;VrYoFs5Uw--zk@#>Gh;6Htg zH=1GE#St&EpJGvc!rr@{;YM$#7fjxtO#!j)*k-V{f;}P01$1DLOQIT&_%C#Y{`cbve01G1(!=*XPkDK z-CIs_&%NE56d~sAs9PENAE;V7j4eeIB8I-Vmdj~1CWfk;*9M6NhYd=3nC!O~eIJEi ztrZr<=EP}WRYb^bNNMf}9S`By#qcd%Uw-{a(T94nGgVDk|FqvHTNe2M>5x2=>!$cE z^MZ}DQ}D5)$h3eFWYUR-+hDAw>%kKJ_!lJ`BbkhDc&xW$z?YfwriZ8R58!mh5}rz% zL~|*xd|z#9Q56BV_e|&}IKF8&lD;_uq>6nXcc`mdOP61n)$sdWDRVw^eR#r>!lpce zbs7pH)d2?X7~5M#IUac>F$ zn#@r%QZMQzn9d@6P(FgI=Z>NtF%m}8UKTe;sUlw*VbME(z~XzQxtJ0TVjK|H+l5ow zT#w!CXQ>x$;e+5y8rs8?ceV}-hVLv2GO%gLfV_V(llupFfqR`x0B~NWMqqa5Nw21C z?uaL`bGXv3axE6ln3_g?qy*)xlOV5wAY-$~+rKd44th^E79L{S?{h#yf-- zp79!u^*Bbyu__gukcV5PH#v!#qJEnS1czAJ(!RpAn|cR3DmVgnEbpOEN&VXOQiT~j zNew>MUKBqg;HrPv*V<67es|FNjWiY5xsaWL@jemL__ws?)Hf1*SM4Z zm==FT(K-)Vz`M?bbzhKc(HMO}NIJy0SpBs69J^rNIGlDEKOHNBlr3QH7|gtS;U&^! z#gbzDD!Jx!+>Zxomj2%@ea^WOBxA`KNQTq&7n*C?%7R(mfG~YWIlY-(mac0xTaUF& zrH}aNdteSOlG+ONr*ya-2aUQjk4u@7{JC)`R~=D{l^&=`Optl5Oc;Shm$m6A`~FML ze*fteh+_Hdi=(+}aE9rAKyk5Lnn=~{YXyn>9yVfqVkY8Dy#xEZ{vsoSp~HBMk#U7v zU~*^zo}IgN{R4z*$VIz0S*o@B`eq>|)mIN`?{Q!m*C{`hB4F$s#_Qm0^k{Z ze0;gG$JrOr_r1fl{*9u~3#;k6degW-dEHr*BuqkZbt}fO7cr@75ZbLOez+4O5d1^Yq)v9?IEqXNK((;<;kF(L`z`m&C9hZL3Cf<7uZ~&dtS_vKHHAz;rkw0@csGud zcXe7@Ta)NxIyUzV|2m^3O`A8cuDqPbqy8p3xApd7Q41$tR8k%;LlIEM_3Tj)u=Ul? zlf4h!<7%?g#AlAq-XhB$TLVLFaT3i89iI3T?>urNbS)?g_(_1Tb#CU#xpVA#hAh%` zfbnB}B&LRbQN#m4?+o>>W;A)&FR6z(xC_6nHja;cu^H>I-zC$W#!9^Lrb6bY6BT82 z&6;>Yz=_v>=LnCQO!V==^m*OxlH2X4AULbIgvM3gwPQz#I7LrU&y^_GxF|iYzO<7O zCp%BgwXJXSbeAo>`F;Vv==`%eU6k>aS#??qgPn8lzci}m@3%$_EAj%NWA}ED9RM^) z7rO`^KhVnUUU}9JYk$C&2d}PvfY4MinGdxdFXUSG$9?V{i==ISl;}&HbNh(6IaVzI zo45qQRy!wbO+n%Njn#dlZL7uK;N7PNg49aOXX$Za>9M8%IwUF7)d$kBW5g6@=tuGX z%lZDMvElrV41COy_ujnC9AZ$0bNa7`V-1uX;`B+oFD_|S&sg_7-r5TWr{J93xzzox zzbu$m2s+ezf$( zxkx>5Uct3E=#xh(l9tAB4G_YL3aaPLmWox|3REuYTzkl%OPqF0;Rj@^hlk zB?)c=XBNeFUjY;;?gu=rcs{GuYpc#Fp_WI{e%%p4<#vX11L zn?ntb78PgfMi1nc&v;Fd8yxJ6)P@swB0Q6yB3xLMYl(9Q{mqg zS>jn_k(9l4FieE{vBTx|US_~W^*Y`M2mWd%HIgD~^NthW zU`+EP(&3FlT9V*TH5>Es#f?E8*r4IDjO`+mqdBnE`5eEmm!77QE@WYh&lbXP{Er2Gu_a2eJ^(@92l%hVc zgqjF< z+m#}|S5c7V=6ENGO*T!Xs&J3%)1xCfB5YABNI)Q zleLdotVFej_;VMDh`v-i(U%7FKKOcr+syybol2DWb@$f#8+KXMd&`~qof+2j)m+Jm z1;b}eEnHe@z?0TbpOg+Zp&kwQU1^O1{08)uoKgc;NVoiGMrPT;e52IamqtZcHM;;n zw}{>;7ipoazzJXAGB@B^_UfC_hjNhjwOSk1A3&=426#TDFg zBaq4bDU>rYpK zH|KlZSK@22IXDq2oX3`k=qqlj@pFhAIr2|2KYskbiyO*{X`jJKklY|^cMlw{2?;JZ zPf7I9LAT1qPRB5BCZF~K_+BD4kc^=!kiRe=#DUJQHdWYm$kE(9%-}*q7p*A1Hj2t( zCVE&7Mk^ORJaH{6>5U2g0i4~GK3lKP!{Sllqp72)N&mAq+I5PPT|U99+UU%cpad@* z9Nnu_qn1U}LXPAHSg`&U{GBSP%=@`05bXgEG~4gdm6bOunUJ{aihN{3>5HYc45PMw z=ZO9z;JCo_pwwEoKN4=sVs1he^Y6>#84G~QC~2f6g>?2}>>@s77D-=}fjs8BK}5t_ z;j(Us2J5EHg+GH@sT{9^k=!5kp$`baB-OZAqx@BnnZ$4E^j@zlF*BJLh_1*|?ccel z0uUKGU0wJ`u_ZA#;r1`WKB~7`Hy7s}yjPNC?Y%yhvFO36x8f}94<{2(k4i#x-~$bF zaKGZ<@Pxd1b_9O&JeLzE?^|N#9^~;PHK;@U!0(*Qjx-AqZx7EC6Z9{ifR_N!=0pQt zF--%Syxc3tzV#f2AM2M`@Th3~L2HV6Y^b4fJnRhId1Q;3n-{OUsQTJbWH4)KN z03b=pr|8h-p#Zl%v>!@38PcM+CPT))C>5C}aY$BuI*`@^9IR)nm!#9XWFQ7_8zRVv zZst7CinvyXDCxs5{7op1-?~>or;F5Qt6(^%P{>0u>UK3DzT^bkY1LJhM1~aX@tIs9 zJ0N~uAf2FLK^SJygO32c&Zq-mjG3Joti(6TlW1u<2N`WDmCq3Upfe%^-Y{g`0vu{Y zM1)W;wS|fYN^w@Ut4X_V1mBeXT0C_9ZKhP3FDzV%l;|Ni&Z$pbKnBvS5B)_rP1!g} zVG`j)A1)=(KRBRGJN3K}sHxmdkU{UohTDFk<~&366PAC}-qqFRqX8h!dC4iW_<8^N zET|rmg8otsrtSPKO6{pOR-JFYazsQMzs!q===k)OWho;her@1KWt?_n67ic(V94Ct zgq-l*WsZ6Xpb;RtsoMPz^F8W4;xU+~+xYK3L@r+8{q$P_lxJn%-Nq3n=-R1k^UL=u zGbh8C{rR&*ci>d>8d_TWnVAnUMf>0gPjG3vQ}GTSarc9>)c0DgzxVR*icAL0SfmY< z-0{PEzv>(bSn)HL9F5c20rS;6>qxvuF!J-e8b>o{1l~CUX-wXi-TOH}WGcWWjfE=!SSDC~u!CSY zemzaH?|d7i$mJ54O_+A4ny>IiI)JiO;*$|7c-c-kcCrGnHT|bPStN9xhYiZo$s@4 zXx1g7+Nl|8?tHurBO)s92X=eNATQpl%=nLH;PxH0`YQuJ(}8KqAZ%xIi`WZ(a`p2c zxk$l%vsbvIJ(?~CU&G%T^qaCF>(fP8&40fspDI1lzg=i$SMrf1)#+4`*F(0(_fzq2 z?M6ftejAjIy*C*6#FX*3-j`d{o-S%o%#9em@bvj3joWA~9L0mX@vlmnGOTa|`xl53 zbuuo(*b{PbckmMUO9SkvGzQ@99b4pe^sPxg3X-<~yZ>5enxQILR%B0V%@V*rRsxv} z=bP2X014KW#h)Ght_fzhg)pp)FF-rv=jHkBZXUb(T|Mk(^(_8o$IsUEW7KUw-6Kv_ z&LR;|S)h>`;3E!#f%i*9#DwTtgv9Y{gsjJjSN{%9d{$B%W?q&IK*d?%L`3`v*L)y& zjLic<{FiNg!NCZiw35DWi!sS)M{_X&qD`nVyEMGF%%7%z&H$?@|LBL?n z%!E5ceGJ`Wp~cg9Rcz#eROkPX$)>O+mm1h#ELX8mtoikU^F5>)K?J{O}`YLW%Ku(~hs; z;wwB5W~yw?Ns5&4^Y>o@^iSEY``_Ds4jFi41X|ex0F7K=Cp_E!)|Xp4hydWQ3J^owz8)!3BbD_MjqC~lRYI)4-!^+ux_Vv3wqF; z9TAf#)-OiaE)e}x1PC-%`Hi1Q5&X?x(w$tk=ibtUIrz#yga6pgE@`0Rg^sqW%KOUe zeS~hSb3_+?##sZ^STX?w9%!568E=QtMK;3Cp>*1_2}?Yv1cD;0fRJsTt^xhM>FNL>acmTGQ)!Qr#Cbe;W4azb#Ghb0=D4l`K75Iu&?G?`H=yZ=on-KOh@1s{5yf`P)7Xl&(LR-gVXTS0pksCX|Cf!dhbdSW)k@Qn>qzT zB=`_OX~!W$V{*DNfW1badz|Egt^u{|)`HpLy@{eyfqHVUQ{@!MuQJB9|Qv0-_q=~eWWq$AP z$F(}yT80)(fB$-S+tJ-8IPvLbCJ;!=AiR;rU$OJ}I#0lt_jykrmo^PD5@$u8{)31J zRC+5}NHp)eTQL3ahq49cp9`=% za|D&hdw%Z2R=boZID&A_V3aVF@D3( z7vPJ8)fyLz%)gZy*LI@)JGzHK1bl#8dSTyC-%UJjp4pTjUEo)HzVO)fu$E%-1OB~# zPayb21^`oD`N{|ULKKqyeYSZmQZzGg(K`5;)A-*+2<0(;Jh}2w$t2gn)4DdXR-8)q^%ah<)A89p@R-pPRX6Y*E{ z5?DkIk|bJfcW?XG{~r6|+9M(Z5{Sybw_$>oJ;8g7r&lvz%{et0;P2Y}Q+Mz5U$)u3 zAZ*I>#rtxnS8&hZfO{?&5-~?lesS?m{Jryk|HHT#af4{iQRSyAr`EpXg>wYhmT`(mK|NeC-XX>!3c$Sue zBEnMgWDUPbV*fp^Heb!XQ+$-ahQsoAq7r5%YUzKsTmYc=0LJy#Q=A1hB;k0|*-hf_ zFl;#+OYY$Pv3k0#?3KCs+>)Aq59>%N1h3NzGrx9+blUxYKc`Iv9csYv>OY$Uk;Q^X zO=-65zl}>~dTO^%f1Rmy@vjBK|1J7bJWxGb5AhZU5RPMgul_#gUCY1?j%q8L2Qlv6 z6?hN0`s&}YrN`pzy3%`5Se8q`^qpQ%YW|GWz7lq;QUz_2{U%r~v=~ojwd=1^@udiDTdf1yKSW z4N)XcRDLjnHqc(BszWk1q&?f@ws=KA{t>duhy1j6fNM>UFRZr6do^86Gy#Mc^ue(so6ceP$4 zFIVC#Wr-eo;19&X;O+ZQ(4rU8;?3U8kd{8BMG$LB}7O>uk7zRI9^2a5`yvb zn&;_kR^UjI)tBE`3!Vr^}GTsqsfULY<@ajMgw%bAPa=@K0QHnZMHuD+o%MSR|9A1DtA7MW^8suiK`8f1J zD=%Q&S3{z_PirPnqgYx9kT1C*vTHN`B^%BQkS?7Y>wX0SNb|Xo0lZ&L8Nfg?WRXw+ z<3!Y531ufJ0Gk9{d8DzE7s6c!Ffi<1IQ=w+g6IO$r1|UGqk<7+q@yb5XE^X(agw( z&-%KS-q4bu2%5fPDDIpkw7mlICjmXWb=EPyNdW6gpqLgvISo;>Oo!%=E-Pd+ux$?dN+FGpv&5{G!@4|% zflgX8ZcQpi4}gDtz&<)vie0{riWdNi?@+kseaFIhK$3aD>40#sVJdta2ph<8=B@~0G(j)qAO=Npz<>T8`!6b27s+xMgL9wGdA;pm>XJ!NkQg85PSf@ zEH!hVHygtfXGxdJNt^+0|D^dKIl*LWptMjx3M)X)1uAdgn9mDv;lyot;@VK0OJ7>--hS_s_*2CMZY;|ot<}Zr2J;}S4q3+LbVv(->Xi&NE6$He|KCocC1>N zY{}|$>|)J1ahTQr;b6~R>Zb2gXLSbXyx3DS43_hfBit@}etxWn{-SGj{!Pzan_pQ8 z-}V#9ujSt@j6X7Nq8x_*2@K~jQ)KhvZ7bw5e|h%z9{8n-Iyc7)3y_SNXQaTuS!}SIk_tjF?=bu((H*&?YF9Gx#FU*`t+A;Jh(mQxHwvn zoSN=g&2#}&zClSqLCRoYeE8_zuj55@I4`oIJ;q30wlL@mqHOZKr9CqY~Y-AH)xy8auNe7UnlBuvfn z`{Ao+wKY$1rpo_$ew)*F{_^W+FaZS%nknxt@qP7R9fxypTmRa|3{@!uvQuQ80tMHPHfY zm0tmLfdvr?yg~tf!Nb1-X3$i0$F((~_5n1XZXW6P6!<9k3%$$V6Si`1Sborlq?ipd zc+ad)bhd1?m&+Zo)eu5xv44ONh?#5q6^ngjdeTfGi~aPY-SVO39uxEsmAQG4oxm6H z+b{FI4I4J*mto4Vps1aOGPv5t8qz~d)fAV&cNP1vS64S%u~c&RB+=}yaen2+^1v4c z*;R>pyc%2ZRw9#>vB@OwPQ35J#SYo+)QtCI>g?+q)h|-K@Kc<%22-7OP4R1_K@#G& zMu@)_?CUBzInQF!@uWgOP6&!>6f|D*w z9p4NUZ#9W;BIsB4!xD>jRW39|XHt6F`rON}**)%k7{?+xvVVJx_wR|Tzcz{Y6t~<$ zRu~#>Z#B=p9SUaQ=Wj_!EV&t|vb_g;^v!fwxK+4_vS)01bP#R)9F710}P zMG+t;NNK~|GuLk;0R0$ef&meV_;#aSg-CV#ETU3?<&U7>cawu!nZBJlN{l1B9zket zkaK3gJCF~)J%?j72cmvVwgNyLS0ef;fS=kEC^9q>^r zqIoIEX12V?pp~|FC8PV1T(~!8w1|1G)EiM1wwV$B??rNaz!vU_UY*<~vnaTf^2fC% z$;@CQTXFY`Ccn=Ck^qixar*C-a_kFSzz+S8-2YhSp9e^nR0qoaZ!j? zLPNVWgCz%$`JJXK-wlL!Z0+gNL?LZFmC7iW3>{_VXMLJLu%n8|Ey>$-lz%64NgGr} zSLDE=LH=;z% z(7p1eU$>l@DEEm+JVIsE>ZbA&WhjQK_q$uEc@=(h%U!tz$d6ejoh= z^>onuET28TBVh3ZE(DX+4seBlDI-KDW4t06g-($JugVmr;Ic$-oFuV`x}wME>)ANy zQWLPiTp_OPn1FPgRCYo zUU8Ss?h;K&z{=1I7G&-97S0#LrVcp+Q)kQ@uPIL&?r$^tR()p?7M=33%bPrUyqA;F z_?Fc}z+8B~AqMq_G~w+>(fLEMF{o1bO@Eolp?h4@`jzh0vObvs-sDtT(P&oD!6(A?w?+bG%8TbM zQaK|=_1|oGWuM;=>ny2PE)#TnS)`W4BsCENQ*e1{HwCnC>T8S^IHg=*@PsGR*OCyz zZ+gVPpD=v>V8~l03wk_AdnXtwqr#y(thZo8 zL&`)wDf)a!gGPX==WP~p{UJ%X6ss_RkZMunH{gm#ScVl=7_)>3cFH&K}nNl$o=6%rwnE{6wUW=PQd zL{h-W@U{H%V^c!1=Kc5_AUo-8Owkp zx`v1*;I8*?dUQnHZ4K;JlIER{bPr)0&8V~4HX{&2rBol>SV%Izi6cwi&PqNE_I{4t zN&FgxL0mlr>JJ7(R_Siy>j~ufpO0Yan-98W(-_U9`Dgt+_BOt1OFndrtK)&#DqHju zRdtgG84TyioMdIXgzYAm>vL1D2vkvnYhw0R{SOfaPTr7q+0-&|BV`KNJaIuLl1t&I z$4lK+AGgIIqes-qAOYY~ z+Yw0`Q_{`tE&|0L(zlC*N^4FlR=#D!nYem`4s)7_+z7>;{+^aiz>l{}{SrJe`U>Z! zY4+ANND#wm=^PLLVT?(Bq~_v>{5Z?@HAi~K zXpf5qZLLrjyq!i88{CuHfxQ}t;xM5+4#-Vzf^*y7w)8kL+N_{97B@Da=h(FWI22-f zp>0t|*fdL$E^`U?&ei4@rmXAud-9aRbn3HNH4(8Wi>dINS=i}ZXwP29KKGgl+C5dD6Utgw2I%Z>#*@LyNrajdf#P* zPDN|c*BW#1)Xd!qLd~Y6|9HSGSlmnbqRZX@BUep!QKj1zwxT-4ztAdDu2TfHi?d3i z-5SYqSo(2k`Ody_M^p*tp&7qmU>6^=1y?d)z+6CF)fpuuw1!uj_d?B;Z}f_BpHx?ge^}=vzK9Qu{vgrKSblwWXv-poHf~YiPoy?UX>JZD zjIP15F%|JWxTsDM+24qOyX-c5{iI5Bg@3ymKR` zV9xo|izHCFzUu1p+Z@@4^Eub#!Jyj{*{#fUKbv}T^Gqh{yih4z*iicddDIQs6p$&H z0F8f7Jf&-+mh&s;Yl!+dI8$IZ4 zr3fw9O&;x9z;1u&s&eWNrgckT@-eIt?{`ojg-@D3ikRE;qzWN@;bs+K3?$(ywNmw4 zy6#6^Kz!d!4gI*@=Q=Rmnl+x1d{b4kx_=FuDyOKy`{Dy{T~Nz#9qP&QZ{&D?*onmdB7FD|_ z5zwb#6k~CAa-pn#L*!T_`LfwW`?hYL+wOrS#rjqZ$KJ?M^;%{UChya&)fedd5`?)x z!hqA07-d(j1r8k6WdMa2egEY%Vx0CFp*0*&q34b%#39|G2fvHX{yH1_Jd-XjLTwjZ zqAgFOZ*G`{s1L-6A55L=-6SqFpi($n2b5F}F5ttAzgja#@=X+>uDvN|;~rWsdo&-2 z-}Mr5fsVU>4C`PV{#YYfz4lH4E$4R2Xe6qd6Z=H0Q>Lz?#h}MJo^#>om6O(k!Og>n z%K7C+XRxoC)M|+nl$xVJLisNzs=&wROOklg25sp@Gti=o zaVNO9-UIw8&-cMuk=nP&$D%E|>QfP%r{QYm1Qq?J0@zToMQ%C{yJb&TsuLuyz8hYA z|M6tLd$jQW7%lDg>y)O;OInfRAD@jkbDAOG0yCc3qiR_I>y)R{}B z|K%r)<_EQ8Dmv75MHTqQs*V-i4km|>?VHV2UDFFW3iysxwnJ>JF>?g7U~Ox{rUg6Q zPO=$l3kB>h2sGrI|8&4xtiydj5hPf-)gACdK7ze|>BK;7iJ6+jArog%dHSgOj4p!ZL9FLnEYc`F2)3?>8s26dz&+t0k=zua~dd{pIsb1O5DBL~qUl0Y(_|w$x zAsMM^YQ9|Tbk-sJ--f&7=Bne^9OLAZP#*$y&q&Sn!c|52+YfW!W3bB6bBWAH{T-BI z-_2bwj{H{CiW*LKfuAOds&uhH-I3+DB;8?EV zefF25Ra^OTZTNS+o5LAXdy)`M_hA1&biBg+k-ExirgxE(l(*?PO~y<7eVMYURcW7% zalG^m4vzj=tzqyHNx>SlmqZO-$E{OL+_nu5`S`iR1}!M28t8e!lcC3MCBR;HFVgbB z0H@zA36lV64BEPg$UlKDL2b4+XKYF8+J7BH){hElGrK@njJmt+nq7)Oi^em^7~dKx z-T71%g7cvIDw}yVuWcWXa0BUuZn1RfiyIWjvUvB1tPZLLDe*{Sds-{~N{y=$+AlwS z)a4ryessgNk^}hq2k$l~TYu(kfkDS4Dmhv8yEb6-pQ_35bW5`VEylqkAnWJz)v38d8;qIL{heW=} z`H8sUk*Qfj8oGRwiEg2!nWA4&1@XV6%axNbQ(2SV_eyi#&C5NV>v9Ft))fv9A{S+D z%?1<9yie5-_Y4szfdw6|?vbNBli||W#9eIn{RVI1+t5j?=`?LLtLwy5Z2Nb3w0Z8I zYf~DzGam4;IjI_ozGeRXO>Y&-ZYY*N36(BpFVSRHZ4$fe>^ea=>;H}gSDL??oF*|! zrm8CKiex$g&wY9S{mz3y8=BIMvY*uYA~WxLXm{%3WgfH2(AmHA!vm+C!Qs_EGj)!$ zid4v3IyG`EBM1B@eZiEds<+)$@haYQoHGF~B0?Js;YFAP~4==ST@}@cx2k|tC{PuY?nDU<}Z_!&O32|)wLu+4a)RfyVB z=hZv^qWQLu(WsZrRoeM#oM){_$WwssHnnO6Z1u8@JPA>MLdop*N*jWU_?PAhg6@Km zKd!p|Eog8W<}+|WvP~HWIp0WtdafBHr6K06{%r-xHY{ejypu69ML64M$F!I*fr5s; zLFQqba`5MOy4vOhc1p`sCY4%MdFMmvv>|(P0qR{>W^?z%6cPCfbv5T44|bC*erkjI z;AgVlXb*Q}lE}E;I64JhBq~}=`kI@K3;j02FJz!LYwUwgf@p1N<5-+PQ-|VeOaNR zJ0*QNR_3L=#P{WQ2Jk@5(H@iaMIr=H?(bnVow(%RO5~c?qh>nJ3VcI~#v}*zqi;Y8iszd)u_d?>>9oGuX1&{)e&H!&cRKKy+54^or*f zwTIhty)Ck;Maa{=5AF!ypb3+YwK!|uEO{t<)%O%AW;gr!*wG<>UB?IdH(ib?wWpqQ zR6@deCox&|L;#go`5h+ili4_q67IKDznoWb<T>td7qipVZ8Yb&9)nC3|M@$8s%TQ~aFMr5k(BNoy9egO8>2@(XBtAQL zKeKYptyKE;cvaise+-{3m54bshkzMjUU?Z07SYOCOpeEQ`}%`%Mip-Pk!S@&w=T;A z%Fe~|&A=!pe>DAe$0z*?ErIy^`*0r?umQ zU?z>lUXP1n{5RmA#O6gzvk;>1L)6F7Svf@k-b_RkR4`+SB=<_x&k6LikcXi8aVD0b zHxk8lp{Ap}I%t7^DghExb7BIShfu}xJ+`|{8Jg>L7oqF{FXjtgMjk@`WGZojYtRDhtENhK8>aOI3Uk#BYjtp07#{sW{jn-H zaF=k96xZ`yArIx*0K*j9jHJp97?*MDGTd8Q0EZ}sDK8;QnSfC7ufjKA8FL_VYc*brg>Sn7(--MMXFnOm%u3}S;bf{TH za~q{zYJH=$d1Z1Mv}~E3@U(%&wDitP@Hf^#8AHUZ)A#!?9$M(h6`&AnpAQ^t>F{SQ#Nv7m+{f1{IYxHJq z=1Jbq63|9eS+L4L=&>VPc(S!ShZHwG#_aZ3^OTDJp{pnOHK>O>lzOAQ8@V|hEE!X~ zZG3~KKv_jmJp-rzaGvZ!=Lp5!y@@CjmvvZ|C5RXY(?N_+LEgIO#&>?6<#;#Uk}s`4 zTxz76r@Igj6>E1AfXpi%rzqeL+(i=cbo)ziJUmc=x%U+dtAeC8(xun`UoQ210d9 zgKNP)Q!b4`OAa8hZe!oIhV~+Kx`jYZAowbxARZLWvH4<1L%rMNEcfL50s@E9cqav^ zBEI{d-4s);QyM2$v>x>$gz#G}Qk4s0#N650y{w3_d6Y|tU5Z7~*AI;U@DL>@6q;^4 z%?mldr*!8F5ktxFi8>+n65i9Ck1qV5LUL`@?XzAvnelc4~%U~v$?Yo~T| z??YCO-I>vYcABCGUIMHH^w;-MC%X5ngBE>+^6|AW52>}t?B^1Wp)@7;`RIdH!n5D* zz<*pb7dPPMAm{v*KiU#x)HD4**@qpxXWQ{968_v8;4}OyN(REn0Dd~jPE|c$f`qvj z?!*DFEX$m-Et|3Aj}|#(Yu3pRrMjs%L#166&Aj@M`Volu!yM4%Q0?_oeS1FH`hzk` zW{i4e>(A?S&p4IaRCwHjcZLuLOKYevT_D+EZF6%<~QPv_L11|nvVcSX(ki5&%t@`Ae5@=cuH5(gAm zBxt3j7OyhJxu8VCFR6D>vkTD!RBni-f|GVBGZ)CUY%>>UwrHue?1dscag{ef&vSU= zvPFV)YrNAccPXc8EKHw@QuQ^1-aO>5s}ik~t-AJNBS9fX&@f4l5n8fl7R4ONG!_M2 z_e~&2e%6r=%SBOk0y*FZCyo_LtoUgaLXY33sn|AaC{6ELvsBpASDfUOiHZ&;}`(n zJ)wJO^mmC>%oiZPt{%?ZS518NU&lZrC7=(LHeV9W2XG=f5`alwsC&C$<>)Nu4AA$) ztuju#9|*ws!1l_0IUm)zr{zuq`Hzocu16$QVH9S!|SVuKGr MU)LDY2zE;NA05R;CIA2c literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-light.png b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/wwwroot/images/logo/leptonxlite/logo-light.png new file mode 100644 index 0000000000000000000000000000000000000000..761fb4443d597661e7700574e52b787d7ed7255b GIT binary patch literal 33228 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 nuxmBTJ6Y+ll0437Z literal 0 HcmV?d00001 diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/yarn.lock b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/yarn.lock new file mode 100644 index 0000000..ab84339 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi.Host/yarn.lock @@ -0,0 +1,306 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@abp/aspnetcore.mvc.ui.theme.leptonxlite@~4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.leptonxlite/-/aspnetcore.mvc.ui.theme.leptonxlite-4.2.1.tgz#3e3cc78b0d1d56113d459d61e01125bffada0c21" + integrity sha512-unZMV9HY13Kq00FZROVlo9po+foivENEoM7jUmZWlxOQjxBwa3/VJaxwQIXd9DZOqdpJpi5zUv/pSb6DqiZkfg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~9.2.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-9.2.1.tgz#35f6de6f106c80592ce70d36b6e8b20c64862803" + integrity sha512-kZz1tgUguGHxwG1MRkbkeXn9sIjbCOHJcBU+w+XuWwCqigM2yaE+KgnASDcjCrjQiPu6i73hf9OwtxXY1UbGMQ== + dependencies: + "@abp/aspnetcore.mvc.ui" "~9.2.1" + "@abp/bootstrap" "~9.2.1" + "@abp/bootstrap-datepicker" "~9.2.1" + "@abp/bootstrap-daterangepicker" "~9.2.1" + "@abp/datatables.net-bs5" "~9.2.1" + "@abp/font-awesome" "~9.2.1" + "@abp/jquery-form" "~9.2.1" + "@abp/jquery-validation-unobtrusive" "~9.2.1" + "@abp/lodash" "~9.2.1" + "@abp/luxon" "~9.2.1" + "@abp/malihu-custom-scrollbar-plugin" "~9.2.1" + "@abp/moment" "~9.2.1" + "@abp/select2" "~9.2.1" + "@abp/sweetalert2" "~9.2.1" + "@abp/timeago" "~9.2.1" + +"@abp/aspnetcore.mvc.ui@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-9.2.1.tgz#8b30f830d85f7e1f4a386b0ef8d0444e2550bc42" + integrity sha512-0C41JpevGynbyHGeKkqLUSVNK64QETsKVyVWY4fSZkChGHlD09Fn3qIlHJInpBqJ9qNYs5VQ7RRP02PSum9mAg== + dependencies: + ansi-colors "^4.1.3" + +"@abp/bootstrap-datepicker@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-9.2.1.tgz#373c8715d175ca23a8871bacdb5f017b070254aa" + integrity sha512-uaCpz5EDSZYDacjnYoqTiktTDFGnGJPEHYh5eG4BORlQta53Hvak7m2CkRVjdOaXtuPLi6EbWPSh2bHIfhKRyQ== + dependencies: + bootstrap-datepicker "^1.10.0" + +"@abp/bootstrap-daterangepicker@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-9.2.1.tgz#b49e17a4753b09d49bfad6774a7f185e7e5bf71c" + integrity sha512-kd6LEACfx7CBIQOAiE/RHFp/WnthE2iz/eivl3fwuz1VgAO0CBIQ7hYoX91GaAIQgt+OAcgGbOl2G6E284EM9Q== + dependencies: + bootstrap-daterangepicker "^3.1.0" + +"@abp/bootstrap@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-9.2.1.tgz#ddf624e95f1dab4a8fce8d20b6dccd2b3d3f1679" + integrity sha512-NghAVP7M/Y2y9GYDu7IWo8oW7EyJEO+1NnPqCudpjWX4C6B27d7ghJ7I0MfrHoRq9/hBJZ07AKf3KMAZQD99ng== + dependencies: + "@abp/core" "~9.2.1" + bootstrap "^5.3.3" + +"@abp/core@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-9.2.1.tgz#f7c635f1fe88fc3fbbc4accaa6aee2dc3b5631a7" + integrity sha512-onCzS2w+U+wBv5FRDCVE176AiyZDMm1D5GaqiEnpuAwsBncFpFyZedC95dtPmykagJbpOvHVSPOLyZ2jzGjcYg== + dependencies: + "@abp/utils" "~9.2.1" + +"@abp/datatables.net-bs5@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-9.2.1.tgz#ff69059e96d5341166fa8d08390e9bb352010e5d" + integrity sha512-NEkf8xWTIYFDs9lAAPs0hOL2UD+pnVwyix/9IAtip3BIkyPFpLCniNWbu1WhuNJpfmLHrWPSqIrouR80gGL7PQ== + dependencies: + "@abp/datatables.net" "~9.2.1" + datatables.net-bs5 "^2.1.8" + +"@abp/datatables.net@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-9.2.1.tgz#0a5ab74ca44cd785efb487f0447e8acdea9d7aa1" + integrity sha512-A9TSPRNUV0eeCPnpGV9Htu9ZylUf3e03smYcbEROQHe+htwhcEV5dz8SLAI90baPi2g7VnyPav/3efaqo+ETdg== + dependencies: + "@abp/jquery" "~9.2.1" + datatables.net "^2.1.8" + +"@abp/font-awesome@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-9.2.1.tgz#a387f1cf457bdb6e3cd30bd9f4c455a41f8ca0b1" + integrity sha512-RVo3422BItdAAmafSCH/mT1Ux8q6yUz7nswGep4beP1k1VfmFExj1mgVphIpAlH3DWyzfnwUOq7lLWf/Ul2dOA== + dependencies: + "@abp/core" "~9.2.1" + "@fortawesome/fontawesome-free" "^6.6.0" + +"@abp/jquery-form@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-9.2.1.tgz#727b391c36e8ff46b62cb01be14715a05fe74b4f" + integrity sha512-n6EpUNNRzilOzP5rYTWr9K2mPQbvBQAuxPiwUZpfwf+QpJrs+NppJMaC06HFbHcSkDDy/utd+P1/sqWaJjL/tw== + dependencies: + "@abp/jquery" "~9.2.1" + jquery-form "^4.3.0" + +"@abp/jquery-validation-unobtrusive@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-9.2.1.tgz#98215811818e618d96a1dcac6419962fd39c6fef" + integrity sha512-7no3KxRW3agw4EAM5iTvQjE4+m9JrjuMAV20gAU0uVPB2+sHlluEAks0IU9wz76T+Ac7osferUZz33LgdDvIaw== + dependencies: + "@abp/jquery-validation" "~9.2.1" + jquery-validation-unobtrusive "^4.0.0" + +"@abp/jquery-validation@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-9.2.1.tgz#559c581523e4e098f2bf67627dfe6c7ef0e1c3c1" + integrity sha512-AEGm3agbwr1f5kmXvpBeiDmsS22P88zVr8NJDICGsgBxZofKndXsDFciNZGu6lXF5qXp8AwGRi//QPaCeQsP8g== + dependencies: + "@abp/jquery" "~9.2.1" + jquery-validation "^1.21.0" + +"@abp/jquery@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-9.2.1.tgz#bbcc9eab9cef528a8163f5062665ffcf2b87c2f0" + integrity sha512-gdDIKMNEpeUdzUu5C/g6j568ytJ7ifaDxBr1NYf2kJ34p7y6rrBmyY+sL+xR3ZlcGgyPGXyFhTLRD7qTjXlkPg== + dependencies: + "@abp/core" "~9.2.1" + jquery "~3.7.1" + +"@abp/lodash@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-9.2.1.tgz#a80ab7a908a0332b721277b1193209187fab57d8" + integrity sha512-I2+XYqwMi3+FXCv4xp5hBoJmOszg2WR1gnGc+Qd0zwb2VAbG4MvKVFgM/GUAFD8EKlquGyPf3f+4l5FkaPFkrQ== + dependencies: + "@abp/core" "~9.2.1" + lodash "^4.17.21" + +"@abp/luxon@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-9.2.1.tgz#7e3d197425813cfc6932cd3f9f09f97ecd2f4fc7" + integrity sha512-2tyOZRmq9jQN0Uhg8WaHfEzL0Xeew04sbA8O9bqw28psRbXaWXEVdElRMBNt50sZkFPhHFoxxFN7PR8obs0Qug== + dependencies: + "@abp/core" "~9.2.1" + luxon "^3.5.0" + +"@abp/malihu-custom-scrollbar-plugin@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-9.2.1.tgz#b0fa249885d442ba84657c7705df73851cb56db1" + integrity sha512-fzgQZsbN0xLMxEWh7znKAI4j0CPb8ciT/3x+QguGZDJf7OFw0YnEWctfEYJnnGG28HpHs1mh64gjqoeceHy0HQ== + dependencies: + "@abp/core" "~9.2.1" + malihu-custom-scrollbar-plugin "^3.1.5" + +"@abp/moment@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-9.2.1.tgz#9982c65d63171962091b08fc4e0d1ea98cc1f0eb" + integrity sha512-V4KH1WmahP0BoaQGLEY4a0AQyfk1cLeNMk3qCPtuqIUbOFwimJY3oQgpelilEwjI3oD/upMzGphjLGrfQLRM2A== + dependencies: + moment "^2.30.1" + +"@abp/select2@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-9.2.1.tgz#5c3c6a4b0018b533491d6a46540069782559c57a" + integrity sha512-p743cnoohNLKX11ptnBcN5z9+ZyC11M9mwRR6SWbW5f1Eqvbkq03bf2mDFUfukCNis4RefeURZunPlsBOmRn/A== + dependencies: + "@abp/core" "~9.2.1" + select2 "^4.0.13" + +"@abp/sweetalert2@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-9.2.1.tgz#3db7e33855614460d2fdc5e3f8b65530902fcd9a" + integrity sha512-fJYLVxc5pAJoSLIcQYf5xRkPVnVQi/5+xwTgOePy3QeygOrAMpGS7vy+MIq7Mn+tBoEFlQ/Jn+NoB04AIYYPFw== + dependencies: + "@abp/core" "~9.2.1" + sweetalert2 "^11.14.1" + +"@abp/timeago@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-9.2.1.tgz#6904e2d7bda57b436e3385c5fd1899b9cd806dd8" + integrity sha512-fmsPuBouWR/BvhXN53yJpg1Se06uIL7ox8XOgx1MHCe+1vxbXnFCtM2VujfowWtOSTJOzbL1DHcDpFE7JlkOag== + dependencies: + "@abp/jquery" "~9.2.1" + timeago "^1.6.7" + +"@abp/utils@~9.2.1": + version "9.2.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-9.2.1.tgz#803fd48927ae332309f8a7005806c6aa6e499750" + integrity sha512-+j0SNB/K2j2xTTijy/qCL3ds2c/7OW4nrJ8Ccq17WtEqP+jk2TtJi0EnLqhNTDih0A++XV+pcftUC+cQ0h1cUw== + dependencies: + just-compare "^2.3.0" + +"@fortawesome/fontawesome-free@^6.6.0": + version "6.7.2" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-6.7.2.tgz#8249de9b7e22fcb3ceb5e66090c30a1d5492b81a" + integrity sha512-JUOtgFW6k9u4Y+xeIaEiLr3+cjoUPiAuLXoyKOJSia6Duzb7pq+A76P9ZdPDoAoxHdHzq6gE9/jKBGXlZT8FbA== + +ansi-colors@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" + integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== + +bootstrap-datepicker@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/bootstrap-datepicker/-/bootstrap-datepicker-1.10.0.tgz#61612bbe8bf0a69a5bce32bbcdda93ebb6ccf24a" + integrity sha512-lWxtSYddAQOpbAO8UhYhHLcK6425eWoSjb5JDvZU3ePHEPF6A3eUr51WKaFy4PccU19JRxUG6wEU3KdhtKfvpg== + dependencies: + jquery ">=3.4.0 <4.0.0" + +bootstrap-daterangepicker@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bootstrap-daterangepicker/-/bootstrap-daterangepicker-3.1.0.tgz#632e6fb2de4b6360c5c0a9d5f6adb9aace051fe8" + integrity sha512-oaQZx6ZBDo/dZNyXGVi2rx5GmFXThyQLAxdtIqjtLlYVaQUfQALl5JZMJJZzyDIX7blfy4ppZPAJ10g8Ma4d/g== + dependencies: + jquery ">=1.10" + moment "^2.9.0" + +bootstrap@^5.3.3: + version "5.3.7" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.3.7.tgz#8640065036124d961d885d80b5945745e1154d90" + integrity sha512-7KgiD8UHjfcPBHEpDNg+zGz8L3LqR3GVwqZiBRFX04a1BCArZOz1r2kjly2HQ0WokqTO0v1nF+QAt8dsW4lKlw== + +datatables.net-bs5@^2.1.8: + version "2.3.2" + resolved "https://registry.yarnpkg.com/datatables.net-bs5/-/datatables.net-bs5-2.3.2.tgz#cffb8007a9f752a997bc70c0dbe9f545edfd18eb" + integrity sha512-1rh0ZTLoiziIQ4oAtgr+IOYVgJfAIceDnbDe535u8kv191pBAdTrKF6ovQO98Xy9mDXLdLNB7QCrLiV/sgPoQw== + dependencies: + datatables.net "2.3.2" + jquery ">=1.7" + +datatables.net@2.3.2, datatables.net@^2.1.8: + version "2.3.2" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-2.3.2.tgz#6821f6288e6ad3cb6879c33e0e7e11d4091d330b" + integrity sha512-31TzwIQM0+pr2ZOEOEH6dsHd/WSAl5GDDGPezOHPI3mM2NK4lcDyOoG8xXeWmSbVfbi852LNK5C84fpp4Q+qxg== + dependencies: + jquery ">=1.7" + +jquery-form@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/jquery-form/-/jquery-form-4.3.0.tgz#7d3961c314a1f2d15298f4af1d3943f54f4149c6" + integrity sha512-q3uaVCEWdLOYUCI6dpNdwf/7cJFOsUgdpq6r0taxtGQ5NJSkOzofyWm4jpOuJ5YxdmL1FI5QR+q+HB63HHLGnQ== + dependencies: + jquery ">=1.7.2" + +jquery-mousewheel@>=3.0.6: + version "3.2.2" + resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.2.2.tgz#48c833f6260ee0c46d438a999e7d0060ec9eed0b" + integrity sha512-JP71xTAg08ZY3hcs9ZbYUZ5i+dkSsz4yRl/zpWkAmtzc+kMs5EfPkpkINSidiLYMaR0MTo3DfFGF9WIezMsFQQ== + dependencies: + jquery ">=1.2.6" + +jquery-validation-unobtrusive@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-4.0.0.tgz#dfcf25a558496a2c883db6021d10f5398d15f99d" + integrity sha512-1ervYFFv6LX/rp7ktuLnMakHNG0piNRDyROI8Ir3hL1vPIwylAehB1AY3BPrYJnzW3WmwWryZq+Bz4sazZK9iQ== + dependencies: + jquery "^3.6.0" + jquery-validation ">=1.19" + +jquery-validation@>=1.19, jquery-validation@^1.21.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.21.0.tgz#78fc05ab76020912a246af3661b3f54a438bca93" + integrity sha512-xNot0rlUIgu7duMcQ5qb6MGkGL/Z1PQaRJQoZAURW9+a/2PGOUxY36o/WyNeP2T9R6jvWB8Z9lUVvvQWI/Zs5w== + +jquery@>=1.10, jquery@>=1.2.6, "jquery@>=1.5.0 <4.0", jquery@>=1.7, jquery@>=1.7.2, "jquery@>=3.4.0 <4.0.0", jquery@^3.6.0, jquery@~3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.7.1.tgz#083ef98927c9a6a74d05a6af02806566d16274de" + integrity sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg== + +just-compare@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/just-compare/-/just-compare-2.3.0.tgz#a2adcc1d1940536263275f5a1ef1298bcacfeda7" + integrity sha512-6shoR7HDT+fzfL3gBahx1jZG3hWLrhPAf+l7nCwahDdT9XDtosB9kIF0ZrzUp5QY8dJWfQVr5rnsPqsbvflDzg== + +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +luxon@^3.5.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/luxon/-/luxon-3.6.1.tgz#d283ffc4c0076cb0db7885ec6da1c49ba97e47b0" + integrity sha512-tJLxrKJhO2ukZ5z0gyjY1zPh3Rh88Ej9P7jNrZiHMUXHae1yvI2imgOZtL1TO8TW6biMMKfTtAOoEJANgtWBMQ== + +malihu-custom-scrollbar-plugin@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.1.5.tgz#310cecc5e59415a1c29e9dfb5d2b6e01d66a29ef" + integrity sha512-lwW3LgI+CNDMPnP4ED2la6oYxWMkCXlnhex+s2wuOLhFDFGnGmQuTQVdRK9bvDLpxs10sGlfErVufJy9ztfgJQ== + dependencies: + jquery-mousewheel ">=3.0.6" + +moment@^2.30.1, moment@^2.9.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" + integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== + +select2@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" + integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== + +sweetalert2@^11.14.1: + version "11.22.2" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-11.22.2.tgz#d4d82a2edd4e97024306fe37f1bc64fa576e9bc9" + integrity sha512-GFQGzw8ZXF23PO79WMAYXLl4zYmLiaKqYJwcp5eBF07wiI5BYPbZtKi2pcvVmfUQK+FqL1risJAMxugcPbGIyg== + +timeago@^1.6.7: + version "1.6.7" + resolved "https://registry.yarnpkg.com/timeago/-/timeago-1.6.7.tgz#afd467c29a911e697fc22a81888c7c3022783cb5" + integrity sha512-FikcjN98+ij0siKH4VO4dZ358PR3oDDq4Vdl1+sN9gWz1/+JXGr3uZbUShYH/hL7bMhcTpPbplJU5Tej4b4jbQ== + dependencies: + jquery ">=1.5.0 <4.0" diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.abppkg new file mode 100644 index 0000000..515bfe6 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.http-api" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.abppkg.analyze.json b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.abppkg.analyze.json new file mode 100644 index 0000000..1a43e53 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.abppkg.analyze.json @@ -0,0 +1,118 @@ +{ + "name": "BookStore.HttpApi", + "hash": "", + "contents": [ + { + "namespace": "BookStore", + "dependsOnModules": [ + { + "declaringAssemblyName": "BookStore.Application.Contracts", + "namespace": "BookStore", + "name": "BookStoreApplicationContractsModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.HttpApi", + "namespace": "Volo.Abp.PermissionManagement.HttpApi", + "name": "AbpPermissionManagementHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.HttpApi", + "namespace": "Volo.Abp.SettingManagement", + "name": "AbpSettingManagementHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Identity.Pro.HttpApi", + "namespace": "Volo.Abp.Identity", + "name": "AbpIdentityHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Account.Pro.Admin.HttpApi", + "namespace": "Volo.Abp.Account", + "name": "AbpAccountAdminHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.TextTemplateManagement.HttpApi", + "namespace": "Volo.Abp.TextTemplateManagement", + "name": "TextTemplateManagementHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AuditLogging.HttpApi", + "namespace": "Volo.Abp.AuditLogging", + "name": "AbpAuditLoggingHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.OpenIddict.Pro.HttpApi", + "namespace": "Volo.Abp.OpenIddict", + "name": "AbpOpenIddictProHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.LanguageManagement.HttpApi", + "namespace": "Volo.Abp.LanguageManagement", + "name": "LanguageManagementHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Gdpr.HttpApi", + "namespace": "Volo.Abp.Gdpr", + "name": "AbpGdprHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Account.Pro.Public.HttpApi", + "namespace": "Volo.Abp.Account", + "name": "AbpAccountPublicHttpApiModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.HttpApi", + "namespace": "Volo.Abp.FeatureManagement", + "name": "AbpFeatureManagementHttpApiModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "BookStoreHttpApiModule", + "summary": null + } + ] +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.csproj new file mode 100644 index 0000000..b818a47 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStore.HttpApi.csproj @@ -0,0 +1,27 @@ + + + + + + net9.0 + enable + BookStore + + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStoreHttpApiModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStoreHttpApiModule.cs new file mode 100644 index 0000000..073a6d3 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/BookStoreHttpApiModule.cs @@ -0,0 +1,41 @@ +using Localization.Resources.AbpUi; +using BookStore.Localization; +using Volo.Abp.Account; +using Volo.Abp.SettingManagement; +using Volo.Abp.FeatureManagement; +using Volo.Abp.Identity; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.HttpApi; +using Volo.Abp.Localization; +using Volo.Abp.TenantManagement; + +namespace BookStore; + + [DependsOn( + typeof(BookStoreApplicationContractsModule), + typeof(AbpPermissionManagementHttpApiModule), + typeof(AbpSettingManagementHttpApiModule), + typeof(AbpAccountHttpApiModule), + typeof(AbpIdentityHttpApiModule), + typeof(AbpTenantManagementHttpApiModule), + typeof(AbpFeatureManagementHttpApiModule) + )] +public class BookStoreHttpApiModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + ConfigureLocalization(); + } + + private void ConfigureLocalization() + { + Configure(options => + { + options.Resources + .Get() + .AddBaseTypes( + typeof(AbpUiResource) + ); + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/Controllers/BookStoreController.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/Controllers/BookStoreController.cs new file mode 100644 index 0000000..88af0e3 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/Controllers/BookStoreController.cs @@ -0,0 +1,14 @@ +using BookStore.Localization; +using Volo.Abp.AspNetCore.Mvc; + +namespace BookStore.Controllers; + +/* Inherit your controllers from this class. + */ +public abstract class BookStoreController : AbpControllerBase +{ + protected BookStoreController() + { + LocalizationResource = typeof(BookStoreResource); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/Models/Test/TestModel.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/Models/Test/TestModel.cs new file mode 100644 index 0000000..e480a88 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.HttpApi/Models/Test/TestModel.cs @@ -0,0 +1,10 @@ +using System; + +namespace BookStore.Models.Test; + +public class TestModel +{ + public string? Name { get; set; } + + public DateTime BirthDate { get; set; } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.abppkg b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.abppkg new file mode 100644 index 0000000..8b23fd1 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.mongodb" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.abppkg.analyze.json b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.abppkg.analyze.json new file mode 100644 index 0000000..172d865 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.abppkg.analyze.json @@ -0,0 +1,145 @@ +{ + "name": "BookStore.MongoDB", + "hash": "", + "contents": [ + { + "namespace": "BookStore.MongoDB", + "dependsOnModules": [ + { + "declaringAssemblyName": "BookStore.Domain", + "namespace": "BookStore", + "name": "BookStoreDomainModule" + }, + { + "declaringAssemblyName": "Volo.Abp.PermissionManagement.MongoDB", + "namespace": "Volo.Abp.PermissionManagement.MongoDB", + "name": "AbpPermissionManagementMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.SettingManagement.MongoDB", + "namespace": "Volo.Abp.SettingManagement.MongoDB", + "name": "AbpSettingManagementMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.BackgroundJobs.MongoDB", + "namespace": "Volo.Abp.BackgroundJobs.MongoDB", + "name": "AbpBackgroundJobsMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.AuditLogging.MongoDB", + "namespace": "Volo.Abp.AuditLogging.MongoDB", + "name": "AbpAuditLoggingMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.FeatureManagement.MongoDB", + "namespace": "Volo.Abp.FeatureManagement.MongoDB", + "name": "AbpFeatureManagementMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Identity.Pro.MongoDB", + "namespace": "Volo.Abp.Identity.MongoDB", + "name": "AbpIdentityProMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.OpenIddict.Pro.MongoDb", + "namespace": "Volo.Abp.OpenIddict.MongoDB", + "name": "AbpOpenIddictProMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.LanguageManagement.MongoDB", + "namespace": "Volo.Abp.LanguageManagement.MongoDB", + "name": "LanguageManagementMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Saas.MongoDB", + "namespace": "Volo.Saas.MongoDB", + "name": "SaasMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.TextTemplateManagement.MongoDB", + "namespace": "Volo.Abp.TextTemplateManagement.MongoDB", + "name": "TextTemplateManagementMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.Gdpr.MongoDB", + "namespace": "Volo.Abp.Gdpr", + "name": "AbpGdprMongoDbModule" + }, + { + "declaringAssemblyName": "Volo.Abp.BlobStoring.Database.MongoDB", + "namespace": "Volo.Abp.BlobStoring.Database.MongoDB", + "name": "BlobStoringDatabaseMongoDbModule" + } + ], + "implementingInterfaces": [ + { + "name": "IAbpModule", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IAbpModule" + }, + { + "name": "IOnPreApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPreApplicationInitialization" + }, + { + "name": "IOnApplicationInitialization", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationInitialization" + }, + { + "name": "IOnPostApplicationInitialization", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IOnPostApplicationInitialization" + }, + { + "name": "IOnApplicationShutdown", + "namespace": "Volo.Abp", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.IOnApplicationShutdown" + }, + { + "name": "IPreConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPreConfigureServices" + }, + { + "name": "IPostConfigureServices", + "namespace": "Volo.Abp.Modularity", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.Modularity.IPostConfigureServices" + } + ], + "contentType": "abpModule", + "name": "BookStoreMongoDbModule", + "summary": null + }, + { + "namespace": "BookStore.MongoDB", + "connectionStringName": "Default", + "databaseCollections": [], + "implementingInterfaces": [ + { + "name": "IAbpMongoDbContext", + "namespace": "Volo.Abp.MongoDB", + "declaringAssemblyName": "Volo.Abp.MongoDB", + "fullName": "Volo.Abp.MongoDB.IAbpMongoDbContext" + }, + { + "name": "ITransientDependency", + "namespace": "Volo.Abp.DependencyInjection", + "declaringAssemblyName": "Volo.Abp.Core", + "fullName": "Volo.Abp.DependencyInjection.ITransientDependency" + } + ], + "contentType": "mongoDbContext", + "name": "BookStoreMongoDbContext", + "summary": null + } + ] +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.csproj b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.csproj new file mode 100644 index 0000000..db150a5 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/BookStore.MongoDB.csproj @@ -0,0 +1,30 @@ + + + + + + net9.0 + enable + BookStore + + + + + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/BookStoreMongoDbContext.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/BookStoreMongoDbContext.cs new file mode 100644 index 0000000..f16a454 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/BookStoreMongoDbContext.cs @@ -0,0 +1,24 @@ +using Volo.Abp.Data; +using Volo.Abp.MongoDB; +using MongoDB.Driver; + +namespace BookStore.MongoDB; + +[ConnectionStringName("Default")] +public class BookStoreMongoDbContext : AbpMongoDbContext +{ + + /* Add mongo collections here. Example: + * public IMongoCollection Questions => Collection(); + */ + + protected override void CreateModel(IMongoModelBuilder modelBuilder) + { + base.CreateModel(modelBuilder); + + //builder.Entity(b => + //{ + // //... + //}); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/BookStoreMongoDbModule.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/BookStoreMongoDbModule.cs new file mode 100644 index 0000000..9574ea1 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/BookStoreMongoDbModule.cs @@ -0,0 +1,43 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.AuditLogging.MongoDB; +using Volo.Abp.BackgroundJobs.MongoDB; +using Volo.Abp.FeatureManagement.MongoDB; +using Volo.Abp.Identity.MongoDB; +using Volo.Abp.OpenIddict.MongoDB; +using Volo.Abp.Modularity; +using Volo.Abp.PermissionManagement.MongoDB; +using Volo.Abp.SettingManagement.MongoDB; +using Volo.Abp.BlobStoring.Database.MongoDB; +using Volo.Abp.Uow; +using Volo.Abp.TenantManagement.MongoDB; + +namespace BookStore.MongoDB; + +[DependsOn( + typeof(BookStoreDomainModule), + typeof(AbpPermissionManagementMongoDbModule), + typeof(AbpSettingManagementMongoDbModule), + typeof(AbpBackgroundJobsMongoDbModule), + typeof(AbpAuditLoggingMongoDbModule), + typeof(AbpFeatureManagementMongoDbModule), + typeof(AbpIdentityMongoDbModule), + typeof(AbpOpenIddictMongoDbModule), + typeof(AbpTenantManagementMongoDbModule), + typeof(BlobStoringDatabaseMongoDbModule) +)] +public class BookStoreMongoDbModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + context.Services.AddMongoDbContext(options => + { + options.AddDefaultRepositories(); + }); + + context.Services.AddAlwaysDisableUnitOfWorkTransaction(); + Configure(options => + { + options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled; + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs new file mode 100644 index 0000000..3ad09fd --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/MongoDb/MongoDbBookStoreDbSchemaMigrator.cs @@ -0,0 +1,52 @@ +using System; +using System.Linq; +using System.Reflection; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using MongoDB.Driver; +using BookStore.Data; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.MongoDB; +using Volo.Abp.MultiTenancy; +using Volo.Abp.Reflection; + +namespace BookStore.MongoDB; + +public class MongoDbBookStoreDbSchemaMigrator : IBookStoreDbSchemaMigrator, ITransientDependency +{ + private readonly IServiceProvider _serviceProvider; + + public MongoDbBookStoreDbSchemaMigrator(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + } + + public async Task MigrateAsync() + { + var dbContexts = _serviceProvider.GetServices(); + var connectionStringResolver = _serviceProvider.GetRequiredService(); + + if (_serviceProvider.GetRequiredService().IsAvailable) + { + dbContexts = dbContexts.Where(x => !x.GetType().IsDefined(typeof(IgnoreMultiTenancyAttribute))); + } + + foreach (var dbContext in dbContexts) + { + var connectionString = + await connectionStringResolver.ResolveAsync( + ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType())); + var mongoUrl = new MongoUrl(connectionString); + var databaseName = mongoUrl.DatabaseName; + var client = new MongoClient(mongoUrl); + + if (databaseName.IsNullOrWhiteSpace()) + { + databaseName = ConnectionStringNameAttribute.GetConnStringName(dbContext.GetType()); + } + + (dbContext as AbpMongoDbContext)?.InitializeCollections(client.GetDatabase(databaseName)); + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/Properties/AssemblyInfo.cs b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..db15775 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/src/BookStore.MongoDB/Properties/AssemblyInfo.cs @@ -0,0 +1,2 @@ +using System.Runtime.CompilerServices; +[assembly:InternalsVisibleToAttribute("BookStore.MongoDB.Tests")] diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStore.Application.Tests.abppkg b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStore.Application.Tests.abppkg new file mode 100644 index 0000000..a686451 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStore.Application.Tests.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStore.Application.Tests.csproj b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStore.Application.Tests.csproj new file mode 100644 index 0000000..1574640 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStore.Application.Tests.csproj @@ -0,0 +1,20 @@ + + + + + + net9.0 + enable + BookStore + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStoreApplicationTestBase.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStoreApplicationTestBase.cs new file mode 100644 index 0000000..ede63f1 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStoreApplicationTestBase.cs @@ -0,0 +1,9 @@ +using Volo.Abp.Modularity; + +namespace BookStore; + +public abstract class BookStoreApplicationTestBase : BookStoreTestBase + where TStartupModule : IAbpModule +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStoreApplicationTestModule.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStoreApplicationTestModule.cs new file mode 100644 index 0000000..19f3c75 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/BookStoreApplicationTestModule.cs @@ -0,0 +1,12 @@ +using Volo.Abp.Modularity; + +namespace BookStore; + +[DependsOn( + typeof(BookStoreApplicationModule), + typeof(BookStoreDomainTestModule) +)] +public class BookStoreApplicationTestModule : AbpModule +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/Samples/SampleAppServiceTests.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/Samples/SampleAppServiceTests.cs new file mode 100644 index 0000000..7e8575a --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Application.Tests/Samples/SampleAppServiceTests.cs @@ -0,0 +1,34 @@ +using Shouldly; +using System.Threading.Tasks; +using Volo.Abp.Identity; +using Volo.Abp.Modularity; +using Xunit; + +namespace BookStore.Samples; + +/* This is just an example test class. + * Normally, you don't test code of the modules you are using + * (like IIdentityUserAppService here). + * Only test your own application services. + */ +public abstract class SampleAppServiceTests : BookStoreApplicationTestBase + where TStartupModule : IAbpModule +{ + private readonly IIdentityUserAppService _userAppService; + + protected SampleAppServiceTests() + { + _userAppService = GetRequiredService(); + } + + [Fact] + public async Task Initial_Data_Should_Contain_Admin_User() + { + //Act + var result = await _userAppService.GetListAsync(new GetIdentityUsersInput()); + + //Assert + result.TotalCount.ShouldBeGreaterThan(0); + result.Items.ShouldContain(u => u.UserName == "admin"); + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStore.Domain.Tests.abppkg b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStore.Domain.Tests.abppkg new file mode 100644 index 0000000..a686451 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStore.Domain.Tests.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStore.Domain.Tests.csproj b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStore.Domain.Tests.csproj new file mode 100644 index 0000000..bad4361 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStore.Domain.Tests.csproj @@ -0,0 +1,20 @@ + + + + + + net9.0 + enable + BookStore + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStoreDomainTestBase.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStoreDomainTestBase.cs new file mode 100644 index 0000000..0e04bff --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStoreDomainTestBase.cs @@ -0,0 +1,10 @@ +using Volo.Abp.Modularity; + +namespace BookStore; + +/* Inherit from this class for your domain layer tests. */ +public abstract class BookStoreDomainTestBase : BookStoreTestBase + where TStartupModule : IAbpModule +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStoreDomainTestModule.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStoreDomainTestModule.cs new file mode 100644 index 0000000..fbfad50 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/BookStoreDomainTestModule.cs @@ -0,0 +1,12 @@ +using Volo.Abp.Modularity; + +namespace BookStore; + +[DependsOn( + typeof(BookStoreDomainModule), + typeof(BookStoreTestBaseModule) +)] +public class BookStoreDomainTestModule : AbpModule +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/Samples/SampleDomainTests.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/Samples/SampleDomainTests.cs new file mode 100644 index 0000000..d41088e --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.Domain.Tests/Samples/SampleDomainTests.cs @@ -0,0 +1,46 @@ +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.Identity; +using Volo.Abp.Modularity; +using Xunit; + +namespace BookStore.Samples; + +/* This is just an example test class. + * Normally, you don't test code of the modules you are using + * (like IdentityUserManager here). + * Only test your own domain services. + */ +public abstract class SampleDomainTests : BookStoreDomainTestBase + where TStartupModule : IAbpModule +{ + private readonly IIdentityUserRepository _identityUserRepository; + private readonly IdentityUserManager _identityUserManager; + + protected SampleDomainTests() + { + _identityUserRepository = GetRequiredService(); + _identityUserManager = GetRequiredService(); + } + + [Fact] + public async Task Should_Set_Email_Of_A_User() + { + IdentityUser adminUser; + + /* Need to manually start Unit Of Work because + * FirstOrDefaultAsync should be executed while db connection / context is available. + */ + await WithUnitOfWorkAsync(async () => + { + adminUser = await _identityUserRepository + .FindByNormalizedUserNameAsync("ADMIN"); + + await _identityUserManager.SetEmailAsync(adminUser, "newemail@abp.io"); + await _identityUserRepository.UpdateAsync(adminUser); + }); + + adminUser = await _identityUserRepository.FindByNormalizedUserNameAsync("ADMIN"); + adminUser.Email.ShouldBe("newemail@abp.io"); + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStore.HttpApi.Client.ConsoleTestApp.abppkg b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStore.HttpApi.Client.ConsoleTestApp.abppkg new file mode 100644 index 0000000..a686451 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStore.HttpApi.Client.ConsoleTestApp.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStore.HttpApi.Client.ConsoleTestApp.csproj b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStore.HttpApi.Client.ConsoleTestApp.csproj new file mode 100644 index 0000000..3ea40fd --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStore.HttpApi.Client.ConsoleTestApp.csproj @@ -0,0 +1,36 @@ + + + + Exe + net9.0 + enable + + + + + + PreserveNewest + Always + + + + PreserveNewest + Always + + + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStoreConsoleApiClientModule.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStoreConsoleApiClientModule.cs new file mode 100644 index 0000000..455fab5 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/BookStoreConsoleApiClientModule.cs @@ -0,0 +1,30 @@ +using System; +using Microsoft.Extensions.DependencyInjection; +using Polly; +using Volo.Abp.Autofac; +using Volo.Abp.Http.Client; +using Volo.Abp.Http.Client.IdentityModel; +using Volo.Abp.Modularity; + +namespace BookStore.HttpApi.Client.ConsoleTestApp; + +[DependsOn( + typeof(AbpAutofacModule), + typeof(BookStoreHttpApiClientModule), + typeof(AbpHttpClientIdentityModelModule) + )] +public class BookStoreConsoleApiClientModule : AbpModule +{ + public override void PreConfigureServices(ServiceConfigurationContext context) + { + PreConfigure(options => + { + options.ProxyClientBuildActions.Add((remoteServiceName, clientBuilder) => + { + clientBuilder.AddTransientHttpErrorPolicy( + policyBuilder => policyBuilder.WaitAndRetryAsync(3, i => TimeSpan.FromSeconds(Math.Pow(2, i))) + ); + }); + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs new file mode 100644 index 0000000..2feb61d --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/ClientDemoService.cs @@ -0,0 +1,38 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Identity; +using Volo.Abp.Account; + +namespace BookStore.HttpApi.Client.ConsoleTestApp; + +public class ClientDemoService : ITransientDependency +{ + private readonly IProfileAppService _profileAppService; + private readonly IIdentityUserAppService _identityUserAppService; + + public ClientDemoService( + IProfileAppService profileAppService, + IIdentityUserAppService identityUserAppService) + { + _profileAppService = profileAppService; + _identityUserAppService = identityUserAppService; + } + + public async Task RunAsync() + { + var profileDto = await _profileAppService.GetAsync(); + Console.WriteLine($"UserName : {profileDto.UserName}"); + Console.WriteLine($"Email : {profileDto.Email}"); + Console.WriteLine($"Name : {profileDto.Name}"); + Console.WriteLine($"Surname : {profileDto.Surname}"); + Console.WriteLine(); + + var resultDto = await _identityUserAppService.GetListAsync(new GetIdentityUsersInput()); + Console.WriteLine($"Total users: {resultDto.TotalCount}"); + foreach (var identityUserDto in resultDto.Items) + { + Console.WriteLine($"- [{identityUserDto.Id}] {identityUserDto.Name}"); + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/Program.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/Program.cs new file mode 100644 index 0000000..cb2b8ea --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/Program.cs @@ -0,0 +1,33 @@ +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp; + +namespace BookStore.HttpApi.Client.ConsoleTestApp; + +class Program +{ + static async Task Main(string[] args) + { + using (var application = await AbpApplicationFactory.CreateAsync(options => + { + var builder = new ConfigurationBuilder(); + builder.AddJsonFile("appsettings.json", false); + builder.AddJsonFile("appsettings.secrets.json", true); + options.Services.ReplaceConfiguration(builder.Build()); + options.UseAutofac(); + })) + { + await application.InitializeAsync(); + + var demo = application.ServiceProvider.GetRequiredService(); + await demo.RunAsync(); + + Console.WriteLine("Press ENTER to stop application..."); + Console.ReadLine(); + + await application.ShutdownAsync(); + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/appsettings.json b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/appsettings.json new file mode 100644 index 0000000..84c7232 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/appsettings.json @@ -0,0 +1,17 @@ +{ + "RemoteServices": { + "Default": { + "BaseUrl": "https://localhost:44318/" + } + }, + "IdentityClients": { + "Default": { + "GrantType": "password", + "ClientId": "BookStore_App", + "UserName": "admin", + "UserPassword": "1q2w3E*", + "Authority": "https://localhost:44318/", + "Scope": "BookStore" + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/appsettings.secrets.json b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/appsettings.secrets.json new file mode 100644 index 0000000..2c63c08 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.HttpApi.Client.ConsoleTestApp/appsettings.secrets.json @@ -0,0 +1,2 @@ +{ +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/BookStore.MongoDB.Tests.abppkg b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/BookStore.MongoDB.Tests.abppkg new file mode 100644 index 0000000..a686451 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/BookStore.MongoDB.Tests.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/BookStore.MongoDB.Tests.csproj b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/BookStore.MongoDB.Tests.csproj new file mode 100644 index 0000000..6389c17 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/BookStore.MongoDB.Tests.csproj @@ -0,0 +1,24 @@ + + + + + + net9.0 + enable + BookStore + + + + + + + + + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Applications/MongoDBSampleAppServiceTests.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Applications/MongoDBSampleAppServiceTests.cs new file mode 100644 index 0000000..b061d26 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Applications/MongoDBSampleAppServiceTests.cs @@ -0,0 +1,11 @@ +using BookStore.MongoDB; +using BookStore.Samples; +using Xunit; + +namespace BookStore.MongoDb.Applications; + +[Collection(BookStoreTestConsts.CollectionDefinitionName)] +public class MongoDBSampleAppServiceTests : SampleAppServiceTests +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoCollection.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoCollection.cs new file mode 100644 index 0000000..33d7d33 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoCollection.cs @@ -0,0 +1,9 @@ +using Xunit; + +namespace BookStore.MongoDB; + +[CollectionDefinition(BookStoreTestConsts.CollectionDefinitionName)] +public class BookStoreMongoCollection : BookStoreMongoDbCollectionFixtureBase +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbCollectionFixtureBase.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbCollectionFixtureBase.cs new file mode 100644 index 0000000..3f4aa52 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbCollectionFixtureBase.cs @@ -0,0 +1,9 @@ +using BookStore.MongoDB; +using Xunit; + +namespace BookStore.MongoDB; + +public class BookStoreMongoDbCollectionFixtureBase : ICollectionFixture +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbFixture.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbFixture.cs new file mode 100644 index 0000000..a6ec125 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbFixture.cs @@ -0,0 +1,34 @@ +using System; +using MongoSandbox; + +namespace BookStore.MongoDB; + +public class BookStoreMongoDbFixture : IDisposable +{ + public readonly static IMongoRunner MongoDbRunner; + + static BookStoreMongoDbFixture() + { + MongoDbRunner = MongoRunner.Run(new MongoRunnerOptions + { + UseSingleNodeReplicaSet = true + }); + } + + public static string GetRandomConnectionString() + { + return GetConnectionString("Db_" + Guid.NewGuid().ToString("N")); + } + + public static string GetConnectionString(string databaseName) + { + var stringArray = MongoDbRunner.ConnectionString.Split('?'); + var connectionString = stringArray[0].EnsureEndsWith('/') + databaseName + "/?" + stringArray[1]; + return connectionString; + } + + public void Dispose() + { + MongoDbRunner?.Dispose(); + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestBase.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestBase.cs new file mode 100644 index 0000000..91a2c98 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestBase.cs @@ -0,0 +1,6 @@ +namespace BookStore.MongoDB; + +public abstract class BookStoreMongoDbTestBase : BookStoreTestBase +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestModule.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestModule.cs new file mode 100644 index 0000000..4300ace --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/BookStoreMongoDbTestModule.cs @@ -0,0 +1,21 @@ +using System; +using Volo.Abp.Data; +using Volo.Abp.Modularity; +using Volo.Abp.Uow; + +namespace BookStore.MongoDB; + +[DependsOn( + typeof(BookStoreApplicationTestModule), + typeof(BookStoreMongoDbModule) +)] +public class BookStoreMongoDbTestModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.ConnectionStrings.Default = BookStoreMongoDbFixture.GetRandomConnectionString(); + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Domains/MongoDBSampleDomainTests.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Domains/MongoDBSampleDomainTests.cs new file mode 100644 index 0000000..1467c28 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Domains/MongoDBSampleDomainTests.cs @@ -0,0 +1,10 @@ +using BookStore.Samples; +using Xunit; + +namespace BookStore.MongoDB.Domains; + +[Collection(BookStoreTestConsts.CollectionDefinitionName)] +public class MongoDBSampleDomainTests : SampleDomainTests +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs new file mode 100644 index 0000000..e9e001b --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.MongoDB.Tests/MongoDb/Samples/SampleRepositoryTests.cs @@ -0,0 +1,40 @@ +using System; +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.Domain.Repositories; +using Volo.Abp.Identity; +using Xunit; + +namespace BookStore.MongoDB.Samples; + +/* This is just an example test class. + * Normally, you don't test ABP framework code + * Only test your custom repository methods. + */ +[Collection(BookStoreTestConsts.CollectionDefinitionName)] +public class SampleRepositoryTests : BookStoreMongoDbTestBase +{ + private readonly IRepository _appUserRepository; + + public SampleRepositoryTests() + { + _appUserRepository = GetRequiredService>(); + } + + [Fact] + public async Task Should_Query_AppUser() + { + /* Need to manually start Unit Of Work because + * FirstOrDefaultAsync should be executed while db connection / context is available. + */ + await WithUnitOfWorkAsync(async () => + { + //Act + var adminUser = await _appUserRepository + .FirstOrDefaultAsync(u => u.UserName == "admin"); + + //Assert + adminUser.ShouldNotBeNull(); + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStore.TestBase.abppkg b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStore.TestBase.abppkg new file mode 100644 index 0000000..a686451 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStore.TestBase.abppkg @@ -0,0 +1,3 @@ +{ + "role": "lib.test" +} \ No newline at end of file diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStore.TestBase.csproj b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStore.TestBase.csproj new file mode 100644 index 0000000..0d5a663 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStore.TestBase.csproj @@ -0,0 +1,45 @@ + + + + + + net9.0 + enable + BookStore + + + + + + PreserveNewest + true + PreserveNewest + + + + PreserveNewest + Always + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers + + + + + + + + diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestBase.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestBase.cs new file mode 100644 index 0000000..c38e9e2 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestBase.cs @@ -0,0 +1,67 @@ +using System; +using System.Threading.Tasks; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp; +using Volo.Abp.Modularity; +using Volo.Abp.Uow; +using Volo.Abp.Testing; + +namespace BookStore; + +public abstract class BookStoreTestBase : AbpIntegratedTest + where TStartupModule : IAbpModule +{ + protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) + { + options.UseAutofac(); + } + + protected override void BeforeAddApplication(IServiceCollection services) + { + var builder = new ConfigurationBuilder(); + builder.AddJsonFile("appsettings.json", false); + builder.AddJsonFile("appsettings.secrets.json", true); + services.ReplaceConfiguration(builder.Build()); + } + + protected virtual Task WithUnitOfWorkAsync(Func func) + { + return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); + } + + protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func action) + { + using (var scope = ServiceProvider.CreateScope()) + { + var uowManager = scope.ServiceProvider.GetRequiredService(); + + using (var uow = uowManager.Begin(options)) + { + await action(); + + await uow.CompleteAsync(); + } + } + } + + protected virtual Task WithUnitOfWorkAsync(Func> func) + { + return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); + } + + protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func> func) + { + using (var scope = ServiceProvider.CreateScope()) + { + var uowManager = scope.ServiceProvider.GetRequiredService(); + + using (var uow = uowManager.Begin(options)) + { + var result = await func(); + await uow.CompleteAsync(); + return result; + } + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestBaseModule.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestBaseModule.cs new file mode 100644 index 0000000..c330b40 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestBaseModule.cs @@ -0,0 +1,47 @@ +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp; +using Volo.Abp.Authorization; +using Volo.Abp.Autofac; +using Volo.Abp.BackgroundJobs; +using Volo.Abp.Data; +using Volo.Abp.Modularity; +using Volo.Abp.Threading; + +namespace BookStore; + +[DependsOn( + typeof(AbpAutofacModule), + typeof(AbpTestBaseModule), + typeof(AbpAuthorizationModule), + typeof(AbpBackgroundJobsAbstractionsModule) +)] +public class BookStoreTestBaseModule : AbpModule +{ + public override void ConfigureServices(ServiceConfigurationContext context) + { + Configure(options => + { + options.IsJobExecutionEnabled = false; + }); + + context.Services.AddAlwaysAllowAuthorization(); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + SeedTestData(context); + } + + private static void SeedTestData(ApplicationInitializationContext context) + { + AsyncHelper.RunSync(async () => + { + using (var scope = context.ServiceProvider.CreateScope()) + { + await scope.ServiceProvider + .GetRequiredService() + .SeedAsync(); + } + }); + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestConsts.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestConsts.cs new file mode 100644 index 0000000..41232fe --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestConsts.cs @@ -0,0 +1,6 @@ +namespace BookStore; + +public static class BookStoreTestConsts +{ + public const string CollectionDefinitionName = "BookStore collection"; +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestDataBuilder.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestDataBuilder.cs new file mode 100644 index 0000000..e7f0cc4 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/BookStoreTestDataBuilder.cs @@ -0,0 +1,26 @@ +using System.Threading.Tasks; +using Volo.Abp.Data; +using Volo.Abp.DependencyInjection; +using Volo.Abp.MultiTenancy; + +namespace BookStore; + +public class BookStoreTestDataSeedContributor : IDataSeedContributor, ITransientDependency +{ + private readonly ICurrentTenant _currentTenant; + + public BookStoreTestDataSeedContributor(ICurrentTenant currentTenant) + { + _currentTenant = currentTenant; + } + + public Task SeedAsync(DataSeedContext context) + { + /* Seed additional test data... */ + + using (_currentTenant.Change(context?.TenantId)) + { + return Task.CompletedTask; + } + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/Security/FakeCurrentPrincipalAccessor.cs b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/Security/FakeCurrentPrincipalAccessor.cs new file mode 100644 index 0000000..8c40ef9 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/Security/FakeCurrentPrincipalAccessor.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Security.Claims; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Security.Claims; + +namespace BookStore.Security; + +[Dependency(ReplaceServices = true)] +public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor +{ + protected override ClaimsPrincipal GetClaimsPrincipal() + { + return GetPrincipal(); + } + + private ClaimsPrincipal GetPrincipal() + { + return new ClaimsPrincipal(new ClaimsIdentity(new List + { + new Claim(AbpClaimTypes.UserId, "2e701e62-0953-4dd3-910b-dc6cc93ccb0d"), + new Claim(AbpClaimTypes.UserName, "admin"), + new Claim(AbpClaimTypes.Email, "admin@abp.io") + })); + } +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/appsettings.json b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/appsettings.json new file mode 100644 index 0000000..0db3279 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/appsettings.json @@ -0,0 +1,3 @@ +{ + +} diff --git a/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/appsettings.secrets.json b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/appsettings.secrets.json new file mode 100644 index 0000000..7a73a41 --- /dev/null +++ b/samples/WebAppBlazorWebAssembly/test/BookStore.TestBase/appsettings.secrets.json @@ -0,0 +1,2 @@ +{ +} \ No newline at end of file